From a638a15346cb2fb907228626468b3b781b402baf Mon Sep 17 00:00:00 2001 From: Milo Hansen Date: Tue, 8 Apr 2025 12:09:41 -0700 Subject: [PATCH] set span name and attributes after the request is handled --- packages/otel/src/index.ts | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/packages/otel/src/index.ts b/packages/otel/src/index.ts index 03252913..06c382d5 100644 --- a/packages/otel/src/index.ts +++ b/packages/otel/src/index.ts @@ -1,5 +1,5 @@ import type { TracerProvider } from '@opentelemetry/api' -import { SpanKind, SpanStatusCode, trace } from '@opentelemetry/api' +import { SpanKind, SpanStatusCode, trace } from '@opentelemetry/api' import { ATTR_HTTP_REQUEST_HEADER, ATTR_HTTP_REQUEST_METHOD, @@ -10,17 +10,19 @@ import { } from '@opentelemetry/semantic-conventions' import type { Env, Input } from 'hono' import { createMiddleware } from 'hono/factory' -import metadata from '../package.json' with { type: 'json'} +import metadata from '../package.json' with { type: 'json' } const PACKAGE_NAME = metadata.name const PACKAGE_VERSION = metadata.version -export type OtelOptions = { - augmentSpan?: false; - tracerProvider?: TracerProvider -} | { - augmentSpan: true; -} +export type OtelOptions = + | { + augmentSpan?: false + tracerProvider?: TracerProvider + } + | { + augmentSpan: true + } export const otel = ( options: OtelOptions = {} @@ -42,7 +44,7 @@ export const otel = (async (c, next) => { const routePath = c.req.routePath await tracer.startActiveSpan( - `${c.req.method} ${routePath}`, + `${c.req.method} ${c.req.routePath}`, { kind: SpanKind.SERVER, attributes: { @@ -57,6 +59,10 @@ export const otel =