def test_extract_multi_header(self): """Test the extraction of B3 headers.""" child, parent, new_carrier = get_child_parent_new_carrier({ FORMAT.TRACE_ID_KEY: self.serialized_trace_id, FORMAT.SPAN_ID_KEY: self.serialized_span_id, FORMAT.PARENT_SPAN_ID_KEY: self.serialized_parent_id, FORMAT.SAMPLED_KEY: "1", }) self.assertEqual( new_carrier[FORMAT.TRACE_ID_KEY], b3_format.format_trace_id(child.context.trace_id), ) self.assertEqual( new_carrier[FORMAT.SPAN_ID_KEY], b3_format.format_span_id(child.context.span_id), ) self.assertEqual( new_carrier[FORMAT.PARENT_SPAN_ID_KEY], b3_format.format_span_id(parent.context.span_id), ) self.assertTrue(parent.context.is_remote) self.assertEqual(new_carrier[FORMAT.SAMPLED_KEY], "1")
def setUpClass(cls): cls.serialized_trace_id = b3_format.format_trace_id( trace.generate_trace_id()) cls.serialized_span_id = b3_format.format_span_id( trace.generate_span_id()) cls.serialized_parent_id = b3_format.format_span_id( trace.generate_span_id())
def inject( self, set_in_carrier: Setter[TextMapPropagatorT], carrier: TextMapPropagatorT, context: typing.Optional[Context] = None, ) -> None: span = trace.get_current_span(context=context) span_context = span.get_context() if span_context == trace.INVALID_SPAN_CONTEXT: return sampled = (trace.TraceFlags.SAMPLED & span_context.trace_flags) != 0 set_in_carrier( carrier, self.TRACE_ID_KEY, format_trace_id(span_context.trace_id), ) set_in_carrier( carrier, self.SPAN_ID_KEY, format_span_id(span_context.span_id) ) if getattr(span, 'parent', None) is not None: set_in_carrier( carrier, self.PARENT_SPAN_ID_KEY, format_span_id(span.parent.span_id), ) set_in_carrier(carrier, self.SAMPLED_KEY, "1" if sampled else "0")
def setUpClass(cls): id_generator = ids_generator.RandomIdsGenerator() cls.serialized_trace_id = b3_format.format_trace_id( id_generator.generate_trace_id()) cls.serialized_span_id = b3_format.format_span_id( id_generator.generate_span_id()) cls.serialized_parent_id = b3_format.format_span_id( id_generator.generate_span_id())
def test_extract_single_header(self): """Test the extraction from a single b3 header.""" child, parent, new_carrier = get_child_parent_new_carrier( { FORMAT.SINGLE_HEADER_KEY: "{}-{}".format( self.serialized_trace_id, self.serialized_span_id ) } ) self.assertEqual( new_carrier[FORMAT.TRACE_ID_KEY], b3_format.format_trace_id(child.context.trace_id), ) self.assertEqual( new_carrier[FORMAT.SPAN_ID_KEY], b3_format.format_span_id(child.context.span_id), ) self.assertEqual(new_carrier[FORMAT.SAMPLED_KEY], "1") self.assertTrue(parent.context.is_remote) child, parent, new_carrier = get_child_parent_new_carrier( { FORMAT.SINGLE_HEADER_KEY: "{}-{}-1-{}".format( self.serialized_trace_id, self.serialized_span_id, self.serialized_parent_id, ) } ) self.assertEqual( new_carrier[FORMAT.TRACE_ID_KEY], b3_format.format_trace_id(child.context.trace_id), ) self.assertEqual( new_carrier[FORMAT.SPAN_ID_KEY], b3_format.format_span_id(child.context.span_id), ) self.assertEqual( new_carrier[FORMAT.PARENT_SPAN_ID_KEY], b3_format.format_span_id(parent.context.span_id), ) self.assertTrue(parent.context.is_remote) self.assertEqual(new_carrier[FORMAT.SAMPLED_KEY], "1")