Metrics: Real vs Estimated
| Metric | Status | Source |
|---|---|---|
| Tokens in (non-cached) | ✅ Real | post_api_request.usage.input_tokens |
| Tokens out | ✅ Real | post_api_request.usage.output_tokens |
| Cache read tokens | ✅ Real | post_api_request.usage.cache_read_tokens |
| Cache write tokens | ✅ Real | post_api_request.usage.cache_write_tokens |
| Reasoning tokens | ✅ Real | post_api_request.usage.reasoning_tokens |
| API call latency | ✅ Real | post_api_request.api_duration (seconds → ms) |
| Tool call latency | ✅ Real | post_tool_call.duration_ms |
| Model name | ✅ Real | post_api_request.response_model or model |
| Provider name | ✅ Real (verbatim) | post_api_request.provider |
| Platform | ✅ Real | on_session_start.platform |
| Cron job ID | ✅ Real (parsed) | session_id regex extraction |
| Session duration | ✅ Real (wall time) | started_at → ended_at (last turn) |
| Tool success/failure | ✅ Real | post_tool_call.status; result-JSON fallback (truthy error, terminal exit_code, success is False) on older Hermes |
| Subagent count | ✅ Real (proxy) | subagent_stop hook count |
| Cost (USD) | ⚠️ Estimated | Local pricing table × token counts |
Tokens when usage=None |
⚠️ Estimated, flagged | approx_input_tokens + chars/4, row marked estimated=1 |
| Subagent cost (global) | ✅ Real | Child runs fire own hooks → independent runs rows |
| Subagent cost (per-cron-job) | ✅ Real (attributed) | subagent_edges (v11) + recursive CTE in db.spend_by_scope("cron_job", ...) |
| MoA aggregator cost | ✅ Real (re-attributed) | Aggregator usage from post_api_request, priced under the aggregator’s real provider/model resolved from the preset (moa.py) |
| MoA reference-model cost | ❌ Not available | References run via auxiliary call_llm, which fires no hooks — tokens unrecoverable (recorded MoA cost is a lower bound) |
Cost is always an estimate — computed from a local pricing table, not from
a provider billing API. Users can override prices via ~/.hermes/telemetry/pricing.yaml.
hermes-telemetry is an independent community plugin for Hermes Agent. It is not affiliated with or endorsed by Nous Research.