@@ -48,6 +48,16 @@ def parse_version(version: str) -> Tuple:
4848EXECUTABLE_DENY_LOCATION = os .path .abspath (os .path .join (SCRIPT_DIR , "denied_executables.txt" ))
4949
5050
51+ def get_oci_ddtrace_version ():
52+ version_path = os .path .join (SCRIPT_DIR , "version" )
53+ try :
54+ with open (version_path , "r" ) as version_file :
55+ return version_file .read ().strip ()
56+ except Exception :
57+ _log ("Failed to read version file %s" % (version_path ,), level = "debug" )
58+ return "unknown"
59+
60+
5161def build_installed_pkgs ():
5262 installed_packages = {}
5363 if sys .version_info >= (3 , 8 ):
@@ -106,14 +116,14 @@ def create_count_metric(metric, tags=None):
106116 }
107117
108118
109- def gen_telemetry_payload (telemetry_events ):
119+ def gen_telemetry_payload (telemetry_events , ddtrace_version = "unknown" ):
110120 return {
111121 "metadata" : {
112122 "language_name" : "python" ,
113123 "language_version" : PYTHON_VERSION ,
114124 "runtime_name" : PYTHON_RUNTIME ,
115125 "runtime_version" : PYTHON_VERSION ,
116- "tracer_version" : INSTALLED_PACKAGES . get ( "ddtrace" , "unknown" ) ,
126+ "tracer_version" : ddtrace_version ,
117127 "pid" : os .getpid (),
118128 },
119129 "points" : telemetry_events ,
@@ -203,6 +213,7 @@ def _inject():
203213 global PYTHON_RUNTIME
204214 global PKGS_ALLOW_LIST
205215 global EXECUTABLES_DENY_LIST
216+ DDTRACE_VERSION = get_oci_ddtrace_version ()
206217 INSTALLED_PACKAGES = build_installed_pkgs ()
207218 PYTHON_RUNTIME = platform .python_implementation ().lower ()
208219 PYTHON_VERSION = platform .python_version ()
@@ -297,7 +308,7 @@ def _inject():
297308 ],
298309 )
299310 )
300- telemetry_event = gen_telemetry_payload (telemetry_data )
311+ telemetry_event = gen_telemetry_payload (telemetry_data , DDTRACE_VERSION )
301312 send_telemetry (telemetry_event )
302313 return
303314
@@ -347,12 +358,14 @@ def _inject():
347358 "injection_forced:" + str (runtime_incomp or integration_incomp ).lower (),
348359 ],
349360 )
350- ]
361+ ],
362+ DDTRACE_VERSION ,
351363 )
352364 send_telemetry (event )
353365 except Exception as e :
354366 event = gen_telemetry_payload (
355- [create_count_metric ("library_entrypoint.error" , ["error_type:" + type (e ).__name__ .lower ()])]
367+ [create_count_metric ("library_entrypoint.error" , ["error_type:" + type (e ).__name__ .lower ()])],
368+ DDTRACE_VERSION ,
356369 )
357370 send_telemetry (event )
358371 _log ("failed to load ddtrace.bootstrap.sitecustomize: %s" % e , level = "error" )
0 commit comments