Converted TextMap propagator getter to a class and added keys method (#1196)

Co-authored-by: alrex <aboten@lightstep.com>
This commit is contained in:
Prajilesh N
2020-11-02 09:42:47 +05:30
committed by GitHub
parent 137912d743
commit 79ca4ac662
2 changed files with 12 additions and 16 deletions

View File

@ -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 (

View File

@ -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,