Skip to content

Commit 463270c

Browse files
fix(opentracer): don't override default ddtrace settings (#2720) (#2724)
* Add regression test * fix(opentracer): don't override default ddtrace settings As outlined in #2267, some of the ddtrace default settings were being overridden as the default opentracer config specified its own overrides. This patch makes it so that the opentracer doesn't override the ddtrace defaults. * Use is * Fix tests `_enabled` property was removed as it was unused. (cherry picked from commit 066a092) Co-authored-by: Kyle Verhoog <[email protected]>
1 parent 114fa1d commit 463270c

File tree

3 files changed

+18
-10
lines changed

3 files changed

+18
-10
lines changed

ddtrace/opentracer/tracer.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@
2121
log = get_logger(__name__)
2222

2323
DEFAULT_CONFIG = {
24-
keys.AGENT_HOSTNAME: "localhost",
25-
keys.AGENT_HTTPS: False,
26-
keys.AGENT_PORT: 8126,
24+
keys.AGENT_HOSTNAME: None,
25+
keys.AGENT_HTTPS: None,
26+
keys.AGENT_PORT: None,
2727
keys.DEBUG: False,
28-
keys.ENABLED: True,
28+
keys.ENABLED: None,
2929
keys.GLOBAL_TAGS: {},
3030
keys.SAMPLER: None,
3131
keys.PRIORITY_SAMPLING: None,
@@ -63,7 +63,6 @@ def __init__(self, service_name=None, config=None, scope_manager=None, dd_tracer
6363
self._config.update(config)
6464
# Pull out commonly used properties for performance
6565
self._service_name = service_name or get_application_name()
66-
self._enabled = self._config.get(keys.ENABLED)
6766
self._debug = self._config.get(keys.DEBUG)
6867

6968
if self._debug:
@@ -87,7 +86,7 @@ def __init__(self, service_name=None, config=None, scope_manager=None, dd_tracer
8786
self._dd_tracer = dd_tracer or ddtrace.tracer or DatadogTracer()
8887
self._dd_tracer.set_tags(self._config.get(keys.GLOBAL_TAGS))
8988
self._dd_tracer.configure(
90-
enabled=self._enabled,
89+
enabled=self._config.get(keys.ENABLED),
9190
hostname=self._config.get(keys.AGENT_HOSTNAME),
9291
https=self._config.get(keys.AGENT_HTTPS),
9392
port=self._config.get(keys.AGENT_PORT),
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
fixes:
3+
- |
4+
opentracer: don't override default tracing config for the `ENABLED`,
5+
`AGENT_HOSTNAME`, `AGENT_HTTPS` or `AGENT_PORT` settings.

tests/opentracer/core/test_tracer.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import pytest
1111

1212
import ddtrace
13+
from ddtrace import Tracer as DDTracer
1314
from ddtrace.ext.priority import AUTO_KEEP
1415
from ddtrace.opentracer import Tracer
1516
from ddtrace.opentracer import set_global_tracer
@@ -25,7 +26,7 @@ def test_config(self):
2526
tracer = Tracer(service_name="myservice", config=config)
2627

2728
assert tracer._service_name == "myservice"
28-
assert tracer._enabled is True
29+
assert tracer._dd_tracer.enabled is True
2930

3031
def test_no_service_name(self):
3132
"""A service_name should be generated if one is not provided."""
@@ -44,10 +45,7 @@ def test_multiple_tracer_configs(self):
4445

4546
# Ensure tracer1's config was not mutated
4647
assert tracer1._service_name == "serv1"
47-
assert tracer1._enabled is True
48-
4948
assert tracer2._service_name == "serv2"
50-
assert tracer2._enabled is False
5149

5250
def test_invalid_config_key(self):
5351
"""A config with an invalid key should raise a ConfigException."""
@@ -71,6 +69,12 @@ def test_invalid_config_key(self):
7169
assert ["enabeld", "setttings"] in str(ce_info)
7270
assert tracer is not None
7371

72+
def test_ddtrace_fallback_config(self, monkeypatch):
73+
"""Ensure datadog configuration is used by default."""
74+
monkeypatch.setenv("DD_TRACE_ENABLED", "false")
75+
tracer = Tracer(dd_tracer=DDTracer())
76+
assert tracer._dd_tracer.enabled is False
77+
7478
def test_global_tags(self):
7579
"""Global tags should be passed from the opentracer to the tracer."""
7680
config = {

0 commit comments

Comments
 (0)