コード例 #1
0
    def test_should_sample(self):
        from opencensus.trace.samplers import always_off

        sampler = always_off.AlwaysOffSampler()
        should_sample = sampler.should_sample(trace_id='fake_id')

        self.assertFalse(should_sample)
コード例 #2
0
def stop_trace():
    """Stop the current trace."""
    if not execution_context:
        return
    execution_context.set_current_span(None)
    tracer = execution_context.get_opencensus_tracer()
    tracer.tracer = noop_tracer.NoopTracer()
    tracer.span_context = SpanContext(
        trace_options=trace_options.TraceOptions(0))
    tracer.sampler = always_off.AlwaysOffSampler()
コード例 #3
0
    def test__after_request_not_sampled(self):
        sanic_trace_header = 'X_CLOUD_TRACE_CONTEXT'
        trace_id = '2dd43a1d6b2549c6bc2a1a54c2fc0b05'
        span_id = '6e0c63257de34c92'
        sanic_trace_id = '{}/{}'.format(trace_id, span_id)
        sampler = always_off.AlwaysOffSampler()

        app = self.create_app()
        sanic_middleware.SanicMiddleware(app=app, sampler=sampler)

        request, response = app.test_client.get(
            '/', headers={sanic_trace_header: sanic_trace_id})

        self.assertEqual(response.status, 200)
コード例 #4
0
    def test__after_request_not_sampled(self):
        flask_trace_header = 'X-Cloud-Trace-Context'
        trace_id = '2dd43a1d6b2549c6bc2a1a54c2fc0b05'
        span_id = '6e0c63257de34c92'
        flask_trace_id = '{}/{}'.format(trace_id, span_id)
        sampler = always_off.AlwaysOffSampler()

        app = self.create_app()
        flask_middleware.FlaskMiddleware(app=app, sampler=sampler)

        response = app.test_client().get(
            '/', headers={flask_trace_header: flask_trace_id})

        self.assertEqual(response.status_code, 200)
コード例 #5
0
    def test__after_request_not_sampled(self):
        from opencensus.trace.samplers import always_off

        flask_trace_header = 'X_CLOUD_TRACE_CONTEXT'
        trace_id = '2dd43a1d6b2549c6bc2a1a54c2fc0b05'
        span_id = 1234
        flask_trace_id = '{}/{}'.format(trace_id, span_id)
        sampler = always_off.AlwaysOffSampler()

        app = self.create_app()
        flask_middleware.FlaskMiddleware(app=app, sampler=sampler)

        response = app.test_client().get(
            '/', headers={flask_trace_header: flask_trace_id})

        self.assertEqual(response.status_code, 200)
コード例 #6
0
    def test_teardown_include_exception_and_traceback_span_disabled(self):
        sampler = always_off.AlwaysOffSampler()
        app = self.create_app()
        app.config['TESTING'] = True
        middleware = flask_middleware.FlaskMiddleware(app=app, sampler=sampler)

        # TODO: send trace options in header (#465)
        original_method = middleware.propagator.from_headers

        def nope(*args, **kwargs):
            trace_options = TraceOptions()
            trace_options.set_enabled(False)
            return SpanContext(trace_options=trace_options)

        middleware.propagator.from_headers = nope

        with self.assertRaises(FlaskTestException):
            app.test_client().get('/error')

        middleware.propagator.from_headers = original_method
コード例 #7
0
from opencensus.trace.samplers import always_on, always_off
from opencensus.trace.tracer import Tracer

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)


def is_enabled():
    return getattr(settings, 'TRACING_ENABLED', False)


# Setup the exporter
ze = zipkin.ZipkinExporter(service_name=getattr(settings, 'TRACING_SERVICE',
                                                'snoop'),
                           host_name=getattr(settings, 'TRACING_HOST',
                                             'zipkin'),
                           port=getattr(settings, 'TRACING_PORT', 9411),
                           endpoint=getattr(settings, 'TRACING_API',
                                            '/api/v2/spans'))

# If enabled configure 100% sample rate, otherwise, 0% sample rate
if is_enabled():
    sampler = always_on.AlwaysOnSampler()
else:
    sampler = always_off.AlwaysOffSampler()

# Set the tracer to use the exporter
# Get the global singleton Tracer object
tracer = Tracer(exporter=ze, sampler=sampler)
tracer.span('root')