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; }