Log reason for 404 in field existence check (#81315)
This commit is contained in:
parent
1712f0d441
commit
2dcfe2a99f
|
@ -29,13 +29,13 @@ export class LensServerPlugin implements Plugin<{}, {}, {}, {}> {
|
||||||
private readonly kibanaIndexConfig: Observable<{ kibana: { index: string } }>;
|
private readonly kibanaIndexConfig: Observable<{ kibana: { index: string } }>;
|
||||||
private readonly telemetryLogger: Logger;
|
private readonly telemetryLogger: Logger;
|
||||||
|
|
||||||
constructor(initializerContext: PluginInitializerContext) {
|
constructor(private initializerContext: PluginInitializerContext) {
|
||||||
this.kibanaIndexConfig = initializerContext.config.legacy.globalConfig$;
|
this.kibanaIndexConfig = initializerContext.config.legacy.globalConfig$;
|
||||||
this.telemetryLogger = initializerContext.logger.get('usage');
|
this.telemetryLogger = initializerContext.logger.get('usage');
|
||||||
}
|
}
|
||||||
setup(core: CoreSetup<PluginStartContract>, plugins: PluginSetupContract) {
|
setup(core: CoreSetup<PluginStartContract>, plugins: PluginSetupContract) {
|
||||||
setupSavedObjects(core);
|
setupSavedObjects(core);
|
||||||
setupRoutes(core);
|
setupRoutes(core, this.initializerContext.logger.get());
|
||||||
if (plugins.usageCollection && plugins.taskManager) {
|
if (plugins.usageCollection && plugins.taskManager) {
|
||||||
registerLensUsageCollector(
|
registerLensUsageCollector(
|
||||||
plugins.usageCollection,
|
plugins.usageCollection,
|
||||||
|
|
|
@ -7,10 +7,14 @@
|
||||||
import Boom from 'boom';
|
import Boom from 'boom';
|
||||||
import { schema } from '@kbn/config-schema';
|
import { schema } from '@kbn/config-schema';
|
||||||
import { ILegacyScopedClusterClient, SavedObject, RequestHandlerContext } from 'src/core/server';
|
import { ILegacyScopedClusterClient, SavedObject, RequestHandlerContext } from 'src/core/server';
|
||||||
import { CoreSetup } from 'src/core/server';
|
import { CoreSetup, Logger } from 'src/core/server';
|
||||||
import { BASE_API_URL } from '../../common';
|
import { BASE_API_URL } from '../../common';
|
||||||
import { IndexPatternAttributes, UI_SETTINGS } from '../../../../../src/plugins/data/server';
|
import { IndexPatternAttributes, UI_SETTINGS } from '../../../../../src/plugins/data/server';
|
||||||
|
|
||||||
|
export function isBoomError(error: { isBoom?: boolean }): error is Boom {
|
||||||
|
return error.isBoom === true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The number of docs to sample to determine field empty status.
|
* The number of docs to sample to determine field empty status.
|
||||||
*/
|
*/
|
||||||
|
@ -24,7 +28,7 @@ export interface Field {
|
||||||
script?: string;
|
script?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function existingFieldsRoute(setup: CoreSetup) {
|
export async function existingFieldsRoute(setup: CoreSetup, logger: Logger) {
|
||||||
const router = setup.http.createRouter();
|
const router = setup.http.createRouter();
|
||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
|
@ -52,14 +56,17 @@ export async function existingFieldsRoute(setup: CoreSetup) {
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
logger.info(
|
||||||
|
`Field existence check failed: ${isBoomError(e) ? e.output.payload.message : e.message}`
|
||||||
|
);
|
||||||
if (e.status === 404) {
|
if (e.status === 404) {
|
||||||
return res.notFound();
|
return res.notFound({ body: e.message });
|
||||||
}
|
}
|
||||||
if (e.isBoom) {
|
if (isBoomError(e)) {
|
||||||
if (e.output.statusCode === 404) {
|
if (e.output.statusCode === 404) {
|
||||||
return res.notFound();
|
return res.notFound({ body: e.output.payload.message });
|
||||||
}
|
}
|
||||||
return res.internalError(e.output.message);
|
return res.internalError({ body: e.output.payload.message });
|
||||||
} else {
|
} else {
|
||||||
return res.internalError({
|
return res.internalError({
|
||||||
body: Boom.internal(e.message || e.name),
|
body: Boom.internal(e.message || e.name),
|
||||||
|
|
|
@ -4,13 +4,13 @@
|
||||||
* you may not use this file except in compliance with the Elastic License.
|
* you may not use this file except in compliance with the Elastic License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { CoreSetup } from 'src/core/server';
|
import { CoreSetup, Logger } from 'src/core/server';
|
||||||
import { existingFieldsRoute } from './existing_fields';
|
import { existingFieldsRoute } from './existing_fields';
|
||||||
import { initFieldsRoute } from './field_stats';
|
import { initFieldsRoute } from './field_stats';
|
||||||
import { initLensUsageRoute } from './telemetry';
|
import { initLensUsageRoute } from './telemetry';
|
||||||
|
|
||||||
export function setupRoutes(setup: CoreSetup) {
|
export function setupRoutes(setup: CoreSetup, logger: Logger) {
|
||||||
existingFieldsRoute(setup);
|
existingFieldsRoute(setup, logger);
|
||||||
initFieldsRoute(setup);
|
initFieldsRoute(setup);
|
||||||
initLensUsageRoute(setup);
|
initLensUsageRoute(setup);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue