Skip to content

Commit 75d0f76

Browse files
committed
Log reason for 404 in field existence check (#81315)
1 parent d0528b1 commit 75d0f76

File tree

3 files changed

+18
-11
lines changed

3 files changed

+18
-11
lines changed

x-pack/plugins/lens/server/plugin.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ export class LensServerPlugin implements Plugin<{}, {}, {}, {}> {
2929
private readonly kibanaIndexConfig: Observable<{ kibana: { index: string } }>;
3030
private readonly telemetryLogger: Logger;
3131

32-
constructor(initializerContext: PluginInitializerContext) {
32+
constructor(private initializerContext: PluginInitializerContext) {
3333
this.kibanaIndexConfig = initializerContext.config.legacy.globalConfig$;
3434
this.telemetryLogger = initializerContext.logger.get('usage');
3535
}
3636
setup(core: CoreSetup<PluginStartContract>, plugins: PluginSetupContract) {
3737
setupSavedObjects(core);
38-
setupRoutes(core);
38+
setupRoutes(core, this.initializerContext.logger.get());
3939
if (plugins.usageCollection && plugins.taskManager) {
4040
registerLensUsageCollector(
4141
plugins.usageCollection,

x-pack/plugins/lens/server/routes/existing_fields.ts

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,14 @@
77
import Boom from 'boom';
88
import { schema } from '@kbn/config-schema';
99
import { ILegacyScopedClusterClient, SavedObject, RequestHandlerContext } from 'src/core/server';
10-
import { CoreSetup } from 'src/core/server';
10+
import { CoreSetup, Logger } from 'src/core/server';
1111
import { BASE_API_URL } from '../../common';
1212
import { IndexPatternAttributes, UI_SETTINGS } from '../../../../../src/plugins/data/server';
1313

14+
export function isBoomError(error: { isBoom?: boolean }): error is Boom {
15+
return error.isBoom === true;
16+
}
17+
1418
/**
1519
* The number of docs to sample to determine field empty status.
1620
*/
@@ -24,7 +28,7 @@ export interface Field {
2428
script?: string;
2529
}
2630

27-
export async function existingFieldsRoute(setup: CoreSetup) {
31+
export async function existingFieldsRoute(setup: CoreSetup, logger: Logger) {
2832
const router = setup.http.createRouter();
2933

3034
router.post(
@@ -52,14 +56,17 @@ export async function existingFieldsRoute(setup: CoreSetup) {
5256
}),
5357
});
5458
} catch (e) {
59+
logger.info(
60+
`Field existence check failed: ${isBoomError(e) ? e.output.payload.message : e.message}`
61+
);
5562
if (e.status === 404) {
56-
return res.notFound();
63+
return res.notFound({ body: e.message });
5764
}
58-
if (e.isBoom) {
65+
if (isBoomError(e)) {
5966
if (e.output.statusCode === 404) {
60-
return res.notFound();
67+
return res.notFound({ body: e.output.payload.message });
6168
}
62-
return res.internalError(e.output.message);
69+
return res.internalError({ body: e.output.payload.message });
6370
} else {
6471
return res.internalError({
6572
body: Boom.internal(e.message || e.name),

x-pack/plugins/lens/server/routes/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
* you may not use this file except in compliance with the Elastic License.
55
*/
66

7-
import { CoreSetup } from 'src/core/server';
7+
import { CoreSetup, Logger } from 'src/core/server';
88
import { existingFieldsRoute } from './existing_fields';
99
import { initFieldsRoute } from './field_stats';
1010
import { initLensUsageRoute } from './telemetry';
1111

12-
export function setupRoutes(setup: CoreSetup) {
13-
existingFieldsRoute(setup);
12+
export function setupRoutes(setup: CoreSetup, logger: Logger) {
13+
existingFieldsRoute(setup, logger);
1414
initFieldsRoute(setup);
1515
initLensUsageRoute(setup);
1616
}

0 commit comments

Comments
 (0)