summaryrefslogtreecommitdiff
path: root/tests/specs/cli/otel_basic/main.ts
diff options
context:
space:
mode:
Diffstat (limited to 'tests/specs/cli/otel_basic/main.ts')
-rw-r--r--tests/specs/cli/otel_basic/main.ts38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/specs/cli/otel_basic/main.ts b/tests/specs/cli/otel_basic/main.ts
new file mode 100644
index 000000000..5415a7437
--- /dev/null
+++ b/tests/specs/cli/otel_basic/main.ts
@@ -0,0 +1,38 @@
+// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
+
+const data = {
+ spans: [],
+ logs: [],
+};
+
+const server = Deno.serve(
+ {
+ port: 0,
+ onListen({ port }) {
+ const command = new Deno.Command(Deno.execPath(), {
+ args: ["run", "-A", "-q", "--unstable-otel", Deno.args[0]],
+ env: {
+ OTEL_EXPORTER_OTLP_PROTOCOL: "http/json",
+ OTEL_EXPORTER_OTLP_ENDPOINT: `http://localhost:${port}`,
+ },
+ stdout: "null",
+ });
+ const child = command.spawn();
+ child.output().then(() => {
+ server.shutdown();
+
+ console.log(JSON.stringify(data, null, 2));
+ });
+ },
+ async handler(req) {
+ const body = await req.json();
+ if (body.resourceLogs) {
+ data.logs.push(...body.resourceLogs[0].scopeLogs[0].logRecords);
+ }
+ if (body.resourceSpans) {
+ data.spans.push(...body.resourceSpans[0].scopeSpans[0].spans);
+ }
+ return Response.json({ partialSuccess: {} }, { status: 200 });
+ },
+ },
+);