UNPKG

midwinter

Version:

A next-gen middleware engine built for the WinterCG environments.

29 lines (26 loc) 922 B
import { Midwinter } from './chunk-WXZQARCU.mjs'; import { trace } from '@opentelemetry/api'; import { SEMATTRS_HTTP_URL, ATTR_HTTP_REQUEST_METHOD, ATTR_HTTP_RESPONSE_STATUS_CODE, ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions'; var init = (opts) => { const { name = "midwinter" } = opts ?? {}; const otel = () => { const tracer = trace.getTracer(name); return new Midwinter().use((req, _, meta) => { return tracer.startActiveSpan("request", (span) => { return (res) => { span.setAttributes({ [SEMATTRS_HTTP_URL]: res.url, [ATTR_HTTP_REQUEST_METHOD]: req.method, [ATTR_HTTP_RESPONSE_STATUS_CODE]: res.status }); if (typeof meta.path === "string") { span.setAttribute(ATTR_HTTP_ROUTE, meta.path); } span.end(); }; }); }); }; return { otel }; }; export { init };