Skip to content

Commit 2c3ab58

Browse files
authored
chore(lib-injection): fix tracer_version reported with ssi telemetry (#11370)
1 parent 079e478 commit 2c3ab58

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

lib-injection/sources/sitecustomize.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,16 @@ def parse_version(version: str) -> Tuple:
4848
EXECUTABLE_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+
5161
def 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

Comments
 (0)