mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-08-11 20:40:20 +00:00
jaeger-client: add injector, extractor and codecs (#40323)
Signed-off-by: Rafal Witczak <rafal.witczak@relayr.io>
This commit is contained in:
Vendored
+40
-2
@@ -79,18 +79,56 @@ export interface TracingOptions {
|
||||
tags?: any;
|
||||
}
|
||||
|
||||
export interface Injector {
|
||||
inject(spanContext: opentracing.SpanContext, carrier: any): void;
|
||||
}
|
||||
|
||||
export interface Extractor {
|
||||
extract(carrier: any): opentracing.SpanContext | null;
|
||||
}
|
||||
|
||||
export class JaegerTracer extends opentracing.Tracer {
|
||||
registerInjector(format: string, injector: Injector): void;
|
||||
registerExtractor(format: string, extractor: Extractor): void;
|
||||
}
|
||||
|
||||
export function initTracer(
|
||||
tracingConfig: TracingConfig,
|
||||
tracingOptions: TracingOptions
|
||||
): opentracing.Tracer;
|
||||
): JaegerTracer;
|
||||
|
||||
export function initTracerFromEnv(
|
||||
tracingConfig: TracingConfig,
|
||||
tracingOptions: TracingOptions
|
||||
): opentracing.Tracer;
|
||||
): JaegerTracer;
|
||||
|
||||
export class PrometheusMetricsFactory {
|
||||
constructor(client: typeof prometheus, serviceName: string);
|
||||
createCounter(name: string, tags: {}): Counter;
|
||||
createGauge(name: string, tags: {}): Gauge;
|
||||
}
|
||||
|
||||
export interface TextMapCodecOptions {
|
||||
urlEncoding?: boolean;
|
||||
contextKey?: string;
|
||||
baggagePrefix?: string;
|
||||
metrics?: MetricsFactory;
|
||||
}
|
||||
|
||||
export class TextMapCodec implements Injector, Extractor {
|
||||
constructor(options: TextMapCodecOptions);
|
||||
inject(spanContext: opentracing.SpanContext, carrier: any): void;
|
||||
extract(carrier: any): opentracing.SpanContext | null;
|
||||
}
|
||||
|
||||
export interface ZipkinB3TextMapCodecOptions {
|
||||
urlEncoding?: boolean;
|
||||
baggagePrefix?: string;
|
||||
metrics?: MetricsFactory;
|
||||
}
|
||||
|
||||
export class ZipkinB3TextMapCodec implements Injector, Extractor {
|
||||
constructor(options: ZipkinB3TextMapCodecOptions);
|
||||
inject(spanContext: opentracing.SpanContext, carrier: any): void;
|
||||
extract(carrier: any): opentracing.SpanContext | null;
|
||||
}
|
||||
|
||||
@@ -1,10 +1,26 @@
|
||||
import * as jaegerClient from "jaeger-client";
|
||||
import * as promClient from "prom-client";
|
||||
import * as opentracing from "opentracing";
|
||||
|
||||
const tracingConfig: jaegerClient.TracingConfig = {};
|
||||
const tracingOptions: jaegerClient.TracingOptions = {};
|
||||
|
||||
jaegerClient.initTracer(tracingConfig, tracingOptions);
|
||||
const tracer = jaegerClient.initTracer(tracingConfig, tracingOptions);
|
||||
jaegerClient.initTracerFromEnv(tracingConfig, tracingOptions);
|
||||
|
||||
const metrics = new jaegerClient.PrometheusMetricsFactory(promClient, "foo");
|
||||
|
||||
const textCodec = new jaegerClient.TextMapCodec({
|
||||
contextKey: 'trace-id',
|
||||
baggagePrefix: 'baggage-',
|
||||
urlEncoding: false,
|
||||
});
|
||||
tracer.registerInjector(opentracing.FORMAT_TEXT_MAP, textCodec);
|
||||
tracer.registerExtractor(opentracing.FORMAT_TEXT_MAP, textCodec);
|
||||
|
||||
const zipkinB3TextMapCodec = new jaegerClient.ZipkinB3TextMapCodec({
|
||||
baggagePrefix: 'baggage-',
|
||||
urlEncoding: false,
|
||||
});
|
||||
tracer.registerInjector(opentracing.FORMAT_HTTP_HEADERS, zipkinB3TextMapCodec);
|
||||
tracer.registerExtractor(opentracing.FORMAT_HTTP_HEADERS, zipkinB3TextMapCodec);
|
||||
|
||||
Reference in New Issue
Block a user