def init_tracer(hs: "HomeServer"): """Set the whitelists and initialise the JaegerClient tracer""" global opentracing if not hs.config.opentracer_enabled: # We don't have a tracer opentracing = None return if not opentracing or not JaegerConfig: raise ConfigError( "The server has been configured to use opentracing but opentracing is not " "installed.") # Pull out the jaeger config if it was given. Otherwise set it to something sensible. # See https://github.com/jaegertracing/jaeger-client-python/blob/master/jaeger_client/config.py set_homeserver_whitelist(hs.config.opentracer_whitelist) from jaeger_client.metrics.prometheus import PrometheusMetricsFactory config = JaegerConfig( config=hs.config.jaeger_config, service_name=f"{hs.config.server_name} {hs.get_instance_name()}", scope_manager=LogContextScopeManager(hs.config), metrics_factory=PrometheusMetricsFactory(), ) # If we have the rust jaeger reporter available let's use that. if RustReporter: logger.info("Using rust_python_jaeger_reporter library") tracer = config.create_tracer(RustReporter(), config.sampler) opentracing.set_global_tracer(tracer) else: config.initialize_tracer()
def test_max_tag_value_length(self): c = Config({}, service_name='x') assert c.max_tag_value_length == constants.MAX_TAG_VALUE_LENGTH c = Config({'max_tag_value_length': 333}, service_name='x') assert c.max_tag_value_length == 333 t = c.create_tracer(NullReporter(), ConstSampler(True)) assert t.max_tag_value_length == 333
def init(): config = Config(service_name='test', config={ 'trace_id_header': 'Trace_ID', 'baggage_header_prefix': 'Trace-Attr-', }) reporter = InMemoryReporter() tracer = config.create_tracer( reporter=reporter, sampler=ConstSampler(True), ) tracing = FlaskTracing(tracer, True, app)
def test_tags(self): os.environ['JAEGER_TAGS'] = 'a=b,c=d' c = Config({'tags': {'e': 'f'}}, service_name='x') assert c.tags == {'a': 'b', 'c': 'd', 'e': 'f'} c.create_tracer(NullReporter(), ConstSampler(True))
logging.basicConfig(format="%(asctime)s %(message)s", level=log_level) reporter = Reporter() config = Config( config={ # usually read from some yaml config "sampler": { "type": "const", "param": 1, }, # 'logging': True, }, service_name="your-app-name", ) tracer = config.create_tracer(reporter, config.sampler) # tracer = config.initialize_tracer() opentracing.set_global_tracer(tracer) i = 0 # for _ in range(100000): # tr = tracker.SummaryTracker() # tr = tracker.SummaryTracker() while True: with tracer.start_span("TestSpan") as span: span.set_tag("test_int", 25) span.set_tag("test_str", "foobar") span.set_tag("test_double", 1.25)