Skip to main content

OpenTelemetry trace sources

If your agent already sends traces to an observability platform, Helix can read them from there. Helix on your machine reads the traces where they are and does not store a copy.

Langfuse

Helix reads traces from a Langfuse project over its API (platform: langfuse).

OpenObserve

Connect it to your Mutagent workspace with mutagent integrations sources add openobserve; Mutagent pulls the traces.

SigNoz

Export spans as OTLP/JSON files and read them with platform: otel. There is no direct SigNoz connection.
These are hosted integrations: they need credentials for another service. Local transcripts and JSONL files need none; see local sources.

How it connects

Declare the source in your config. This is a complete .mutagent/config.yaml; to add the source to an existing file, copy only the sources entry.
.mutagent/config.yaml
langfuse reads a Langfuse project over its API. Helix takes the keys from these fixed environment variable names, not from the config file. Set them before you start Helix (or put them in the project’s .env):
If either key is missing, Helix reads no Langfuse traces and warns langfuse: missing REST credentials (LANGFUSE_PUBLIC_KEY / LANGFUSE_SECRET_KEY). otel reads OpenTelemetry span files in OTLP/JSON format that you exported. It does not call an endpoint. List each file in paths (.json files must be listed one by one), or set root to a folder: Helix then reads the .jsonl and .ndjson files in it (gzip supported).
.mutagent/config.yaml
With no files found, Helix warns otel: no source files. See the config reference for every source field. Run helix -p "/status" to check the source is set up (it needs a working model key).

Connect a source to your workspace

Langfuse and OpenObserve can also be connected once to your Mutagent workspace, so Mutagent pulls the traces for you instead of Helix reading them from your machine. You need the mutagent CLI, signed in, with a workspace selected (see Sign in). Keep the secret off the command line: pipe it in with --secret-stdin or name a variable with --secret-env.
For OpenObserve, --host is required:
mutagent integrations sources list --json shows the workspace’s sources and their ids. test exits 0 when the connection works, and 1 when it fails, naming the check that failed: credentials_refused (rotate the credentials with mutagent integrations sources rotate <source-id>), unreachable, http_error, invalid_response or host_refused. The host must be a public http(s) address. Run mutagent integrations sources --help for pulls.
When your config has exactly one source, Helix uses it for Evaluate and Diagnose without asking, so a single backend is enough to run the loop on your production traces.