@@ -21,15 +21,12 @@ import {Dispatcher} from './dispatchers/dispatcher';
2121import Span from './span' ;
2222import SpanContext from './span_context' ;
2323import NoopDispatcher from './dispatchers/noop' ;
24- import { Logger , NullLogger } from './logger' ;
24+ import { Logger , NullLogger } from './logger' ;
2525import Utils from './utils' ;
2626import PropagationRegistry from './propagators/propagation_registry' ;
27- import TextMapPropagator from './propagators/textmap_propagator' ;
28- import URLCodex from './propagators/url_codex' ;
2927import StartSpanFields from './start_span_fields' ;
30- import BinaryPropagator from './propagators/binary_propagator' ;
31- import { TracerConfig } from './tracer-config' ;
32- import { Generator , UUIDGenerator } from './generators' ;
28+ import { TracerConfig } from './tracer-config' ;
29+ import { Generator , UUIDGenerator } from './generators' ;
3330
3431export default class Tracer extends opentracing . Tracer {
3532 _serviceName : string ;
@@ -45,16 +42,14 @@ export default class Tracer extends opentracing.Tracer {
4542 commonTags : { [ key : string ] : any } = { } ,
4643 logger : Logger = new NullLogger ( ) ,
4744 idGenerator : Generator = new UUIDGenerator ( ) ,
48- useDualSpanMode : boolean = false ) {
45+ useDualSpanMode : boolean = false ,
46+ propagationRegistry : PropagationRegistry = PropagationRegistry . default ( ) ) {
4947 super ( ) ;
5048 this . _commonTags = commonTags || { } ;
5149 this . _serviceName = serviceName ;
5250 this . _dispatcher = dispatcher ;
5351 this . _logger = logger ;
54- this . _registry = new PropagationRegistry ( ) ;
55- this . _registry . register ( opentracing . FORMAT_TEXT_MAP , new TextMapPropagator ( ) ) ;
56- this . _registry . register ( opentracing . FORMAT_BINARY , new BinaryPropagator ( ) ) ;
57- this . _registry . register ( opentracing . FORMAT_HTTP_HEADERS , new TextMapPropagator ( new URLCodex ( ) ) ) ;
52+ this . _registry = propagationRegistry ;
5853 this . _idGenerator = idGenerator ;
5954 this . _useDualSpanMode = useDualSpanMode ;
6055 }
@@ -188,7 +183,8 @@ export default class Tracer extends opentracing.Tracer {
188183 return ctx ;
189184 }
190185
191- static initTracer ( config : TracerConfig ) : opentracing . Tracer {
186+ static initTracer ( config : TracerConfig ,
187+ propagationRegistry : PropagationRegistry = PropagationRegistry . default ( ) ) : opentracing . Tracer {
192188 if ( config . disable ) {
193189 return new opentracing . Tracer ( ) ;
194190 }
@@ -202,6 +198,7 @@ export default class Tracer extends opentracing.Tracer {
202198 if ( config . logger ) {
203199 config . logger . info ( `Initializing Haystack Tracer with ${ dispatcher . name ( ) } ` ) ;
204200 }
205- return new Tracer ( config . serviceName , dispatcher , config . commonTags , config . logger , config . idGenerator ) ;
201+ return new Tracer ( config . serviceName , dispatcher , config . commonTags , config . logger ,
202+ config . idGenerator , config . useDualSpanMode , propagationRegistry ) ;
206203 }
207204}
0 commit comments