Parseable
Parseable accepts Hermes telemetry over OTLP/HTTP. The dedicated backend sends traces, metrics and logs to separate datasets and supplies the Parseable routing headers for each signal.
The type: parseable backend assumes Parseable Cloud or Enterprise: it authenticates
with X-API-Key and sends OTLP/protobuf. Parseable OSS has no API keys and answers
400 Protobuf ingestion is not supported in Parseable OSS, so with OSS put an
OpenTelemetry Collector in front that re-encodes to OTLP/JSON with Basic auth and the
X-P-Stream / X-P-Log-Source headers, and point the plugin at the collector with
type: otlp. docker-compose/parseable/docker-compose.yaml in the repo is exactly that pair
(Parseable OSS v3.2.4 + collector; UI http://localhost:8010, plugin endpoint
http://localhost:4348/v1/traces); all three datasets fill up. See issue #238.
Prerequisites
- A Parseable ingestor URL
- An API key with dataset creation and ingest access
- Three datasets:
hermes-traces,hermes-metricsandhermes-logs
Tag hermes-traces with agent-observability when creating it. This makes
the dataset available in Parseable's Agents view. The
official Hermes guide
includes dataset-creation commands and verification steps.
Configure hermes-otel
backends:
- type: parseable
endpoint: https://parseable.example.com/v1/traces
api_key_env: PARSEABLE_API_KEY
traces_dataset: hermes-traces
metrics_dataset: hermes-metrics
logs_dataset: hermes-logs
logs:
capture: true # send Python log lines as OTel logs too
export PARSEABLE_API_KEY="<parseable-api-key>"
Use the Parseable ingestor URL. In distributed deployments, the query/UI
endpoint may reject ingestion. Keep /v1/traces on the configured endpoint;
hermes-otel derives /v1/metrics and /v1/logs for the other exporters.
The dataset fields are optional and default to the names shown above. The plugin adds these headers automatically:
| Signal | Dataset header | Source header |
|---|---|---|
| Traces | X-P-Stream: hermes-traces | X-P-Log-Source: otel-traces |
| Metrics | X-P-Stream: hermes-metrics | X-P-Log-Source: otel-metrics |
| Logs | X-P-Stream: hermes-logs | X-P-Log-Source: otel-logs |
All three exporters authenticate with X-API-Key. The key comes from
api_key, else the variable api_key_env names, else OTEL_PARSEABLE_API_KEY,
else PARSEABLE_API_KEY; without one the entry is skipped at startup. Prefer
api_key_env over an inline key so credentials do not enter source control.
Environment-only setup
Without a backends: list, hermes-otel can detect Parseable from:
export OTEL_PARSEABLE_ENDPOINT="https://parseable.example.com/v1/traces"
export OTEL_PARSEABLE_API_KEY="<parseable-api-key>" # or PARSEABLE_API_KEY
Optional dataset overrides are PARSEABLE_TRACES_DATASET,
PARSEABLE_METRICS_DATASET and PARSEABLE_LOGS_DATASET.
Verify
Run a Hermes invocation, then select hermes-traces under Traces or
Agents in Parseable. A complete run contains a root agent span plus
nested llm.*, api.*, tool.* and skill.* spans when applicable.
Parseable also publishes a Hermes Agent Observability dashboard covering agent runs, tokens, model calls, tools, latency, errors, traces, logs and metrics.