Пример #1
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()
    def test_to_header(self):
        from opencensus.trace import span_context
        from opencensus.trace import trace_options

        trace_id = '6e0c63257de34c92bf9efcd03927272e'
        span_id = '00f067aa0ba902b7'
        span_context = span_context.SpanContext(
            trace_id=trace_id,
            span_id=span_id,
            trace_options=trace_options.TraceOptions('1'))

        propagator = google_cloud_format.GoogleCloudFormatPropagator()

        header = propagator.to_header(span_context)
        expected_header = '{}/{};o={}'.format(trace_id, span_id, 1)

        self.assertEqual(header, expected_header)
Пример #3
0
    def __init__(self,
                 trace_id=None,
                 span_id=None,
                 trace_options=None,
                 tracestate=None,
                 from_header=False):
        if trace_id is None:
            trace_id = generate_trace_id()

        if trace_options is None:
            trace_options = trace_options_module.TraceOptions(DEFAULT_OPTIONS)

        self.from_header = from_header
        self.trace_id = self._check_trace_id(trace_id)
        self.span_id = self._check_span_id(span_id)
        self.trace_options = trace_options
        self.tracestate = tracestate
Пример #4
0
    def test_to_header(self):
        from opencensus.trace import span_context
        from opencensus.trace import trace_options

        trace_id = '6e0c63257de34c92bf9efcd03927272e'
        span_id_hex = '00f067aa0ba902b7'
        span_context = span_context.SpanContext(
            trace_id=trace_id,
            span_id=span_id_hex,
            trace_options=trace_options.TraceOptions('1'))

        propagator = trace_context_http_header_format.\
            TraceContextPropagator()

        header = propagator.to_header(span_context)
        expected_header = '00-{}-{}-01'.format(trace_id, span_id_hex)

        self.assertEqual(header, expected_header)
    def test_to_headers(self):
        from opencensus.trace import span_context
        from opencensus.trace import trace_options

        trace_id = '6e0c63257de34c92bf9efcd03927272e'
        span_id = '00f067aa0ba902b7'
        span_context = span_context.SpanContext(
            trace_id=trace_id,
            span_id=span_id,
            trace_options=trace_options.TraceOptions('1'))

        propagator = jaeger_format.JaegerFormatPropagator()

        headers = propagator.to_headers(span_context)
        expected_headers = {
            'Uber-Trace-Id': '{}:{}::{:02x}'.format(trace_id, span_id, int(1)),
        }

        self.assertEqual(headers, expected_headers)
Пример #6
0
    def test_to_headers_without_tracestate(self):
        from opencensus.trace import span_context
        from opencensus.trace import trace_options

        propagator = trace_context_http_header_format.\
            TraceContextPropagator()

        trace_id = '12345678901234567890123456789012'
        span_id_hex = '1234567890123456'
        span_context = span_context.SpanContext(
            trace_id=trace_id,
            span_id=span_id_hex,
            trace_options=trace_options.TraceOptions('1'))

        headers = propagator.to_headers(span_context)

        self.assertTrue('traceparent' in headers)
        self.assertEqual(headers['traceparent'],
                         '00-{}-{}-01'.format(trace_id, span_id_hex))

        self.assertFalse('tracestate' in headers)
Пример #7
0
    def test_to_headers_without_tracestate(self):
        from opencensus.trace import span_context
        from opencensus.trace import trace_options

        trace_id = '6e0c63257de34c92bf9efcd03927272e'
        span_id_hex = '00f067aa0ba902b7'
        span_context = span_context.SpanContext(
            trace_id=trace_id,
            span_id=span_id_hex,
            trace_options=trace_options.TraceOptions('1'))

        propagator = trace_context_http_header_format.\
            TraceContextPropagator()

        headers = propagator.to_headers(span_context)

        self.assertTrue('traceparent' in headers)
        self.assertEqual(headers['traceparent'],
            '00-{}-{}-01'.format(trace_id, span_id_hex))

        self.assertFalse('tracestate' in headers)
Пример #8
0
import re

from opencensus.trace.span_context import SpanContext as BaseSpanContext, generate_trace_id
from opencensus.trace import trace_options

_INVALID_TRACE_ID = '0' * 32
INVALID_SPAN_ID = '0' * 16

TRACE_ID_PATTERN = re.compile('[0-9a-f]{32}?')
SPAN_ID_PATTERN = re.compile('[0-9a-f]{8}?')

# Default options, enable tracing
DEFAULT_OPTIONS = 1

# Default trace options
DEFAULT = trace_options.TraceOptions(DEFAULT_OPTIONS)


class SpanContext(BaseSpanContext):
    def __init__(self,
                 trace_id=None,
                 span_id=None,
                 trace_options=None,
                 tracestate=None,
                 from_header=False):
        if trace_id is None:
            trace_id = generate_trace_id()

        if trace_options is None:
            trace_options = DEFAULT
Пример #9
0
    def __init__(self):

        self.span_context = SpanContext(
            trace_options=trace_options.TraceOptions(0))
Пример #10
0
    def test_check_trace_options_invalid(self):
        trace_options_byte = '256'
        trace_options = trace_opt.TraceOptions(trace_options_byte)

        self.assertEqual(trace_options.trace_options_byte, trace_opt.DEFAULT)
Пример #11
0
    def test_check_trace_options_valid(self):
        trace_options_byte = '10'
        trace_options = trace_opt.TraceOptions(trace_options_byte)

        self.assertEqual(trace_options.trace_options_byte, trace_options_byte)
Пример #12
0
    def test_constructor_explicit(self):
        trace_options_byte = '0'
        trace_options = trace_opt.TraceOptions(trace_options_byte)

        self.assertEqual(trace_options.trace_options_byte, trace_options_byte)
        self.assertFalse(trace_options.enabled)
Пример #13
0
    def test_constructor_default(self):
        trace_options = trace_opt.TraceOptions()

        self.assertEqual(trace_options.trace_options_byte, trace_opt.DEFAULT)
        self.assertTrue(trace_options.enabled)