node-sleuth
Version:
A zipkin sleuth impelement for general node.
29 lines (28 loc) • 1.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const zipkin_1 = require("zipkin");
const abstract_injector_1 = require("./abstract-injector");
class HttpInjector extends abstract_injector_1.AbstractInjector {
constructor() {
super(HttpInjector.TRACE_ID_NAME, HttpInjector.SPAN_ID_NAME, HttpInjector.PARENT_SPAN_ID_NAME, HttpInjector.SAMPLED_NAME, HttpInjector.FLAGS_NAME);
}
/**
* inject traceId into http response header
* @param ctx koa context
* @param traceId trace id
*/
inject(ctx, traceId) {
super.inject(new Proxy(ctx, {
set(ctx, p, value) {
ctx.set(p, value);
return true;
},
}), traceId);
}
}
exports.HttpInjector = HttpInjector;
HttpInjector.TRACE_ID_NAME = zipkin_1.HttpHeaders.TraceId; // traceIdKey -> 'X-B3-TraceId'
HttpInjector.SPAN_ID_NAME = zipkin_1.HttpHeaders.SpanId; // spanIdKey -> 'X-B3-SpanId'
HttpInjector.PARENT_SPAN_ID_NAME = zipkin_1.HttpHeaders.ParentSpanId; // parentSpanIdKey -> 'X-B3-ParentSpanId'
HttpInjector.SAMPLED_NAME = zipkin_1.HttpHeaders.Sampled; // sampledKey -> 'X-B3-Sampled'
HttpInjector.FLAGS_NAME = zipkin_1.HttpHeaders.Flags; // debugKey -> 'X-B3-Flags'