Skip to main content

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.

Parseable OSS needs a collector

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-metrics and hermes-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:

SignalDataset headerSource header
TracesX-P-Stream: hermes-tracesX-P-Log-Source: otel-traces
MetricsX-P-Stream: hermes-metricsX-P-Log-Source: otel-metrics
LogsX-P-Stream: hermes-logsX-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.