cd /news/ai-agents/hermes-monitoring-and-observability-… · home topics ai-agents article
[ARTICLE · art-29078] src=signoz.io ↗ pub= topic=ai-agents verified=true sentiment=↑ positive

Hermes Monitoring and Observability with OpenTelemetry

Hermes AI coding agent now supports full monitoring and observability via OpenTelemetry, with traces, metrics, and logs exportable to SigNoz. The integration, enabled through the hermes-otel plugin, provides visibility into agent sessions, LLM calls, and tool invocations for improved reliability and debugging.

read6 min views16 publishedJun 11, 2026

What is Hermes Monitoring?

Hermes monitoring gives you full visibility into your AI coding agent's behavior. This guide walks you through setting up Hermes monitoring and observability using OpenTelemetry and exporting traces, metrics, and logs to SigNoz. With this integration, you can observe and track your Hermes AI agent sessions, LLM calls, tool invocations, and more.

With full Hermes monitoring in SigNoz, you can correlate traces, logs, and metrics in unified dashboards, set alerts on latency and errors, and improve the reliability of your AI coding workflows. This end to end Hermes observability gives you actionable insight into every agent session, LLM call, and tool invocation.

Prerequisites

Instrument Hermes Monitoring with OpenTelemetry

For more information on instrumenting Hermes with OpenTelemetry, refer to the hermes-otel plugin documentation.

Step 1: Install Hermes Agent

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

Restart your shell or source your shell config if hermes

is not immediately available.

Verify:

hermes --version

Run the setup wizard if this is a fresh Hermes install:

hermes setup

Step 2: Install the OpenTelemetry plugin

hermes plugins install briancaffey/hermes-otel --enable

The plugin is installed to:

~/.hermes/plugins/hermes_otel/

Install the plugin runtime dependencies into the Hermes Agent virtual environment:

~/.hermes/hermes-agent/venv/bin/pip install -e ~/.hermes/plugins/hermes_otel

If that path does not exist, find the Hermes venv and run its pip

instead:

find ~/.hermes -path '*/venv/bin/pip' -print
/path/that/was/printed/bin/pip install -e ~/.hermes/plugins/hermes_otel

Verify the plugin is enabled:

hermes plugins list --plain --no-bundled | grep hermes_otel

hermes_otel

is listed as enabled.

Step 3: Add SigNoz environment variables

Edit Hermes' environment file at ~/.hermes/.env

and add these values:

OTEL_SIGNOZ_ENDPOINT=https://ingest.<region>.signoz.cloud:443/v1/traces
OTEL_SIGNOZ_INGESTION_KEY=<your-ingestion-key>
OTEL_PROJECT_NAME=hermes-agent

<region>

: YourSigNoz Cloud region<your-ingestion-key>

: Your SigNozingestion keyOTEL_PROJECT_NAME

is the resource name you will see in SigNoz.

Step 4: Configure traces, metrics, and logs

Create or edit the plugin config:

mkdir -p ~/.hermes/plugins/hermes_otel
${EDITOR:-nano} ~/.hermes/plugins/hermes_otel/config.yaml

Use this minimal config:

enabled: true

capture_previews: true

capture_logs: true
log_level: INFO
log_attach_logger: null

flush_interval_ms: 60000

backends:
  - type: signoz
    endpoint: https://ingest.us.signoz.cloud:443/v1/traces
    ingestion_key_env: OTEL_SIGNOZ_INGESTION_KEY
    traces: true
    metrics: true
    logs: true

If your endpoint is not SigNoz Cloud US, replace the endpoint:

value with your SigNoz OTLP HTTP traces endpoint.

Using an explicit backends:

entry makes the setup reproducible, enables all three signals (traces, metrics, and logs), and keeps secrets in .env

via ingestion_key_env

rather than hardcoding them in YAML.

Step 5: Restart Hermes

Config is read at process startup. For the gateway service:

hermes gateway restart

For CLI/TUI use, quit Hermes and start it again:

hermes

Step 6: Generate telemetry

Run a simple Hermes interaction:

hermes chat -q "Say hello and list the current working directory using a tool."

This produces an agent root span, LLM/API spans, tool spans if tools are used, Hermes metrics, and Python log records.

Step 7: Verify locally

Check plugin startup logs:

grep -Ei 'hermes-otel|signoz|Logs' ~/.hermes/logs/*.log | tail -80

Healthy output should include lines like:

[hermes-otel] ✓ SigNoz at https://ingest.us.signoz.cloud:443/v1/traces
[hermes-otel] ✓ Logs → 1 backend(s) (attached to root, level=INFO)
[hermes-otel] Registered 8 hooks

You can also verify config resolution without exposing secrets:

PYTHONPATH=$HOME/.hermes/plugins python - <<'PY'
from hermes_otel.plugin_config import load_config
from hermes_otel.backends import resolve

cfg = load_config()
print('capture_logs:', cfg.capture_logs)
print('backends_configured:', len(cfg.backends or ()))
for bc in cfg.backends or ():
    b = resolve(bc)
    print(f'backend={b.display_name} type={b.type} traces={b.supports_traces} metrics={b.supports_metrics} logs={b.supports_logs}')
    print('endpoint:', b.endpoint)
PY

Expected output:

capture_logs: True
backends_configured: 1
backend=SigNoz type=signoz traces=True metrics=True logs=True
endpoint: https://ingest.us.signoz.cloud:443/v1/traces

View Hermes Traces, Logs, and Metrics in SigNoz

Once configured, your Hermes application automatically emits traces, metrics, and logs. In SigNoz, look for a service named hermes-agent

.

Hermes traces are available in SigNoz under the Traces tab:

When you click on a trace in SigNoz, you'll see a detailed view of the trace, including all associated spans, along with their events and attributes.

Hermes logs are available in SigNoz under the Logs tab. You can also view logs by clicking on the “Logs" section in the trace view to see correlated logs:

When you click on any of these logs in SigNoz, you'll see a detailed view of the log, including attributes:

Hermes related metrics are available in SigNoz under the Metrics tab:

When you click on any of these metrics in SigNoz, you'll see a detailed view of the metric, including attributes:

Hermes Monitoring Dashboard

You can also check out our custom Hermes Agent dashboard which provides specialized visualizations for monitoring your Hermes usage. The dashboard includes pre-built charts specifically tailored for LLM usage, along with import instructions to get started quickly.

Troubleshooting Hermes Monitoring

Troubleshooting Hermes Monitoring

hermes_otel

is not listed

Install and enable the plugin again:

hermes plugins install briancaffey/hermes-otel --enable

Logs do not appear, but traces do

Make sure all of these are present in ~/.hermes/plugins/hermes_otel/config.yaml

:

capture_logs: true
backends:
  - type: signoz
    logs: true

Then restart Hermes. Healthy startup should include:

[hermes-otel] ✓ Logs → 1 backend(s)

If you see the following warning, the logs pipeline is not configured correctly:

capture_logs=true but no configured backend accepts OTLP logs

Use the explicit backends:

config shown in Step 4.

No data in SigNoz

Check the plugin list and logs for errors:

hermes plugins list --plain --no-bundled
grep -Ei 'hermes-otel|opentelemetry|signoz|error|warning' ~/.hermes/logs/*.log | tail -120

Common causes:

  • Wrong SigNoz endpoint - verify it ends with /v1/traces

and matches yourSigNoz region - Wrong or missing OTEL_SIGNOZ_INGESTION_KEY

in~/.hermes/.env

  • Hermes was not restarted after changing .env

orconfig.yaml

  • Plugin dependencies were not installed into the Hermes virtual environment (see Step 2)

Setup OpenTelemetry Collector (Optional)

Setup OpenTelemetry Collector (Optional)

What is the OpenTelemetry Collector?

Think of the OTel Collector as a middleman between your app and SigNoz. Instead of your application sending data directly to SigNoz, it sends everything to the Collector first, which then forwards it along.

Why use it?

Cleaning up data- Filter out noisy traces you don't care about, or remove sensitive info before it leaves your servers.** Keeping your app lightweight**- Let the Collector handle batching, retries, and compression instead of your application code.** Adding context automatically**- The Collector can tag your data with useful info like which Kubernetes pod or cloud region it came from.** Future flexibility**- Want to send data to multiple backends later? The Collector makes that easy without changing your app.

See Switch from direct export to Collector for step-by-step instructions to convert your setup.

For more details, see Why use the OpenTelemetry Collector? and the Collector configuration guide.

Additional resources:

── more in #ai-agents 4 stories · sorted by recency
── more on @hermes 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/hermes-monitoring-an…] indexed:0 read:6min 2026-06-11 ·