From 3c0502454c1fcdd0887020f0406ed622bafa1e6c Mon Sep 17 00:00:00 2001 From: Kian Jones <11655409+kianjones9@users.noreply.github.com> Date: Thu, 18 Dec 2025 12:56:19 -0500 Subject: [PATCH] feat: add llm obs patch (#7449) * add llm obs patch * add staging vars --- letta/server/rest_api/app.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/letta/server/rest_api/app.py b/letta/server/rest_api/app.py index 56772be7..be4b821d 100644 --- a/letta/server/rest_api/app.py +++ b/letta/server/rest_api/app.py @@ -241,10 +241,6 @@ def create_application() -> "FastAPI": os.environ.setdefault("DD_PROFILING_MEMORY_ENABLED", str(telemetry_settings.datadog_profiling_memory_enabled).lower()) os.environ.setdefault("DD_PROFILING_HEAP_ENABLED", str(telemetry_settings.datadog_profiling_heap_enabled).lower()) - # Enable LLM Observability for tracking LLM calls, prompts, and completions - os.environ.setdefault("DD_LLMOBS_ENABLED", "1") - os.environ.setdefault("DD_LLMOBS_ML_APP", "memgpt-server") - # Note: DD_LOGS_INJECTION, DD_APPSEC_ENABLED, DD_IAST_ENABLED, DD_APPSEC_SCA_ENABLED # are set via deployment configs and automatically picked up by ddtrace @@ -252,6 +248,15 @@ def create_application() -> "FastAPI": import ddtrace ddtrace.patch_all() # Auto-instrument FastAPI, HTTP, DB, etc. + + llmobs_flag = os.getenv("DD_LLMOBS_ENABLED", "") + from ddtrace.llmobs import LLMObs + + if llmobs_flag: + LLMObs.enable( + ml_app=os.getenv("DD_LLMOBS_ML_APP") or telemetry_settings.datadog_service_name, + ) + logger.info( f"Datadog tracer initialized: env={dd_env}, " f"service={telemetry_settings.datadog_service_name}, "