Skip to content

Commit fad0fcd

Browse files
mergify[bot]silehtbrettlangdon
authored
fix(logging): fix service in log correlation (#3267) (#3295)
* fix(logging): fix service in log correlation * Update ddtrace/tracer.py * fix opentracer test Co-authored-by: Tahir H. Butt <[email protected]> Co-authored-by: Tahir H. Butt <[email protected]> Co-authored-by: Brett Langdon <[email protected]> (cherry picked from commit 7c18eca) Co-authored-by: Mehdi ABAAKOUK <[email protected]> Co-authored-by: Brett Langdon <[email protected]>
1 parent dd5f5f2 commit fad0fcd

File tree

3 files changed

+35
-2
lines changed

3 files changed

+35
-2
lines changed

ddtrace/tracer.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,10 +274,15 @@ def get_log_correlation_context(self):
274274
if self.enabled:
275275
span = self.current_span()
276276

277+
if span and span.service:
278+
service = span.service
279+
else:
280+
service = config.service
281+
277282
return {
278283
"trace_id": str(span.trace_id) if span else "0",
279284
"span_id": str(span.span_id) if span else "0",
280-
"service": config.service or "",
285+
"service": service or "",
281286
"version": config.version or "",
282287
"env": config.env or "",
283288
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
fixes:
3+
- |
4+
Set correct service in logs correlation attributes when a span override the service.
5+

tests/tracer/test_correlation_log_context.py

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,29 @@ def tracer_injection(logger, log_method, event_dict):
2626

2727

2828
class TestCorrelationLogsContext(object):
29+
def test_get_log_correlation_service(self, global_config):
30+
"""Ensure expected DDLogRecord service is generated via get_correlation_log_record."""
31+
with tracer.trace("test-span-1", service="span-service") as span1:
32+
dd_log_record = tracer.get_log_correlation_context()
33+
assert dd_log_record == {
34+
"span_id": str(span1.span_id),
35+
"trace_id": str(span1.trace_id),
36+
"service": "span-service",
37+
"env": "test-env",
38+
"version": "test-version",
39+
}
40+
41+
test_tracer = Tracer()
42+
with test_tracer.trace("test-span-2", service="span-service") as span2:
43+
dd_log_record = test_tracer.get_log_correlation_context()
44+
assert dd_log_record == {
45+
"span_id": str(span2.span_id),
46+
"trace_id": str(span2.trace_id),
47+
"service": "span-service",
48+
"env": "test-env",
49+
"version": "test-version",
50+
}
51+
2952
def test_get_log_correlation_context(self, global_config):
3053
"""Ensure expected DDLogRecord is generated via get_correlation_log_record."""
3154
with tracer.trace("test-span-1") as span1:
@@ -50,7 +73,7 @@ def test_get_log_correlation_context(self, global_config):
5073

5174
def test_get_log_correlation_context_opentracer(self, global_config):
5275
"""Ensure expected DDLogRecord generated via get_correlation_log_record with an opentracing Tracer."""
53-
ot_tracer = OT_Tracer()
76+
ot_tracer = OT_Tracer(service_name="test-service")
5477
with ot_tracer.start_active_span("operation") as scope:
5578
dd_span = scope._span._dd_span
5679
dd_log_record = ot_tracer.get_log_correlation_context()

0 commit comments

Comments
 (0)