Пример #1
0
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()
Пример #2
0
    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
Пример #3
0
    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
Пример #4
0
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)
Пример #5
0
 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)
Пример #7
0
 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))