mirror of
https://github.com/open-telemetry/opentelemetry-python-contrib.git
synced 2025-07-31 14:11:50 +08:00
Converted TextMap propagator getter to a class and added keys method (#1196)
Co-authored-by: alrex <aboten@lightstep.com>
This commit is contained in:
@ -39,25 +39,23 @@ class DatadogFormat(TextMapPropagator):
|
||||
|
||||
def extract(
|
||||
self,
|
||||
get_from_carrier: Getter[TextMapPropagatorT],
|
||||
getter: Getter[TextMapPropagatorT],
|
||||
carrier: TextMapPropagatorT,
|
||||
context: typing.Optional[Context] = None,
|
||||
) -> Context:
|
||||
trace_id = extract_first_element(
|
||||
get_from_carrier(carrier, self.TRACE_ID_KEY)
|
||||
getter.get(carrier, self.TRACE_ID_KEY)
|
||||
)
|
||||
|
||||
span_id = extract_first_element(
|
||||
get_from_carrier(carrier, self.PARENT_ID_KEY)
|
||||
getter.get(carrier, self.PARENT_ID_KEY)
|
||||
)
|
||||
|
||||
sampled = extract_first_element(
|
||||
get_from_carrier(carrier, self.SAMPLING_PRIORITY_KEY)
|
||||
getter.get(carrier, self.SAMPLING_PRIORITY_KEY)
|
||||
)
|
||||
|
||||
origin = extract_first_element(
|
||||
get_from_carrier(carrier, self.ORIGIN_KEY)
|
||||
)
|
||||
origin = extract_first_element(getter.get(carrier, self.ORIGIN_KEY))
|
||||
|
||||
trace_flags = trace.TraceFlags()
|
||||
if sampled and int(sampled) in (
|
||||
|
@ -18,13 +18,11 @@ from opentelemetry import trace as trace_api
|
||||
from opentelemetry.exporter.datadog import constants, propagator
|
||||
from opentelemetry.sdk import trace
|
||||
from opentelemetry.trace import get_current_span, set_span_in_context
|
||||
from opentelemetry.trace.propagation.textmap import DictGetter
|
||||
|
||||
FORMAT = propagator.DatadogFormat()
|
||||
|
||||
|
||||
def get_as_list(dict_object, key):
|
||||
value = dict_object.get(key)
|
||||
return [value] if value is not None else []
|
||||
carrier_getter = DictGetter()
|
||||
|
||||
|
||||
class TestDatadogFormat(unittest.TestCase):
|
||||
@ -45,7 +43,7 @@ class TestDatadogFormat(unittest.TestCase):
|
||||
malformed_parent_id_key = FORMAT.PARENT_ID_KEY + "-x"
|
||||
context = get_current_span(
|
||||
FORMAT.extract(
|
||||
get_as_list,
|
||||
carrier_getter,
|
||||
{
|
||||
malformed_trace_id_key: self.serialized_trace_id,
|
||||
malformed_parent_id_key: self.serialized_parent_id,
|
||||
@ -63,7 +61,7 @@ class TestDatadogFormat(unittest.TestCase):
|
||||
FORMAT.PARENT_ID_KEY: self.serialized_parent_id,
|
||||
}
|
||||
|
||||
ctx = FORMAT.extract(get_as_list, carrier)
|
||||
ctx = FORMAT.extract(carrier_getter, carrier)
|
||||
span_context = get_current_span(ctx).get_span_context()
|
||||
self.assertEqual(span_context.trace_id, trace_api.INVALID_TRACE_ID)
|
||||
|
||||
@ -73,7 +71,7 @@ class TestDatadogFormat(unittest.TestCase):
|
||||
FORMAT.TRACE_ID_KEY: self.serialized_trace_id,
|
||||
}
|
||||
|
||||
ctx = FORMAT.extract(get_as_list, carrier)
|
||||
ctx = FORMAT.extract(carrier_getter, carrier)
|
||||
span_context = get_current_span(ctx).get_span_context()
|
||||
self.assertEqual(span_context.span_id, trace_api.INVALID_SPAN_ID)
|
||||
|
||||
@ -81,7 +79,7 @@ class TestDatadogFormat(unittest.TestCase):
|
||||
"""Test the propagation of Datadog headers."""
|
||||
parent_span_context = get_current_span(
|
||||
FORMAT.extract(
|
||||
get_as_list,
|
||||
carrier_getter,
|
||||
{
|
||||
FORMAT.TRACE_ID_KEY: self.serialized_trace_id,
|
||||
FORMAT.PARENT_ID_KEY: self.serialized_parent_id,
|
||||
@ -138,7 +136,7 @@ class TestDatadogFormat(unittest.TestCase):
|
||||
"""Test sampling priority rejected."""
|
||||
parent_span_context = get_current_span(
|
||||
FORMAT.extract(
|
||||
get_as_list,
|
||||
carrier_getter,
|
||||
{
|
||||
FORMAT.TRACE_ID_KEY: self.serialized_trace_id,
|
||||
FORMAT.PARENT_ID_KEY: self.serialized_parent_id,
|
||||
|
Reference in New Issue
Block a user