About
Ship Hermes Agent session telemetry to Sazabi withtraceverse_hermes_otel, an OpenTelemetry plugin from the Hermes plugin catalog. Hermes Agent has no agent telemetry export of its own; the plugin adds one with no code changes.
Every turn sends log events and trace spans over OTLP/HTTP:
- Log events, named by
event.name:session_start,user_prompt,api_response(model,input_tokens,output_tokens,cost_usd,finish_reason,ttft_ms), andtool_result(tool_name,status_codeofsuccessorerror). Every event carriessession.id. - Spans:
invoke_agentfor the turn,chatfor each model call, andexecute_toolfor each tool call, withgen_ai.*attributes.
Prerequisites
- Hermes Agent with the
hermes pluginsandhermes pmcommands - Your Sazabi intake URL, shown above — open the log source and copy the Intake URL from its setup screen (the public key is embedded in the URL)
Set up in the dashboard
1
Install and enable the OpenTelemetry plugin
Run these commands where Hermes is installed:Terminal
hermes plugins install shows one.Each Hermes profile keeps its own plugin list. Enable the plugin in every profile you want telemetry from.2
Point the plugin at Sazabi
Add these lines to~/.hermes/.env, or to the environment of the service or container that runs Hermes:~/.hermes/.env
<your intake URL> with the intake URL shown above, with no path. The plugin appends /v1/traces and /v1/logs itself. The public key is part of the URL, so no auth header is needed.The plugin prints the endpoint in its startup log line, so treat Hermes’ own log files as sensitive.3
Restart Hermes
Hermes reads its plugin list and.env when it starts. Restart the gateway (hermes gateway restart, or restart the service that runs it) and any open hermes sessions. Telemetry begins with the next turn.Set up with the CLI
You can also register the Hermes Agent log source with the Sazabi CLI (installed and authenticated — see CLI reference). Registering the source mints the same intake URL the dashboard shows above (the public key is embedded in its hostname):sazabi log-sources get <log-source-id> at any time to reprint the endpoint, or sazabi log-sources list to see every log source in the project.
Verify
Restart Hermes and send the agent one message. Hermes’ log should showOTel SDK tracer configured and OTel SDK logger configured. Open the Intake page in the Sazabi dashboard and confirm logs from the Hermes Agent source appear within a minute or two.
From the CLI, sazabi logs ask "How many hermes-agent log lines arrived in the last 15 minutes, by event.name?" confirms rows are arriving, and sazabi logs ask "Show failed Hermes tool calls in the last day" lists tool_result events whose status_code is error.
Troubleshooting
failed to configure OTel SDK tracer in Hermes’ log — The OpenTelemetry SDK is missing from Hermes’ Python environment. Run hermes pm install --extra otlp and restart Hermes.
No logs after restarting — Confirm hermes plugins list shows traceverse_hermes_otel enabled for the profile in use, and that HERMES_OTEL_ENDPOINT is set in that profile’s .env or the service environment.
Spans arrive but no log events — HERMES_OTEL_LOGS_ENABLED is set to false. Remove it and restart Hermes.
Input token counts look low — For Anthropic models, input_tokens leaves out cached prompt tokens. Use cost_usd and output_tokens for spend trends.
Further reading
traceverse_hermes_otel plugin
The Hermes plugin catalog entry for the OpenTelemetry plugin.
Intake
See per-source ingestion volume and health.
Log sources
Browse the full log source catalog.