diff --git a/ddtrace/internal/native/__init__.py b/ddtrace/internal/native/__init__.py index 976a17eead4..06c5b956a19 100644 --- a/ddtrace/internal/native/__init__.py +++ b/ddtrace/internal/native/__init__.py @@ -9,9 +9,7 @@ from ._native import store_metadata # noqa: F401 -def get_configuration_from_disk( - debug_logs: bool = False, -) -> Tuple[Dict[str, str], Dict[str, str], Dict[str, Optional[str]]]: +def get_configuration_from_disk() -> Tuple[Dict[str, str], Dict[str, str], Dict[str, Optional[str]]]: """ Retrieves the tracer configuration from disk. Calls the PyConfigurator object to read the configuration from the disk using the libdatadog shared library @@ -19,6 +17,7 @@ def get_configuration_from_disk( See https://github.com/DataDog/libdatadog/blob/06d2b6a19d7ec9f41b3bfd4ddf521585c55298f6/library-config/src/lib.rs for more information on how the configuration is read from disk """ + debug_logs = os.getenv("DD_TRACE_DEBUG", "false").lower().strip() in ("true", "1") configurator = PyConfigurator(debug_logs) # Check if the file override is provided via environment variables diff --git a/tests/internal/test_native.py b/tests/internal/test_native.py index 1f49d0eecd9..9e3b2577894 100644 --- a/tests/internal/test_native.py +++ b/tests/internal/test_native.py @@ -40,6 +40,38 @@ def test_get_configuration_from_disk_managed_stable_config_priority(): assert config.version == "c", f"Expected DD_VERSION to be 'c' but got {config.version}" +@pytest.mark.subprocess(parametrize={"DD_TRACE_DEBUG": ["TRUE", "1"]}, err=None) +def test_get_configuration_debug_logs(): + """ + Verify stable config debug log enablement + """ + import os + import sys + import tempfile + + from tests.utils import call_program + + # Create managed config + with tempfile.NamedTemporaryFile(suffix=".yaml", prefix="managed_config") as managed_config: + managed_config.write( + b""" +apm_configuration_default: + DD_VERSION: "c" +""" + ) + managed_config.flush() + + env = os.environ.copy() + env["DD_TRACE_DEBUG"] = "true" + env["_DD_SC_MANAGED_FILE_OVERRIDE"] = managed_config.name + + _, err, status, _ = call_program(sys.executable, "-c", "import ddtrace", env=env) + assert status == 0, err + assert b"Read the following static config: StableConfig" in err + assert b'ConfigMap([(DdVersion, "c")]), tags: {}, rules: [] }' in err + assert b"configurator: Configurator { debug_logs: true }" in err + + @pytest.mark.subprocess(parametrize={"DD_VERSION": ["b", None]}) def test_get_configuration_from_disk_local_config_priority(tmp_path): """