diff --git a/x-pack/solutions/observability/plugins/synthetics/server/routes/default_alerts/default_alert_service.ts b/x-pack/solutions/observability/plugins/synthetics/server/routes/default_alerts/default_alert_service.ts index d13395a42ca1a..e26c4d8eefa5f 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/routes/default_alerts/default_alert_service.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/routes/default_alerts/default_alert_service.ts @@ -259,8 +259,8 @@ export class DefaultAlertService { let actionConnectors: FindActionResult[] = []; try { actionConnectors = await actionsClient.getAll(); - } catch (e) { - this.server.logger.error(e); + } catch (error) { + this.server.logger.error(`Error getting connectors, Error: ${error.message}`, { error }); } return { actionConnectors, settings: this.settings }; } diff --git a/x-pack/solutions/observability/plugins/synthetics/server/routes/default_alerts/update_default_alert.ts b/x-pack/solutions/observability/plugins/synthetics/server/routes/default_alerts/update_default_alert.ts index 406eaef0aad14..3b2371ad5c2c9 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/routes/default_alerts/update_default_alert.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/routes/default_alerts/update_default_alert.ts @@ -37,8 +37,10 @@ export const updateDefaultAlertingRoute: SyntheticsRestApiRouteFactory = () => ( statusRule: statusRule || null, tlsRule: tlsRule || null, }; - } catch (e) { - server.logger.error(`Error updating default alerting rules: ${e}`); + } catch (error) { + server.logger.error(`Error updating default alerting rules, Error: ${error.message}`, { + error, + }); return { statusRule: null, tlsRule: null, diff --git a/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/add_monitor.ts b/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/add_monitor.ts index ec5490bdfd3c6..0e9beae906b64 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/add_monitor.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/add_monitor.ts @@ -122,17 +122,17 @@ export const addSyntheticsMonitorRoute: SyntheticsRestApiRouteFactory = () => ({ addMonitorAPI.setupGettingStarted(newMonitor.id); return mapSavedObjectToMonitor({ monitor: newMonitor, internal }); - } catch (getErr) { - server.logger.error(getErr); - if (getErr instanceof InvalidLocationError || getErr instanceof InvalidScheduleError) { - return response.badRequest({ body: { message: getErr.message } }); + } catch (error) { + if (error instanceof InvalidLocationError || error instanceof InvalidScheduleError) { + return response.badRequest({ body: { message: error.message } }); } - if (SavedObjectsErrorHelpers.isForbiddenError(getErr)) { - return response.forbidden({ body: getErr }); + if (SavedObjectsErrorHelpers.isForbiddenError(error)) { + return response.forbidden({ body: error }); } + server.logger.error('Unable to create synthetics monitor', { error }); return response.customError({ - body: { message: getErr.message }, + body: { message: error.message }, statusCode: 500, }); } diff --git a/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/add_monitor/add_monitor_api.ts b/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/add_monitor/add_monitor_api.ts index f8c7fa9ed9b23..01acb6b6447ff 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/add_monitor/add_monitor_api.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/add_monitor/add_monitor_api.ts @@ -88,10 +88,7 @@ export class AddEditMonitorAPI { const [monitorSavedObjectN, [packagePolicyResult, syncErrors]] = await Promise.all([ newMonitorPromise, syncErrorsPromise, - ]).catch((e) => { - server.logger.error(e); - throw e; - }); + ]); if (packagePolicyResult && (packagePolicyResult?.failed?.length ?? []) > 0) { const failed = packagePolicyResult.failed.map((f) => f.error); @@ -119,15 +116,11 @@ export class AddEditMonitorAPI { }, }; } catch (e) { - server.logger.error( - `Unable to create Synthetics monitor ${monitorWithNamespace[ConfigKey.NAME]}` - ); + e.message = `${e.message}, monitor name: ${monitorWithNamespace[ConfigKey.NAME]}`; await this.revertMonitorIfCreated({ newMonitorId, }); - server.logger.error(e); - throw e; } } @@ -264,10 +257,12 @@ export class AddEditMonitorAPI { server.logger.debug(`Successfully created default alert for monitor: ${name}`); }) .catch((error) => { - server.logger.error(`Error creating default alert: ${error} for monitor: ${name}`); + server.logger.error(`Error creating default alert: ${error} for monitor: ${name}`, { + error, + }); }); - } catch (e) { - server.logger.error(`Error creating default alert: ${e} for monitor: ${name}`); + } catch (error) { + server.logger.error(`Error creating default alert: ${error} for monitor: ${name}`, { error }); } } @@ -283,13 +278,19 @@ export class AddEditMonitorAPI { .then(() => { server.logger.debug(`Successfully triggered test for monitor: ${configId}`); }) - .catch((e) => { - server.logger.error(`Error triggering test for monitor: ${configId}: ${e}`); + .catch((error) => { + server.logger.error( + `Error triggering test for monitor: ${configId}, Error: ${error.message}`, + { + error, + } + ); }); } - } catch (e) { - server.logger.info(`Error triggering test for getting started monitor: ${configId}`); - server.logger.error(e); + } catch (error) { + server.logger.error(`Error triggering test for getting started monitor: ${configId}`, { + error, + }); } }; @@ -344,9 +345,14 @@ export class AddEditMonitorAPI { monitorIds: [newMonitorId], }); } - } catch (e) { + } catch (error) { // ignore errors here - server.logger.error(e); + server.logger.error( + `Unable to revert monitor with id ${newMonitorId}, Error: ${error.message}`, + { + error, + } + ); } } } diff --git a/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/bulk_cruds/add_monitor_bulk.ts b/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/bulk_cruds/add_monitor_bulk.ts index 03c7ede49ceba..968c60dff214e 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/bulk_cruds/add_monitor_bulk.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/bulk_cruds/add_monitor_bulk.ts @@ -150,9 +150,9 @@ const rollBackNewMonitorBulk = async ( await deleteMonitorAPI.execute({ monitorIds: monitorsToCreate.map(({ id }) => id), }); - } catch (e) { + } catch (error) { // ignore errors here - server.logger.error(e); + server.logger.error(`Unable to rollback new monitors, Error: ${error.message}`, { error }); } }; @@ -197,6 +197,6 @@ export const deleteMonitorIfCreated = async ({ } } catch (e) { // ignore errors here - server.logger.error(e); + server.logger.error(`Unable to delete monitor with id ${newMonitorId}`, { error: e }); } }; diff --git a/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/bulk_cruds/edit_monitor_bulk.ts b/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/bulk_cruds/edit_monitor_bulk.ts index f106dc46c0708..20b005fe48ec1 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/bulk_cruds/edit_monitor_bulk.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/bulk_cruds/edit_monitor_bulk.ts @@ -132,7 +132,6 @@ export const syncEditedMonitorBulk = async ({ editedMonitors: editedMonitorSavedObjects?.saved_objects, }; } catch (e) { - server.logger.error(`Unable to update Synthetics monitors, ${e.message}`); await rollbackCompletely({ routeContext, monitorsToUpdate }); throw e; } @@ -154,8 +153,8 @@ export const rollbackCompletely = async ({ attributes: decryptedPreviousMonitor.attributes, })) ); - } catch (e) { - server.logger.error(`Unable to rollback Synthetics monitors edit ${e.message} `); + } catch (error) { + server.logger.error(`Unable to rollback Synthetics monitors edit ${error.message} `, { error }); } }; @@ -204,7 +203,10 @@ export const rollbackFailedUpdates = async ({ await savedObjectsClient.bulkUpdate(monitorsToRevert); } return failedConfigs; - } catch (e) { - server.logger.error(`Unable to rollback Synthetics monitor failed updates, ${e.message} `); + } catch (error) { + server.logger.error( + `Unable to rollback Synthetics monitor failed updates, Error: ${error.message}`, + { error } + ); } }; diff --git a/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/edit_monitor.ts b/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/edit_monitor.ts index aa67ecc018dea..6b77d2acc1019 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/edit_monitor.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/edit_monitor.ts @@ -184,21 +184,24 @@ export const editSyntheticsMonitorRoute: SyntheticsRestApiRouteFactory = () => ( created_at: previousMonitor.created_at, }, }); - } catch (updateErr) { - if (SavedObjectsErrorHelpers.isNotFoundError(updateErr)) { + } catch (error) { + if (SavedObjectsErrorHelpers.isNotFoundError(error)) { return getMonitorNotFoundResponse(response, monitorId); } - if (updateErr instanceof InvalidLocationError || updateErr instanceof InvalidScheduleError) { - return response.badRequest({ body: { message: updateErr.message } }); + if (error instanceof InvalidLocationError || error instanceof InvalidScheduleError) { + return response.badRequest({ body: { message: error.message } }); } - if (updateErr instanceof MonitorValidationError) { - const { reason: message, details, payload } = updateErr.result; + if (error instanceof MonitorValidationError) { + const { reason: message, details, payload } = error.result; return response.badRequest({ body: { message, attributes: { details, ...payload } } }); } - logger.error(updateErr); + logger.error( + `Unable to update Synthetics monitor with id ${monitorId}, Error: ${error.message}`, + { error } + ); return response.customError({ - body: { message: updateErr.message }, + body: { message: error.message }, statusCode: 500, }); } @@ -217,8 +220,13 @@ const rollbackUpdate = async ({ const { savedObjectsClient, server } = routeContext; try { await savedObjectsClient.update(syntheticsMonitorType, configId, attributes); - } catch (e) { - server.logger.error(`Unable to rollback Synthetics monitors edit ${e.message} `); + } catch (error) { + server.logger.error( + `Unable to rollback edit for Synthetics monitor with id ${configId}, Error: ${error.message}`, + { + error, + } + ); } }; @@ -265,10 +273,7 @@ export const syncEditedMonitor = async ({ const [editedMonitorSavedObject, { publicSyncErrors, failedPolicyUpdates }] = await Promise.all( [editedSOPromise, editSyncPromise] - ).catch((e) => { - server.logger.error(e); - throw e; - }); + ); sendTelemetryEvents( server.logger, @@ -294,9 +299,6 @@ export const syncEditedMonitor = async ({ }, }; } catch (e) { - server.logger.error( - `Unable to update Synthetics monitor ${decryptedPreviousMonitor.attributes[ConfigKey.NAME]}` - ); await rollbackUpdate({ routeContext, configId: decryptedPreviousMonitor.id, diff --git a/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/inspect_monitor.ts b/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/inspect_monitor.ts index 2125562a2ffc6..95526471d41fd 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/inspect_monitor.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/inspect_monitor.ts @@ -91,14 +91,14 @@ export const inspectSyntheticsMonitorRoute: SyntheticsRestApiRouteFactory = () = } return response.ok({ body: { result, decodedCode: formatCode(decodedCode) } }); - } catch (getErr) { + } catch (error) { server.logger.error( - `Unable to inspect Synthetics monitor ${monitorWithDefaults[ConfigKey.NAME]}` + `Unable to inspect Synthetics monitor ${monitorWithDefaults[ConfigKey.NAME]}`, + { error } ); - server.logger.error(getErr); return response.customError({ - body: { message: getErr.message }, + body: { message: error.message }, statusCode: 500, }); } diff --git a/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/project_monitor/add_monitor_project.ts b/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/project_monitor/add_monitor_project.ts index cf48373ae145a..f4a472f2201a4 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/project_monitor/add_monitor_project.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/project_monitor/add_monitor_project.ts @@ -83,12 +83,12 @@ export const addSyntheticsProjectMonitorRoute: SyntheticsRestApiRouteFactory = ( failedMonitors: pushMonitorFormatter.failedMonitors, }; } catch (error) { - server.logger.error(`Error adding monitors to project ${decodedProjectName}`); if (error.output?.statusCode === 404) { const spaceId = server.spaces?.spacesService.getSpaceId(request) ?? DEFAULT_SPACE_ID; return response.notFound({ body: { message: `Kibana space '${spaceId}' does not exist` } }); } + server.logger.error(`Error adding monitors to project ${decodedProjectName}`, { error }); throw error; } }, diff --git a/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/project_monitor/get_monitor_project.ts b/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/project_monitor/get_monitor_project.ts index c0438f8200f13..9d6621cf508a3 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/project_monitor/get_monitor_project.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/project_monitor/get_monitor_project.ts @@ -67,7 +67,7 @@ export const getSyntheticsProjectMonitorsRoute: SyntheticsRestApiRouteFactory = monitors: projectMonitors, }; } catch (error) { - logger.error(error); + logger.error(`Error getting Synthetics monitors, Error: ${error.message}`, { error }); } }, }); diff --git a/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/services/delete_monitor_api.ts b/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/services/delete_monitor_api.ts index 4fc527f930832..1a98693c21e00 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/services/delete_monitor_api.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/routes/monitor_cruds/services/delete_monitor_api.ts @@ -71,7 +71,9 @@ export class DeleteMonitorAPI { error: `Monitor id ${monitorId} not found!`, }); } else { - server.logger.error(`Failed to decrypt monitor to delete ${monitorId}${e}`); + server.logger.error(`Failed to decrypt monitor to delete, monitor id: ${monitorId}`, { + error: e, + }); sendErrorTelemetryEvents(server.logger, server.telemetry, { reason: `Failed to decrypt monitor to delete ${monitorId}`, message: e?.message, @@ -118,10 +120,11 @@ export class DeleteMonitorAPI { }); return { errors, result: this.result }; - } catch (e) { - server.logger.error(`Unable to delete Synthetics monitor with error ${e.message}`); - server.logger.error(e); - throw e; + } catch (error) { + server.logger.error(`Unable to delete Synthetics monitor with error ${error.message}`, { + error, + }); + throw error; } } diff --git a/x-pack/solutions/observability/plugins/synthetics/server/routes/settings/private_locations/migrate_legacy_private_locations.test.ts b/x-pack/solutions/observability/plugins/synthetics/server/routes/settings/private_locations/migrate_legacy_private_locations.test.ts index f1e3101523c23..1f6019c03d21a 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/routes/settings/private_locations/migrate_legacy_private_locations.test.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/routes/settings/private_locations/migrate_legacy_private_locations.test.ts @@ -43,7 +43,8 @@ describe('migrateLegacyPrivateLocations', () => { await migrateLegacyPrivateLocations(repositoryMock, loggerMockVal); expect(loggerMockVal.error).toHaveBeenCalledWith( - 'Error migrating legacy private locations: Error: Get error' + 'Error migrating legacy private locations: Get error', + { error } ); }); diff --git a/x-pack/solutions/observability/plugins/synthetics/server/routes/settings/private_locations/migrate_legacy_private_locations.ts b/x-pack/solutions/observability/plugins/synthetics/server/routes/settings/private_locations/migrate_legacy_private_locations.ts index e823e7764f540..e8b12988d0524 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/routes/settings/private_locations/migrate_legacy_private_locations.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/routes/settings/private_locations/migrate_legacy_private_locations.ts @@ -64,7 +64,7 @@ export const migrateLegacyPrivateLocations = async ( {} ); } - } catch (e) { - logger.error(`Error migrating legacy private locations: ${e}`); + } catch (error) { + logger.error(`Error migrating legacy private locations: ${error.message}`, { error }); } }; diff --git a/x-pack/solutions/observability/plugins/synthetics/server/routes/suggestions/route.ts b/x-pack/solutions/observability/plugins/synthetics/server/routes/suggestions/route.ts index d97b8ac9b9f35..f6f605ae833f5 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/routes/suggestions/route.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/routes/suggestions/route.ts @@ -61,62 +61,55 @@ export const getSyntheticsSuggestionsRoute: SyntheticsRestApiRouteFactory< query: QuerySchema, }, handler: async (route): Promise => { - const { - savedObjectsClient, - server: { logger }, - } = route; + const { savedObjectsClient } = route; const { query } = route.request.query; const { filtersStr } = await getMonitorFilters(route); const { allLocations = [] } = await getAllLocations(route); - try { - const data = await savedObjectsClient.find({ - type: syntheticsMonitorType, - perPage: 0, - filter: filtersStr ? `${filtersStr}` : undefined, - aggs, - search: query ? `${query}*` : undefined, - searchFields: SEARCH_FIELDS, - }); + const data = await savedObjectsClient.find({ + type: syntheticsMonitorType, + perPage: 0, + filter: filtersStr ? `${filtersStr}` : undefined, + aggs, + search: query ? `${query}*` : undefined, + searchFields: SEARCH_FIELDS, + }); - const { monitorTypesAggs, tagsAggs, locationsAggs, projectsAggs, monitorIdsAggs } = - (data?.aggregations as AggsResponse) ?? {}; - const allLocationsMap = new Map(allLocations.map((obj) => [obj.id, obj.label])); + const { monitorTypesAggs, tagsAggs, locationsAggs, projectsAggs, monitorIdsAggs } = + (data?.aggregations as AggsResponse) ?? {}; + const allLocationsMap = new Map(allLocations.map((obj) => [obj.id, obj.label])); - return { - monitorIds: monitorIdsAggs?.buckets?.map(({ key, doc_count: count, name }) => ({ - label: name?.hits?.hits[0]?._source?.[syntheticsMonitorType]?.[ConfigKey.NAME] || key, + return { + monitorIds: monitorIdsAggs?.buckets?.map(({ key, doc_count: count, name }) => ({ + label: name?.hits?.hits[0]?._source?.[syntheticsMonitorType]?.[ConfigKey.NAME] || key, + value: key, + count, + })), + tags: + tagsAggs?.buckets?.map(({ key, doc_count: count }) => ({ + label: key, value: key, count, - })), - tags: - tagsAggs?.buckets?.map(({ key, doc_count: count }) => ({ - label: key, - value: key, - count, - })) ?? [], - locations: - locationsAggs?.buckets?.map(({ key, doc_count: count }) => ({ - label: allLocationsMap.get(key) || key, - value: key, - count, - })) ?? [], - projects: - projectsAggs?.buckets?.map(({ key, doc_count: count }) => ({ - label: key, - value: key, - count, - })) ?? [], - monitorTypes: - monitorTypesAggs?.buckets?.map(({ key, doc_count: count }) => ({ - label: key, - value: key, - count, - })) ?? [], - }; - } catch (error) { - logger.error(`Failed to fetch synthetics suggestions: ${error}`); - } + })) ?? [], + locations: + locationsAggs?.buckets?.map(({ key, doc_count: count }) => ({ + label: allLocationsMap.get(key) || key, + value: key, + count, + })) ?? [], + projects: + projectsAggs?.buckets?.map(({ key, doc_count: count }) => ({ + label: key, + value: key, + count, + })) ?? [], + monitorTypes: + monitorTypesAggs?.buckets?.map(({ key, doc_count: count }) => ({ + label: key, + value: key, + count, + })) ?? [], + }; }, }); diff --git a/x-pack/solutions/observability/plugins/synthetics/server/routes/synthetics_service/enablement.ts b/x-pack/solutions/observability/plugins/synthetics/server/routes/synthetics_service/enablement.ts index b78c71e71353f..d0f4f969670e0 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/routes/synthetics_service/enablement.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/routes/synthetics_service/enablement.ts @@ -24,44 +24,38 @@ export const getSyntheticsEnablementRoute: SyntheticsRestApiRouteFactory = () => server, syntheticsMonitorClient, }): Promise => { - try { - const isServiceAllowed = syntheticsMonitorClient.syntheticsService.isAllowed; - const result = await getSyntheticsEnablement({ - server, + const isServiceAllowed = syntheticsMonitorClient.syntheticsService.isAllowed; + const result = await getSyntheticsEnablement({ + server, + }); + const { canEnable, isEnabled } = result; + const { security } = server; + const { apiKey, isValid } = await getAPIKeyForSyntheticsService({ + server, + }); + if (apiKey && !isValid) { + await syntheticsServiceAPIKeySavedObject.delete(savedObjectsClient); + await security.authc.apiKeys?.invalidateAsInternalUser({ + ids: [apiKey?.id || ''], }); - const { canEnable, isEnabled } = result; - const { security } = server; - const { apiKey, isValid } = await getAPIKeyForSyntheticsService({ + } + const regenerationRequired = !isEnabled || !isValid; + const shouldEnableApiKey = server.config.service?.manifestUrl || server.config.service?.devUrl; + if (canEnable && regenerationRequired && shouldEnableApiKey) { + await generateAndSaveServiceAPIKey({ + request, + authSavedObjectsClient: savedObjectsClient, server, }); - if (apiKey && !isValid) { - await syntheticsServiceAPIKeySavedObject.delete(savedObjectsClient); - await security.authc.apiKeys?.invalidateAsInternalUser({ - ids: [apiKey?.id || ''], - }); - } - const regenerationRequired = !isEnabled || !isValid; - const shouldEnableApiKey = - server.config.service?.manifestUrl || server.config.service?.devUrl; - if (canEnable && regenerationRequired && shouldEnableApiKey) { - await generateAndSaveServiceAPIKey({ - request, - authSavedObjectsClient: savedObjectsClient, - server, - }); - } else { - return { ...result, isServiceAllowed }; - } + } else { + return { ...result, isServiceAllowed }; + } - const res = await getSyntheticsEnablement({ - server, - }); + const res = await getSyntheticsEnablement({ + server, + }); - return { ...res, isServiceAllowed }; - } catch (e) { - server.logger.error(e); - throw e; - } + return { ...res, isServiceAllowed }; }, }); @@ -77,21 +71,16 @@ export const disableSyntheticsRoute: SyntheticsRestApiRouteFactory = () => ({ }): Promise => { const { security } = server; const { syntheticsService } = syntheticsMonitorClient; - try { - const { canEnable } = await getSyntheticsEnablement({ server }); - if (!canEnable) { - return response.forbidden(); - } - await syntheticsService.deleteAllConfigs(); - const { apiKey } = await getAPIKeyForSyntheticsService({ - server, - }); - await syntheticsServiceAPIKeySavedObject.delete(savedObjectsClient); - await security.authc.apiKeys?.invalidateAsInternalUser({ ids: [apiKey?.id || ''] }); - return response.ok({}); - } catch (e) { - server.logger.error(e); - throw e; + const { canEnable } = await getSyntheticsEnablement({ server }); + if (!canEnable) { + return response.forbidden(); } + await syntheticsService.deleteAllConfigs(); + const { apiKey } = await getAPIKeyForSyntheticsService({ + server, + }); + await syntheticsServiceAPIKeySavedObject.delete(savedObjectsClient); + await security.authc.apiKeys?.invalidateAsInternalUser({ ids: [apiKey?.id || ''] }); + return response.ok({}); }, }); diff --git a/x-pack/solutions/observability/plugins/synthetics/server/routes/telemetry/monitor_upgrade_sender.ts b/x-pack/solutions/observability/plugins/synthetics/server/routes/telemetry/monitor_upgrade_sender.ts index f000108620f45..6a63321e511f6 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/routes/telemetry/monitor_upgrade_sender.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/routes/telemetry/monitor_upgrade_sender.ts @@ -37,8 +37,8 @@ export function sendTelemetryEvents( try { eventsTelemetry.queueTelemetryEvents(MONITOR_UPDATE_CHANNEL, [updateEvent]); eventsTelemetry.queueTelemetryEvents(MONITOR_CURRENT_CHANNEL, [updateEvent]); - } catch (exc) { - logger.error(`queuing telemetry events failed ${exc}`); + } catch (error) { + logger.error(`queuing telemetry events failed ${error.message}`, { error }); } } @@ -53,8 +53,8 @@ export function sendErrorTelemetryEvents( try { eventsTelemetry.queueTelemetryEvents(MONITOR_ERROR_EVENTS_CHANNEL, [updateEvent]); - } catch (exc) { - logger.error(`queuing telemetry events failed ${exc}`); + } catch (error) { + logger.error(`queuing telemetry events failed ${error.message}`, { error }); } } diff --git a/x-pack/solutions/observability/plugins/synthetics/server/synthetics_route_wrapper.ts b/x-pack/solutions/observability/plugins/synthetics/server/synthetics_route_wrapper.ts index 5cfcf2aada8d7..cf0ced868e6e0 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/synthetics_route_wrapper.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/synthetics_route_wrapper.ts @@ -115,8 +115,11 @@ export const syntheticsRouteWrapper: SyntheticsRouteWrapper = ( }, }); } + } else if (e.statusCode >= 500) { + server.logger.error(e); + } else { + server.logger.debug(e); } - server.logger.error(e); throw e; } }); diff --git a/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/get_all_locations.ts b/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/get_all_locations.ts index 0d8355cebc1f6..417b433f64b0d 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/get_all_locations.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/get_all_locations.ts @@ -44,8 +44,8 @@ export async function getAllLocations({ throttling, allLocations: [...publicLocations, ...pvtLocations], }; - } catch (e) { - server.logger.error(e); + } catch (error) { + server.logger.error(`Error getting Synthetics locations, Error: ${error.message}`, { error }); return { publicLocations: [], privateLocations: [], allLocations: [] }; } } diff --git a/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/get_api_key.ts b/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/get_api_key.ts index b43f1356b098c..7a1de57358bca 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/get_api_key.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/get_api_key.ts @@ -68,14 +68,10 @@ export const getAPIKeyForSyntheticsService = async ({ return { isValid: false, apiKey }; } - if (!isValid) { - server.logger.info('Synthetics api is no longer valid'); - } - return { apiKey, isValid }; } - } catch (err) { - server.logger.error(err); + } catch (error) { + server.logger.error(`API key is invalid, ${error.message}`, { error }); } return { isValid: false }; diff --git a/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/get_service_locations.ts b/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/get_service_locations.ts index 0f6b398fb6b68..2cfc814914702 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/get_service_locations.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/get_service_locations.ts @@ -77,8 +77,10 @@ export async function getServiceLocations(server: SyntheticsServerSetup) { ) as ThrottlingOptions; return { throttling, locations }; - } catch (e) { - server.logger.error(e); + } catch (error) { + server.logger.error(`Error getting available Synthetics locations, Error: ${error.message}`, { + error, + }); return { locations: [] }; } } diff --git a/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/private_location/clean_up_task.ts b/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/private_location/clean_up_task.ts index 5bc47c17ef26e..11e484f2c11a7 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/private_location/clean_up_task.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/private_location/clean_up_task.ts @@ -37,7 +37,7 @@ export const registerCleanUpTask = ( return { // Perform the work of the task. The return value should fit the TaskResult interface. async run() { - logger.info( + logger.debug( `Executing synthetics clean up task: ${SYNTHETICS_SERVICE_CLEAN_UP_TASK_ID}` ); const { state } = taskInstance; diff --git a/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/service_api_client.ts b/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/service_api_client.ts index 3f9959440b3e9..1c14407fbd534 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/service_api_client.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/service_api_client.ts @@ -111,8 +111,8 @@ export class ServiceAPIClient { const { allowed, signupUrl } = data; return { allowed, signupUrl }; - } catch (e) { - this.logger.error(e); + } catch (error) { + this.logger.error(`Error getting isAllowed status, Error: ${error.message}`, { error }); } } } else { @@ -177,8 +177,8 @@ export class ServiceAPIClient { async syncMonitors(data: ServiceData) { try { return (await this.callAPI('PUT', { ...data, endpoint: 'sync' })).pushErrors; - } catch (e) { - this.logger.error(e); + } catch (error) { + this.logger.error(`Error syncing Synthetics monitors, Error: ${error.message}`, { error }); } } diff --git a/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/synthetics_service.ts b/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/synthetics_service.ts index 147d589325351..e49fd5a08ef2f 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/synthetics_service.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/synthetics_service/synthetics_service.ts @@ -126,20 +126,20 @@ export class SyntheticsService { installedPackage.name === 'synthetics' && installedPackage.install_status === 'installed' ) { - this.logger.info('Installed synthetics index templates'); + this.logger.debug('Installed synthetics index templates'); this.indexTemplateExists = true; } else if ( installedPackage.name === 'synthetics' && installedPackage.install_status === 'install_failed' ) { - this.logger.warn(new IndexTemplateInstallationError()); + const e = new IndexTemplateInstallationError(); + this.logger.error(e.message, { error: e }); this.indexTemplateExists = false; } } } catch (e) { - this.logger.error(e); + this.logger.error(new IndexTemplateInstallationError().message, { error: e }); this.indexTemplateInstalling = false; - this.logger.warn(new IndexTemplateInstallationError()); } } @@ -156,8 +156,8 @@ export class SyntheticsService { .map((loc) => loc.id) .join(',')} Synthetics service locations from manifest: ${this.config.manifestUrl}` ); - } catch (e) { - this.logger.error(e); + } catch (error) { + this.logger.error(`Error registering service locations, Error: ${error.message}`, { error }); } } @@ -477,16 +477,17 @@ export class SyntheticsService { }); await syncAllLocations(PER_PAGE); - } catch (e) { - this.logger.error(`Failed to run Synthetics sync task with error: ${e.message}`); - this.logger.error(e); + } catch (error) { + this.logger.error(`Failed to run Synthetics sync task, Error: ${error.message}`, { + error, + }); sendErrorTelemetryEvents(service.logger, service.server.telemetry, { reason: 'Failed to push configs to service', - message: e?.message, + message: error?.message, type: 'pushConfigsError', - code: e?.code, - status: e.status, + code: error?.code, + status: error.status, stackVersion: service.server.stackVersion, }); } diff --git a/x-pack/solutions/observability/plugins/synthetics/server/tasks/sync_private_locations_monitors_task.ts b/x-pack/solutions/observability/plugins/synthetics/server/tasks/sync_private_locations_monitors_task.ts index 6650dfcefe6e3..2fe9142c07753 100644 --- a/x-pack/solutions/observability/plugins/synthetics/server/tasks/sync_private_locations_monitors_task.ts +++ b/x-pack/solutions/observability/plugins/synthetics/server/tasks/sync_private_locations_monitors_task.ts @@ -291,7 +291,8 @@ export const runSynPrivateLocationMonitorsTaskSoon = async ({ logger.debug(`Synthetics sync private location task scheduled successfully`); } catch (error) { logger.error( - `Error scheduling Synthetics sync private location monitors task: ${error.message}` + `Error scheduling Synthetics sync private location monitors task: ${error.message}`, + { error } ); } };