chore: prefer standard trace id for Langfuse logging (#17791)

This commit is contained in:
YutaSaito
2025-12-11 08:18:45 -08:00
committed by GitHub
parent 5d326386fb
commit 13df50830d
5 changed files with 5 additions and 46 deletions
-2
View File
@@ -371,8 +371,6 @@ export LANGFUSE_PUBLIC_KEY="pk_kk"
export LANGFUSE_SECRET_KEY="sk_ss"
# Optional, defaults to https://cloud.langfuse.com
export LANGFUSE_HOST="https://xxx.langfuse.com"
# Optional - When True, forwards LiteLLM's logging trace_id to Langfuse
LANGFUSE_PROPAGATE_TRACE_ID=True
```
**Step 4**: Start the proxy, make a test request
+1 -6
View File
@@ -70,7 +70,6 @@ class LangFuseLogger:
self.langfuse_flush_interval = LangFuseLogger._get_langfuse_flush_interval(
flush_interval
)
self.langfuse_propagate_trace_id = str_to_bool(os.getenv("LANGFUSE_PROPAGATE_TRACE_ID", "False")) is True
http_client = _get_httpx_client()
self.langfuse_client = http_client.client
@@ -538,11 +537,7 @@ class LangFuseLogger:
session_id = clean_metadata.pop("session_id", None)
trace_name = cast(Optional[str], clean_metadata.pop("trace_name", None))
trace_id = clean_metadata.pop("trace_id", None)
if (
trace_id is None
and self.langfuse_propagate_trace_id is True
and standard_logging_object is not None
):
if trace_id is None and standard_logging_object is not None:
trace_id = cast(Optional[str], standard_logging_object.get("trace_id"))
if trace_id is None:
trace_id = litellm_call_id
@@ -12,7 +12,6 @@ from typing_extensions import TypeAlias
from litellm.integrations.custom_logger import CustomLogger
from litellm.integrations.prompt_management_base import PromptManagementClient
from litellm.litellm_core_utils.asyncify import run_async_function
from litellm.secret_managers.main import str_to_bool
from litellm.types.llms.openai import AllMessageValues, ChatCompletionSystemMessage
from litellm.types.utils import StandardCallbackDynamicParams, StandardLoggingPayload
@@ -125,7 +124,6 @@ class LangfusePromptManagement(LangFuseLogger, PromptManagementBase, CustomLogge
langfuse_host=langfuse_host,
flush_interval=flush_interval,
)
self.langfuse_propagate_trace_id = str_to_bool(os.getenv("LANGFUSE_PROPAGATE_TRACE_ID", "False")) is True
@property
def integration_name(self):
@@ -138,7 +136,6 @@ class LangfusePromptManagement(LangFuseLogger, PromptManagementBase, CustomLogge
prompt_label: Optional[str] = None,
prompt_version: Optional[int] = None,
) -> PROMPT_CLIENT:
prompt_client = langfuse_client.get_prompt(
langfuse_prompt_id, label=prompt_label, version=prompt_version
)
@@ -189,11 +186,7 @@ class LangfusePromptManagement(LangFuseLogger, PromptManagementBase, CustomLogge
tools: Optional[List[Dict]] = None,
prompt_label: Optional[str] = None,
prompt_version: Optional[int] = None,
) -> Tuple[
str,
List[AllMessageValues],
dict,
]:
) -> Tuple[str, List[AllMessageValues], dict,]:
return self.get_chat_completion_prompt(
model,
messages,
@@ -27,28 +27,3 @@ class TestLangfusePromptManagement:
mock_get_prompt_from_id.assert_called_once()
assert mock_get_prompt_from_id.call_args.kwargs["prompt_version"] == 4
def test_trace_id_propagation_flag_from_env(self):
with patch.dict(
os.environ,
{
"LANGFUSE_SECRET_KEY": "secret",
"LANGFUSE_PUBLIC_KEY": "public",
"LANGFUSE_PROPAGATE_TRACE_ID": "True",
},
clear=True,
):
pm = LangfusePromptManagement()
assert pm.langfuse_propagate_trace_id is True
with patch.dict(
os.environ,
{
"LANGFUSE_SECRET_KEY": "secret",
"LANGFUSE_PUBLIC_KEY": "public",
"LANGFUSE_PROPAGATE_TRACE_ID": "False",
},
clear=True,
):
pm2 = LangfusePromptManagement()
assert pm2.langfuse_propagate_trace_id is False
@@ -394,8 +394,7 @@ class TestLangfuseUsageDetails(unittest.TestCase):
"messages": [],
}
def test_log_langfuse_v2_propagates_standard_trace_id_when_enabled(self):
self.logger.langfuse_propagate_trace_id = True
def test_log_langfuse_v2_uses_standard_trace_id_when_available(self):
payload = self._build_standard_logging_payload(trace_id="std-trace-id")
kwargs = self._build_langfuse_kwargs(payload)
self.last_trace_kwargs = {}
@@ -422,9 +421,8 @@ class TestLangfuseUsageDetails(unittest.TestCase):
assert self.last_trace_kwargs.get("id") == "std-trace-id"
def test_log_langfuse_v2_defaults_to_call_id_when_propagation_disabled(self):
self.logger.langfuse_propagate_trace_id = False
payload = self._build_standard_logging_payload(trace_id="std-trace-id")
def test_log_langfuse_v2_defaults_to_call_id_without_standard_trace_id(self):
payload = self._build_standard_logging_payload()
kwargs = self._build_langfuse_kwargs(payload)
self.last_trace_kwargs = {}