1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-22 15:24:46 -05:00
denoland-deno/tests/specs/cli/otel_basic/basic.ts
Luca Casonato 594a99817c
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.
2024-11-18 23:55:22 +00:00

34 lines
809 B
TypeScript

// 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() {
await tracer.startActiveSpan("inner span", async (span) => {
console.log("log 1");
await 1;
console.log("log 2");
span.end();
});
}
const server = Deno.serve({
port: 0,
async onListen({ port }) {
try {
await fetch(`http://localhost:${port}`);
} finally {
server.shutdown();
}
},
handler: async (_req) => {
return await tracer.startActiveSpan("outer span", async (span) => {
await inner();
const resp = new Response(null, { status: 200 });
span.end();
return resp;
});
},
});