[exporter/datadog]: fix service name resolution (#570)

This commit is contained in:
Eric Mustin
2021-07-20 11:57:11 -04:00
committed by GitHub
parent 4d0f57bbc5
commit f6ffa76206
3 changed files with 49 additions and 5 deletions

View File

@ -612,3 +612,41 @@ class TestDatadogSpanExporter(unittest.TestCase):
]
expected = [0.5]
self.assertListEqual(actual, expected)
def test_service_name_fallback(self):
context = trace_api.SpanContext(
trace_id=0x000000000000000000000000DEADBEEF,
span_id=0x34BF92DEEFC58C92,
is_remote=False,
trace_flags=trace_api.TraceFlags(trace_api.TraceFlags.SAMPLED),
)
trace_api.get_tracer_provider().sampler = sampling.TraceIdRatioBased(
0.5
)
resource_with_default_name = Resource(
attributes={
"key_resource": "some_resource",
"service.name": "unknown_service",
}
)
span = trace._Span(
name="sampled",
context=context,
parent=None,
resource=resource_with_default_name,
)
span.start()
span.end()
# pylint: disable=protected-access
exporter = datadog.DatadogSpanExporter(service="fallback_service_name")
datadog_spans = [
span.to_dict() for span in exporter._translate_to_datadog([span])
]
self.assertEqual(len(datadog_spans), 1)
span = datadog_spans[0]
self.assertEqual(span["service"], "fallback_service_name")