tctx

0.2.4 • Public • Published

trace context licenses w3c spec compliant

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

🚀 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

benchmark          time (avg)        iter/s             (min … max)       p75       p99      p995
------------------------------------------------------------------- -----------------------------

group make
tctx              488.04 ns/iter   2,049,021.8  (477.8 ns … 540.92 ns) 490.45 ns 527.86 ns 540.92 ns
traceparent         6.08 µs/iter     164,346.2     (5.88 µs … 6.46 µs) 6.17 µs 6.46 µs 6.46 µs
trace-context       1.35 µs/iter     743,381.3     (1.33 µs … 1.46 µs) 1.35 µs 1.46 µs 1.46 µs

summary
  tctx
   2.76x faster than trace-context
   12.47x faster than traceparent

group parse
tctx              265.57 ns/iter   3,765,435.2 (260.82 ns … 285.88 ns) 269.13 ns 273.34 ns 285.88 ns
traceparent         5.09 µs/iter     196,302.6     (4.88 µs … 5.36 µs) 5.18 µs 5.36 µs 5.36 µs
trace-context     240.18 ns/iter   4,163,540.7 (237.21 ns … 300.23 ns) 238.89 ns 276.17 ns 297.94 ns

summary
  trace-context
   1.11x faster than tctx
   21.21x faster than traceparent

group child
tctx              724.74 ns/iter   1,379,804.8 (709.77 ns … 752.56 ns) 733.47 ns 752.56 ns 752.56 ns
traceparent         8.18 µs/iter     122,254.2     (7.99 µs … 8.77 µs) 8.24 µs 8.77 µs 8.77 µs
trace-context       1.99 µs/iter     502,728.4     (1.96 µs … 2.05 µs) 1.99 µs 2.05 µs 2.05 µs

summary
  tctx
   2.74x faster than trace-context
   11.29x faster than traceparent

License

MIT © Marais Rossouw

Package Sidebar

Install

npm i tctx

Weekly Downloads

1,543

Version

0.2.4

License

MIT

Unpacked Size

13.5 kB

Total Files

7

Last publish

Collaborators

  • marais