Skip to content

Commit 2dbc3a8

Browse files
authored
feat: add tracing (#85)
1 parent 7a1be9e commit 2dbc3a8

5 files changed

Lines changed: 33 additions & 3 deletions

File tree

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ convention = "pep257"
102102
strict = true
103103

104104
[[tool.mypy.overrides]]
105-
module = ["haystack_integrations.*"]
105+
module = ["haystack_integrations.*", "langfuse.*"]
106106
ignore_missing_imports = true
107107

108108

src/deepset_mcp/benchmark/runner/agent_benchmark_runner.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
)
1717
from deepset_mcp.benchmark.runner.models import AgentConfig, TestCaseConfig
1818
from deepset_mcp.benchmark.runner.teardown_actions import teardown_test_case_async
19+
from deepset_mcp.benchmark.runner.tracing import enable_tracing
1920

2021
logger = logging.getLogger(__name__)
2122

@@ -38,6 +39,14 @@ def __init__(
3839
self.agent_config = agent_config
3940
self.benchmark_config = benchmark_config
4041

42+
try:
43+
secret_key = self.benchmark_config.get_env_var("LANGFUSE_SECRET_KEY")
44+
public_key = self.benchmark_config.get_env_var("LANGFUSE_PUBLIC_KEY")
45+
logger.info("Langfuse environment variables detected. Enabling tracing with Langfuse.")
46+
enable_tracing(secret_key=secret_key, public_key=public_key, name="deepset-mcp")
47+
except KeyError:
48+
pass
49+
4150
agent, commit_hash = load_agent(config=agent_config, benchmark_config=benchmark_config)
4251

4352
self.agent = agent

src/deepset_mcp/benchmark/runner/cli_agent.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def load_env_file(env_file: str | None) -> None:
2424
default_env_path = Path(__file__).parent / ".env"
2525
if default_env_path.exists():
2626
load_dotenv()
27-
typer.secho("Loaded default .env file", fg=typer.colors.BLUE)
27+
typer.secho("Loaded default .env file.", fg=typer.colors.BLUE)
2828

2929

3030
agent_app = typer.Typer(help="Commands for running agents against test cases.")

src/deepset_mcp/benchmark/runner/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def validate_not_empty(cls, v: str) -> str:
3737
def model_post_init(self, __context: Any) -> None:
3838
"""After initialization, collect all available env vars."""
3939
# Collect all env vars that might be useful (excluding system ones)
40-
ignore_prefixes = ("PATH", "HOME", "USER", "SHELL", "TERM", "PWD", "LANG", "LC_")
40+
ignore_prefixes = ("PATH", "HOME", "USER", "SHELL", "TERM", "PWD", "LC_")
4141

4242
for key, value in os.environ.items():
4343
# Skip system variables and already captured ones
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
from haystack.tracing.tracer import enable_tracing as haystack_enable_tracing, tracer
2+
from haystack_integrations.tracing.langfuse import LangfuseTracer
3+
from langfuse import Langfuse
4+
5+
6+
def enable_tracing(
7+
secret_key: str,
8+
public_key: str,
9+
name: str,
10+
) -> None:
11+
"""Enables tracing with langfuse."""
12+
resolved_langfuse_client_kwargs = {
13+
"secret_key": secret_key,
14+
"public_key": public_key,
15+
}
16+
tracer.is_content_tracing_enabled = True
17+
langfuse_tracer = LangfuseTracer(
18+
tracer=Langfuse(**resolved_langfuse_client_kwargs),
19+
name=name,
20+
)
21+
haystack_enable_tracing(langfuse_tracer)

0 commit comments

Comments
 (0)