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)
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
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)
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)
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)
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
def __init__(self): self.span_context = SpanContext( trace_options=trace_options.TraceOptions(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)
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)
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)
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)