From 2bcb3ead24ab09081aa1559bb20372b6e00458b3 Mon Sep 17 00:00:00 2001 From: Milo Hansen Date: Tue, 8 Apr 2025 11:56:27 -0700 Subject: [PATCH 1/5] use routePath Replace indexing into the matchedRoutes with a direct reference to routePath --- packages/otel/src/index.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/otel/src/index.ts b/packages/otel/src/index.ts index 55bfe7a8..03252913 100644 --- a/packages/otel/src/index.ts +++ b/packages/otel/src/index.ts @@ -30,9 +30,9 @@ export const otel = (async (c, next) => { - const route = c.req.matchedRoutes[c.req.matchedRoutes.length - 1] + const routePath = c.req.routePath await tracer.startActiveSpan( - `${c.req.method} ${route.path}`, + `${c.req.method} ${routePath}`, { kind: SpanKind.SERVER, attributes: { [ATTR_HTTP_REQUEST_METHOD]: c.req.method, [ATTR_URL_FULL]: c.req.url, - [ATTR_HTTP_ROUTE]: route.path, + [ATTR_HTTP_ROUTE]: routePath, }, }, async (span) => { From 5315ef7e0d1ad654b99a358f3dfab99704031bcb Mon Sep 17 00:00:00 2001 From: Milo Hansen Date: Tue, 8 Apr 2025 11:56:47 -0700 Subject: [PATCH 2/5] Update package.json Bump version --- packages/otel/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/otel/package.json b/packages/otel/package.json index f19e3291..7ddb548d 100644 --- a/packages/otel/package.json +++ b/packages/otel/package.json @@ -1,6 +1,6 @@ { "name": "@hono/otel", - "version": "0.1.0", + "version": "0.1.1", "description": "OpenTelemetry middleware for Hono", "type": "module", "module": "dist/index.js", From a638a15346cb2fb907228626468b3b781b402baf Mon Sep 17 00:00:00 2001 From: Milo Hansen Date: Tue, 8 Apr 2025 12:09:41 -0700 Subject: [PATCH 3/5] 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 = Date: Tue, 8 Apr 2025 12:12:08 -0700 Subject: [PATCH 4/5] revert version bump --- packages/otel/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/otel/package.json b/packages/otel/package.json index 7ddb548d..f19e3291 100644 --- a/packages/otel/package.json +++ b/packages/otel/package.json @@ -1,6 +1,6 @@ { "name": "@hono/otel", - "version": "0.1.1", + "version": "0.1.0", "description": "OpenTelemetry middleware for Hono", "type": "module", "module": "dist/index.js", From 3fb6df0f0f1909ef6e0267f740a4f62f1c9aabd8 Mon Sep 17 00:00:00 2001 From: Milo Hansen Date: Tue, 8 Apr 2025 12:13:33 -0700 Subject: [PATCH 5/5] changeset --- .changeset/ripe-parents-sing.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/ripe-parents-sing.md diff --git a/.changeset/ripe-parents-sing.md b/.changeset/ripe-parents-sing.md new file mode 100644 index 00000000..3cfc0281 --- /dev/null +++ b/.changeset/ripe-parents-sing.md @@ -0,0 +1,5 @@ +--- +'@hono/otel': patch +--- + +Use `req.routePath` to augment spans with the path that handled the request.