summaryrefslogtreecommitdiff
path: root/tests/specs/cli/otel_basic/basic.ts
diff options
context:
space:
mode:
authorLuca Casonato <hello@lcas.dev>2024-11-19 00:55:22 +0100
committerGitHub <noreply@github.com>2024-11-18 23:55:22 +0000
commit594a99817cbe44553b2c288578fbba8e1e9c1907 (patch)
tree1ea268742bc626482005fac460a189b4a03f0a53 /tests/specs/cli/otel_basic/basic.ts
parent106d47a0136c04ca219a81c3f91505116e13855e (diff)
feat(runtime): remove public OTEL trace API (#26854)
This PR removes the public Deno.tracing.Span API. We are not confident we can ship an API that is better than the `@opentelemetry/api` API, because V8 CPED does not support us using `using` to manage span context. If this changes, we can revisit this decision. For now, users wanting custom spans can instrument their code using the `@opentelemetry/api` API and `@deno/otel`. This PR also speeds up the OTEL trace generation by a 30% by using Uint8Array instead of strings for the trace ID and span ID.
Diffstat (limited to 'tests/specs/cli/otel_basic/basic.ts')
-rw-r--r--tests/specs/cli/otel_basic/basic.ts24
1 files changed, 17 insertions, 7 deletions
diff --git a/tests/specs/cli/otel_basic/basic.ts b/tests/specs/cli/otel_basic/basic.ts
index 5a178794a..5c4ae43cd 100644
--- a/tests/specs/cli/otel_basic/basic.ts
+++ b/tests/specs/cli/otel_basic/basic.ts
@@ -1,10 +1,17 @@
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
+import { trace } from "npm:@opentelemetry/api@1.9.0";
+import "jsr:@deno/otel@0.0.2/register";
+
+const tracer = trace.getTracer("example-tracer");
+
async function inner() {
- using _span = new Deno.tracing.Span("inner span");
- console.log("log 1");
- await 1;
- console.log("log 2");
+ await tracer.startActiveSpan("inner span", async (span) => {
+ console.log("log 1");
+ await 1;
+ console.log("log 2");
+ span.end();
+ });
}
const server = Deno.serve({
@@ -17,8 +24,11 @@ const server = Deno.serve({
}
},
handler: async (_req) => {
- using _span = new Deno.tracing.Span("outer span");
- await inner();
- return new Response(null, { status: 200 });
+ return await tracer.startActiveSpan("outer span", async (span) => {
+ await inner();
+ const resp = new Response(null, { status: 200 });
+ span.end();
+ return resp;
+ });
},
});