From 06ec4ef54115524b059ad37038aab892361b0a87 Mon Sep 17 00:00:00 2001 From: Carlos Crespo Date: Fri, 11 Oct 2024 16:38:54 +0200 Subject: [PATCH] Fix error object handling --- .../get_error_group_main_statistics.ts | 12 +++++------- .../get_crash_group_main_statistics.ts | 12 +++++------- .../errors/get_mobile_error_group_main_statistics.ts | 12 +++++------- .../apm/server/routes/traces/get_trace_items.ts | 9 ++++----- 4 files changed, 19 insertions(+), 26 deletions(-) diff --git a/x-pack/plugins/observability_solution/apm/server/routes/errors/get_error_groups/get_error_group_main_statistics.ts b/x-pack/plugins/observability_solution/apm/server/routes/errors/get_error_groups/get_error_group_main_statistics.ts index fbdb7fc2fa94d..3d6fa0f5a5ef6 100644 --- a/x-pack/plugins/observability_solution/apm/server/routes/errors/get_error_groups/get_error_group_main_statistics.ts +++ b/x-pack/plugins/observability_solution/apm/server/routes/errors/get_error_groups/get_error_group_main_statistics.ts @@ -8,7 +8,6 @@ import { AggregationsAggregateOrder } from '@elastic/elasticsearch/lib/api/types'; import { kqlQuery, rangeQuery, termQuery, wildcardQuery } from '@kbn/observability-plugin/server'; import { unflattenKnownApmEventFields } from '@kbn/apm-data-access-plugin/server/utils'; -import { castArray } from 'lodash'; import { asMutableArray } from '../../../../common/utils/as_mutable_array'; import { AT_TIMESTAMP, @@ -180,11 +179,10 @@ export async function getErrorGroupMainStatistics({ ...event, error: { ...(event.error ?? {}), - exception: castArray( - errorSource?.error.exception && errorSource?.error.exception?.length > 1 + exception: + (errorSource?.error.exception?.length ?? 0) > 1 ? errorSource?.error.exception - : event?.error.exception - ), + : event?.error.exception && [event.error.exception], }, }; @@ -194,8 +192,8 @@ export async function getErrorGroupMainStatistics({ lastSeen: new Date(mergedEvent[AT_TIMESTAMP]).getTime(), occurrences: bucket.doc_count, culprit: mergedEvent.error.culprit, - handled: mergedEvent.error.exception[0].handled, - type: mergedEvent.error.exception[0].type, + handled: mergedEvent.error.exception?.[0].handled, + type: mergedEvent.error.exception?.[0].type, traceId: mergedEvent.trace?.id, }; }) ?? []; diff --git a/x-pack/plugins/observability_solution/apm/server/routes/mobile/crashes/get_crash_groups/get_crash_group_main_statistics.ts b/x-pack/plugins/observability_solution/apm/server/routes/mobile/crashes/get_crash_groups/get_crash_group_main_statistics.ts index 96322ed92ca72..c606a6b045a93 100644 --- a/x-pack/plugins/observability_solution/apm/server/routes/mobile/crashes/get_crash_groups/get_crash_group_main_statistics.ts +++ b/x-pack/plugins/observability_solution/apm/server/routes/mobile/crashes/get_crash_groups/get_crash_group_main_statistics.ts @@ -8,7 +8,6 @@ import { AggregationsAggregateOrder } from '@elastic/elasticsearch/lib/api/types'; import { kqlQuery, rangeQuery, termQuery } from '@kbn/observability-plugin/server'; import { ProcessorEvent } from '@kbn/observability-plugin/common'; -import { castArray } from 'lodash'; import { unflattenKnownApmEventFields } from '@kbn/apm-data-access-plugin/server/utils'; import { asMutableArray } from '../../../../../common/utils/as_mutable_array'; import { @@ -142,11 +141,10 @@ export async function getMobileCrashGroupMainStatistics({ ...event, error: { ...(event.error ?? {}), - exception: castArray( - errorSource?.error.exception && errorSource?.error.exception?.length > 1 + exception: + (errorSource?.error.exception?.length ?? 0) > 1 ? errorSource?.error.exception - : event?.error.exception - ), + : event?.error.exception && [event.error.exception], }, }; @@ -156,8 +154,8 @@ export async function getMobileCrashGroupMainStatistics({ lastSeen: new Date(mergedEvent[AT_TIMESTAMP]).getTime(), occurrences: bucket.doc_count, culprit: mergedEvent.error.culprit, - handled: mergedEvent.error.exception[0].handled, - type: mergedEvent.error.exception[0].type, + handled: mergedEvent.error.exception?.[0].handled, + type: mergedEvent.error.exception?.[0].type, }; }) ?? [] ); diff --git a/x-pack/plugins/observability_solution/apm/server/routes/mobile/errors/get_mobile_error_group_main_statistics.ts b/x-pack/plugins/observability_solution/apm/server/routes/mobile/errors/get_mobile_error_group_main_statistics.ts index 2caf6589247a3..1181aa5b02870 100644 --- a/x-pack/plugins/observability_solution/apm/server/routes/mobile/errors/get_mobile_error_group_main_statistics.ts +++ b/x-pack/plugins/observability_solution/apm/server/routes/mobile/errors/get_mobile_error_group_main_statistics.ts @@ -9,7 +9,6 @@ import { AggregationsAggregateOrder } from '@elastic/elasticsearch/lib/api/types import { kqlQuery, rangeQuery, termQuery } from '@kbn/observability-plugin/server'; import { ProcessorEvent } from '@kbn/observability-plugin/common'; import { unflattenKnownApmEventFields } from '@kbn/apm-data-access-plugin/server/utils'; -import { castArray } from 'lodash'; import { asMutableArray } from '../../../../common/utils/as_mutable_array'; import { AT_TIMESTAMP, @@ -143,11 +142,10 @@ export async function getMobileErrorGroupMainStatistics({ ...event, error: { ...(event.error ?? {}), - exception: castArray( - errorSource?.error.exception && errorSource?.error.exception?.length > 1 + exception: + (errorSource?.error.exception?.length ?? 0) > 1 ? errorSource?.error.exception - : event?.error.exception - ), + : event?.error.exception && [event.error.exception], }, }; @@ -157,8 +155,8 @@ export async function getMobileErrorGroupMainStatistics({ lastSeen: new Date(mergedEvent[AT_TIMESTAMP]).getTime(), occurrences: bucket.doc_count, culprit: mergedEvent.error.culprit, - handled: mergedEvent.error.exception[0].handled, - type: mergedEvent.error.exception[0].type, + handled: mergedEvent.error.exception?.[0].handled, + type: mergedEvent.error.exception?.[0].type, }; }) ?? [] ); diff --git a/x-pack/plugins/observability_solution/apm/server/routes/traces/get_trace_items.ts b/x-pack/plugins/observability_solution/apm/server/routes/traces/get_trace_items.ts index 4a1900ff3143a..7d2c0443dfa32 100644 --- a/x-pack/plugins/observability_solution/apm/server/routes/traces/get_trace_items.ts +++ b/x-pack/plugins/observability_solution/apm/server/routes/traces/get_trace_items.ts @@ -10,7 +10,7 @@ import { SortResults } from '@elastic/elasticsearch/lib/api/types'; import { QueryDslQueryContainer, Sort } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { ProcessorEvent } from '@kbn/observability-plugin/common'; import { rangeQuery } from '@kbn/observability-plugin/server'; -import { castArray, last, omit } from 'lodash'; +import { last, omit } from 'lodash'; import { unflattenKnownApmEventFields } from '@kbn/apm-data-access-plugin/server/utils'; import { asMutableArray } from '../../../common/utils/as_mutable_array'; import { APMConfig } from '../..'; @@ -161,11 +161,10 @@ export async function getTraceItems({ ...event, error: { ...(event.error ?? {}), - exception: castArray( - errorSource?.error.exception && errorSource?.error.exception?.length > 1 + exception: + (errorSource?.error.exception?.length ?? 0) > 1 ? errorSource?.error.exception - : event?.error.exception - ), + : event?.error.exception && [event.error.exception], log: errorSource?.error.log, }, };