From 779dfe363520e62a1c435430b55ce24b332e8366 Mon Sep 17 00:00:00 2001 From: Daniel Griesser Date: Wed, 19 Feb 2020 13:02:53 +0100 Subject: [PATCH] fix: Remove auto unknown_error transaction status (#2440) * ref: Mark transaction as failed on error * ref: Remove transaction status * fix: Don't set status if UnknownError --- packages/apm/src/integrations/tracing.ts | 20 ++++++++++---------- packages/apm/src/span.ts | 5 ++++- packages/types/src/span.ts | 4 ++-- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/packages/apm/src/integrations/tracing.ts b/packages/apm/src/integrations/tracing.ts index 8e1a30299545..3e136e4f5bc7 100644 --- a/packages/apm/src/integrations/tracing.ts +++ b/packages/apm/src/integrations/tracing.ts @@ -202,16 +202,16 @@ export class Tracing implements Integration { return event; } - if ( - Tracing.options.maxTransactionDuration !== 0 && - Tracing._isEnabled() && - event.type === 'transaction' && - event.timestamp && - event.start_timestamp && - (event.timestamp - event.start_timestamp > Tracing.options.maxTransactionDuration || - event.timestamp - event.start_timestamp < 0) - ) { - return null; + if (Tracing._isEnabled()) { + const isOutdatedTransaction = + event.timestamp && + event.start_timestamp && + (event.timestamp - event.start_timestamp > Tracing.options.maxTransactionDuration || + event.timestamp - event.start_timestamp < 0); + + if (Tracing.options.maxTransactionDuration !== 0 && event.type === 'transaction' && isOutdatedTransaction) { + return null; + } } return event; diff --git a/packages/apm/src/span.ts b/packages/apm/src/span.ts index 2fca37e62188..d473d04cbb45 100644 --- a/packages/apm/src/span.ts +++ b/packages/apm/src/span.ts @@ -238,7 +238,10 @@ export class Span implements SpanInterface, SpanContext { */ public setHttpStatus(httpStatus: number): this { this.setTag('http.status_code', String(httpStatus)); - this.setStatus(SpanStatus.fromHttpCode(httpStatus)); + const spanStatus = SpanStatus.fromHttpCode(httpStatus); + if (spanStatus !== SpanStatus.UnknownError) { + this.setStatus(spanStatus); + } return this; } diff --git a/packages/types/src/span.ts b/packages/types/src/span.ts index 0c7a9383b1da..4bb18a38fb74 100644 --- a/packages/types/src/span.ts +++ b/packages/types/src/span.ts @@ -91,7 +91,7 @@ export enum SpanStatus { /** The operation completed successfully. */ Ok = 'ok', /** Deadline expired before operation could complete. */ - DealineExceeded = 'deadline_exceeded', + DeadlineExceeded = 'deadline_exceeded', /** 401 Unauthorized (actually does mean unauthenticated according to RFC 7235) */ Unauthenticated = 'unauthenticated', /** 403 Forbidden */ @@ -164,7 +164,7 @@ export namespace SpanStatus { case 503: return SpanStatus.Unavailable; case 504: - return SpanStatus.DealineExceeded; + return SpanStatus.DeadlineExceeded; default: return SpanStatus.InternalError; }