44``DD_INSTRUMENTATION_TELEMETRY_ENABLED`` variable to ``False``.
55"""
66
7- import os
87import typing as t
98
109from ddtrace .internal .logger import get_logger
1110from ddtrace .internal .telemetry .constants import TELEMETRY_NAMESPACE
1211from ddtrace .internal .utils .formats import asbool
1312from ddtrace .settings ._agent import config as agent_config
13+ from ddtrace .settings ._core import ENV_CONFIG
1414from ddtrace .settings ._core import FLEET_CONFIG
1515from ddtrace .settings ._core import FLEET_CONFIG_IDS
1616from ddtrace .settings ._core import LOCAL_CONFIG
1717from ddtrace .settings ._core import DDConfig
18+ from ddtrace .settings ._env import environ as _environ
19+ from ddtrace .settings ._env import get_env as _get_env
1820from ddtrace .settings ._otel_remapper import ENV_VAR_MAPPINGS
1921from ddtrace .settings ._otel_remapper import SUPPORTED_OTEL_ENV_VARS
2022from ddtrace .settings ._otel_remapper import parse_otel_env
2527__all__ = ["telemetry_writer" ]
2628
2729
28- def get_env (env_name : str , default : t .Any = None ) -> t .Any :
29- if env_name .startswith (("DD_" , "OTEL_" , "_DD" )):
30- return get_config (env_name , default )
31-
32- return os .environ .get (env_name , default )
33-
34-
3530def get_config (
3631 envs : t .Union [str , t .List [str ]],
3732 default : t .Any = None ,
@@ -67,7 +62,7 @@ def get_config(
6762 effective_val = val
6863 break
6964
70- if otel_env is not None and otel_env in os . environ :
65+ if otel_env is not None and otel_env in ENV_CONFIG :
7166 raw_val , parsed_val = parse_otel_env (otel_env )
7267 if parsed_val is not None :
7368 val = parsed_val
@@ -82,14 +77,14 @@ def get_config(
8277 _invalid_otel_config (otel_env )
8378
8479 for env in envs :
85- if env in os . environ :
86- val = os . environ [env ]
80+ if env in ENV_CONFIG :
81+ val = ENV_CONFIG [env ]
8782 if modifier :
8883 val = modifier (val )
8984
9085 if report_telemetry :
9186 telemetry_writer .add_configuration (telemetry_name , val , "env_var" )
92- if otel_env is not None and otel_env in os . environ :
87+ if otel_env is not None and otel_env in ENV_CONFIG :
9388 _hiding_otel_config (otel_env , env )
9489 effective_val = val
9590 break
@@ -103,7 +98,7 @@ def get_config(
10398
10499 if report_telemetry :
105100 telemetry_writer .add_configuration (telemetry_name , val , "fleet_stable_config" , config_id )
106- if otel_env is not None and otel_env in os . environ :
101+ if otel_env is not None and otel_env in ENV_CONFIG :
107102 _hiding_otel_config (otel_env , env )
108103 effective_val = val
109104 break
@@ -139,7 +134,7 @@ def _invalid_otel_config(otel_env):
139134 log .warning (
140135 "Setting %s to %s is not supported by ddtrace, this configuration will be ignored." ,
141136 otel_env ,
142- os . environ . get (otel_env , "" ),
137+ _get_env (otel_env , "" ),
143138 )
144139 telemetry_writer .add_count_metric (
145140 TELEMETRY_NAMESPACE .TRACERS ,
@@ -160,7 +155,7 @@ def _unsupported_otel_config(otel_env):
160155
161156
162157def validate_otel_envs ():
163- user_envs = {key .upper (): value for key , value in os . environ .items ()}
158+ user_envs = {key .upper (): value for key , value in ENV_CONFIG .items ()}
164159 for otel_env , _ in user_envs .items ():
165160 if (
166161 otel_env not in ENV_VAR_MAPPINGS
@@ -170,7 +165,7 @@ def validate_otel_envs():
170165 _unsupported_otel_config (otel_env )
171166 elif otel_env == "OTEL_LOGS_EXPORTER" :
172167 # check for invalid values
173- otel_value = os . environ . get (otel_env , "none" ).lower ()
168+ otel_value = _get_env (otel_env , "none" ).lower ()
174169 if otel_value != "none" :
175170 _invalid_otel_config (otel_env )
176171 # TODO: Separate from validation
@@ -182,9 +177,8 @@ def validate_otel_envs():
182177
183178def validate_and_report_otel_metrics_exporter_enabled ():
184179 metrics_exporter_enabled = True
185- user_envs = {key .upper (): value for key , value in os .environ .items ()}
186- if "OTEL_METRICS_EXPORTER" in user_envs :
187- otel_value = os .environ .get ("OTEL_METRICS_EXPORTER" , "otlp" ).lower ()
180+ if "OTEL_METRICS_EXPORTER" in _environ :
181+ otel_value = _get_env ("OTEL_METRICS_EXPORTER" , "otlp" ).lower ()
188182 if otel_value == "none" :
189183 metrics_exporter_enabled = False
190184 elif otel_value != "otlp" :
@@ -201,7 +195,7 @@ def _hiding_otel_config(otel_env, dd_env):
201195 "Datadog configuration %s is already set. OpenTelemetry configuration will be ignored: %s=%s" ,
202196 dd_env ,
203197 otel_env ,
204- os . environ [otel_env ],
198+ ENV_CONFIG [otel_env ],
205199 )
206200 telemetry_writer .add_count_metric (
207201 TELEMETRY_NAMESPACE .TRACERS ,
0 commit comments