Compare commits

..

1 Commits

Author SHA1 Message Date
Kevin 263c170627
Merge ea95a7df84 into 0debb59474 2025-05-02 10:52:13 +02:00
3 changed files with 2 additions and 15 deletions

View File

@ -1,11 +1,5 @@
# @hono/otel # @hono/otel
## 0.2.0
### Minor Changes
- [#1151](https://github.com/honojs/middleware/pull/1151) [`414f0a6c9502de4135d50a4f80698a8d2f09a81d`](https://github.com/honojs/middleware/commit/414f0a6c9502de4135d50a4f80698a8d2f09a81d) Thanks [@nrdobie](https://github.com/nrdobie)! - Added support for W3C Trace Context format
## 0.1.1 ## 0.1.1
### Patch Changes ### Patch Changes

View File

@ -1,6 +1,6 @@
{ {
"name": "@hono/otel", "name": "@hono/otel",
"version": "0.2.0", "version": "0.1.1",
"description": "OpenTelemetry middleware for Hono", "description": "OpenTelemetry middleware for Hono",
"type": "module", "type": "module",
"module": "dist/index.js", "module": "dist/index.js",

View File

@ -1,5 +1,5 @@
import type { TracerProvider } from '@opentelemetry/api' import type { TracerProvider } from '@opentelemetry/api'
import { SpanKind, SpanStatusCode, trace, context, propagation } from '@opentelemetry/api' import { SpanKind, SpanStatusCode, trace } from '@opentelemetry/api'
import { import {
ATTR_HTTP_REQUEST_HEADER, ATTR_HTTP_REQUEST_HEADER,
ATTR_HTTP_REQUEST_METHOD, ATTR_HTTP_REQUEST_METHOD,
@ -42,12 +42,6 @@ export const otel = <E extends Env = any, P extends string = any, I extends Inpu
const tracerProvider = options.tracerProvider ?? trace.getTracerProvider() const tracerProvider = options.tracerProvider ?? trace.getTracerProvider()
const tracer = tracerProvider.getTracer(PACKAGE_NAME, PACKAGE_VERSION) const tracer = tracerProvider.getTracer(PACKAGE_NAME, PACKAGE_VERSION)
return createMiddleware<E, P, I>(async (c, next) => { return createMiddleware<E, P, I>(async (c, next) => {
// Handle propagation of trace context from a request using the W3C Trace Context format
let activeContext = context.active()
if (c.req.header('traceparent')) {
activeContext = propagation.extract(context.active(), c.req.header())
}
const routePath = c.req.routePath const routePath = c.req.routePath
await tracer.startActiveSpan( await tracer.startActiveSpan(
`${c.req.method} ${c.req.routePath}`, `${c.req.method} ${c.req.routePath}`,
@ -59,7 +53,6 @@ export const otel = <E extends Env = any, P extends string = any, I extends Inpu
[ATTR_HTTP_ROUTE]: routePath, [ATTR_HTTP_ROUTE]: routePath,
}, },
}, },
activeContext,
async (span) => { async (span) => {
for (const [name, value] of Object.entries(c.req.header())) { for (const [name, value] of Object.entries(c.req.header())) {
span.setAttribute(ATTR_HTTP_REQUEST_HEADER(name), value) span.setAttribute(ATTR_HTTP_REQUEST_HEADER(name), value)