From 65b2b79b1327e4ccb2c589b5c214d67dce756004 Mon Sep 17 00:00:00 2001 From: Daniel Dyla Date: Wed, 5 Apr 2023 13:56:56 -0400 Subject: [PATCH] Log name and ID on span end misuse (#3716) * Log name and ID on span end misuse * Changelog * lint --- CHANGELOG.md | 2 ++ packages/opentelemetry-sdk-trace-base/src/Span.ts | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d9172dab89..e894e1efd2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ For experimental package changes, see the [experimental CHANGELOG](experimental/ ### :rocket: (Enhancement) +* feat(tracing): log span name and IDs when span end is called multiple times [#3716](https://github.com/open-telemetry/opentelemetry-js/pull/3716) + ### :bug: (Bug Fix) * fix(instrumentation-http): fixed description for http.server.duration metric [#3710](https://github.com/open-telemetry/opentelemetry-js/pull/3710) diff --git a/packages/opentelemetry-sdk-trace-base/src/Span.ts b/packages/opentelemetry-sdk-trace-base/src/Span.ts index 0f742855d1..31fb1555ac 100644 --- a/packages/opentelemetry-sdk-trace-base/src/Span.ts +++ b/packages/opentelemetry-sdk-trace-base/src/Span.ts @@ -216,7 +216,9 @@ export class Span implements APISpan, ReadableSpan { end(endTime?: TimeInput): void { if (this._isSpanEnded()) { - diag.error('You can only call end() on a span once.'); + diag.error( + `${this.name} ${this._spanContext.traceId}-${this._spanContext.spanId} - You can only call end() on a span once.` + ); return; } this._ended = true;