tctx

W3C Trace Contexts made simple

  • tctx

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
tctx
0.2.020 days ago2 years agoMinified + gzip package size for tctx in KB

Readme


trace context licenses

W3C Trace Context's made simple

This is free to use software, but if you do like it, consider supporting me ❤️
sponsor me
buy me a coffee

⚙️ Install

Avaliable on jsr, NPM and deno.land

npm add tctx

🚀 Usage

// producer

import * as traceparent from 'tctx/traceparent';
import * as tracestate from 'tctx/tracestate';

fetch('/api', {
	headers: {
		traceparent: traceparent.make(),
		tracestate: tracestate.make({ key: 'value' }),
	},
});

// consumer

import * as traceparent from 'tctx/traceparent';
import * as tracestate from 'tctx/tracestate';

const parent_key = traceparent.parse(request.headers.traceparent);
const parent_state = tracestate.parse(request.headers.tracestate);
parent_state.set('vendor', 'value');

fetch('/downstream', {
	headers: {
		traceparent: parent.child(),
		tracestate: parent_state,
	},
});

💨 Benchmark

via the /bench directory with deno 1.41.3

#  make
✔  tctx          ~ 1,666,269 ops/sec ± 0.04%
✔  traceparent   ~   156,468 ops/sec ± 0.07%
✔  trace-context ~   691,817 ops/sec ± 0.02%

#  parse
✔  tctx          ~ 3,429,690 ops/sec ± 0.05%
✔  traceparent   ~   186,418 ops/sec ± 0.07%
✔  trace-context ~ 3,327,424 ops/sec ± 0.10%

#  child
✔  tctx          ~ 2,627,467 ops/sec ± 0.04%
✔  traceparent   ~   256,958 ops/sec ± 0.10%
✔  trace-context ~ 1,252,370 ops/sec ± 0.04%

License

MIT © Marais Rossouw