summaryrefslogtreecommitdiff
path: root/tests/specs/cli/otel_basic/basic.ts
blob: 5c4ae43cd8298e4cbb84437e5ba57f1ecdcf0f8f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 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;
    });
  },
});