W3C Trace Context handling for express.js, based on traceheader
and tracestate
.
Can be easily integrated with loggers:
- Call
.use(traceMiddleware)
in server setup. - Call
getTraceContext()
in your logging method.
npm i express-trace-context
See example at example/example.ts
Console 1:
cd example
npm install
npx ts-node example.ts
Server started on port 3000
Console 2:
curl -s http://localhost:3000 -H 'traceparent: 00-11223344556677889900aabbccddeeff-1234567890abcdef-01' -H 'tracestate: congo=ucfJifl5GOE,rojo=00f067aa0ba902b7' -H 'Content-Type: application/json' -d '{ "some": "json body" }' | jq .
{
"traceContext": {
... (details from request propagated here) ...
Also note logs in Console 1.
npm run clean
npm install
npm run lint
npm run test
npm run build
npm push
- https://www.w3.org/TR/trace-context/
- https://w3c.github.io/trace-context/
- https://nodejs.org/api/async_context.html
- https://www.udemy.com/course/understanding-typescript/learn/lecture/17751414
- Implement remaining of specification details once stable