feat(tracing): add OpenTelemetry tracing#3464
Conversation
| const correlationID = getCorrelationId(); | ||
| if (!correlationID) return originalFetch(input, init); | ||
|
|
||
| const headers = new Headers(init?.headers ?? (input instanceof Request ? input.headers : undefined)); |
There was a problem hiding this comment.
Ekstremt skudd fra hofta, men burde disse merges på en eller annen måte?
There was a problem hiding this comment.
Kan vel til og med slippe unna med å bare opprette headers fra init.headers og bare sende input videre?
There was a problem hiding this comment.
Endret så denne ble lik som i ndla-frontend. Gjerne sjekk på nytt om det gjør det jeg tror det gjør 🤓
| import { trace } from "@opentelemetry/api"; | ||
| import { NextFunction, Request, Response } from "express"; | ||
|
|
||
| export const spanNamingMiddleware = (req: Request, _res: Response, next: NextFunction): void => { |
There was a problem hiding this comment.
Sånn migreringsmessig tipper jeg det er kulere å bruke RequestHandler-typen.
There was a problem hiding this comment.
hva betyr migreringsmessig i denne konteksten sjef?
There was a problem hiding this comment.
At vi slipper å få teite typefeil her når vi oppgraderer express
There was a problem hiding this comment.
Er det noe du vet kommer til å skje eller er dette defansivt i tilfelle express endrer signaturene på request handlerene sine?
Kan fikse either way altså, bare nysgjerrig.
There was a problem hiding this comment.
Absolutt defanstivt, jeg har null peiling!
| const correlationID = getCorrelationId(); | ||
| if (!correlationID) return originalFetch(input, init); | ||
|
|
||
| const headers = new Headers(init?.headers ?? (input instanceof Request ? input.headers : undefined)); |
There was a problem hiding this comment.
Kan vel til og med slippe unna med å bare opprette headers fra init.headers og bare sende input videre?
Run the OpenTelemetry Node SDK so the server emits HTTP server and client spans and propagates W3C trace context downstream. - Add an env-gated NodeSDK bootstrap, imported first so http and fetch are instrumented before use; off unless OTEL_EXPORTER_OTLP_ENDPOINT (or OTEL_TRACES_EXPORTER) is set. - Add correlation-id middleware and a global fetch wrapper to read and forward X-Correlation-ID on server-side outgoing calls. - Add correlationID and trace_id/span_id to logs. - Name the server span after a low-cardinality route bucket. - Add a SIGTERM handler that flushes spans on shutdown.
No description provided.