Expand description
Structured per-request API telemetry.
Opt-in via the telemetry config key (off | basic | full).
Writes one JSON record per API call to ~/.cache/synaps/api-log.jsonl
(mode 0600, O_NOFOLLOW — same hardening as the legacy usage log).
basic records timing + usage + cost. full additionally records
rate-limit headers and cache-diagnostics results when available.
Writes are best-effort and non-blocking: persistence goes through the
bounded background writer (Task 11, spec §6.5), so a slow or broken
log path can never delay or fail the request pipeline. Failures are
counted (never silent-and-invisible) with one warning per persistent
failure class.
Re-exports§
pub use writer::default_telemetry_log_path;pub use writer::default_trace_log_path;pub use writer::ShutdownOutcome;pub use writer::TelemetryWriter;pub use writer::WriterOptions;pub use writer::WriterStats;pub use writer::WriterTraceSink;pub use writer::DEFAULT_MAX_FILE_BYTES;pub use writer::DEFAULT_QUEUE_CAPACITY;pub use writer::DEFAULT_SHUTDOWN_FLUSH_TIMEOUT;
Modules§
- writer
- Bounded, non-blocking background writer for observability persistence (Task 11, spec §6.5).
Structs§
- Cache
Diag Record - Cache-diagnostics result (beta
cache-diagnosis-2026-04-07). Only present when the user opted in viacache_diagnostics = true. - Context
Record - Request-shape context: what we sent, for correlating cache behavior.
- Rate
Limit Record - Rate-limit headroom captured from
anthropic-ratelimit-*response headers. Only recorded atfulllevel. - Telemetry
Record - One JSONL record per API call.
- Usage
Record - Token usage for one API call, including the cache-creation TTL breakdown.
Enums§
- Telemetry
Level - Telemetry verbosity level, parsed from the
telemetryconfig key.
Constants§
- RETRY_
DELAY_ CAP - Maximum delay we’ll honour from any rate-limit header. A pathological reset timestamp far in the future would otherwise stall the turn indefinitely.
Functions§
- ratelimit_
from_ headers - Extract rate-limit headroom from response headers.
- request_
id_ from_ headers - Extract the
request-idresponse header. - retry_
delay_ from_ headers - Compute how long to wait before the next retry, consulting response headers.