Excititor Chunk Telemetry

Reference: Sprint 110.

Audience: operators and observability engineers monitoring the Excititor Chunk API.

This page documents the metrics and logs emitted by chunk ingestion. For the broader set of Excititor evidence metrics, see the Observability guide.

Metrics

All instruments are published under the StellaOps.Excititor.Chunks meter.

MetricTypeUnitDescription
vex_chunks_ingested_totalCounterchunksIncrements per chunk submitted. Tags: tenant, source, status (accepted/rejected), reason (empty for accepted).
vex_chunks_item_countHistogramitemsItem count per chunk.
vex_chunks_payload_bytesHistogrambytesMeasured from the NDJSON payload length.
vex_chunks_latency_msHistogrammsEnd-to-end ingestion latency per request.

Logs

EventFields
vex.chunk.ingest.acceptedchunk_id, tenant, source, item_count, chunk_digest
vex.chunk.ingest.rejectedchunk_id, tenant, source, reason, summarized validation errors

Wiring steps

  1. Register ChunkTelemetry as a singleton bound to the shared Meter instance.
  2. In the /vex/evidence/chunks handler, compute chunk_digest deterministically from canonical JSON and emit the counters/histograms via ChunkTelemetry.
  3. Log using the structured templates above; never include request bodies in logs.
  4. Expose metrics through the default ASP.NET metrics export (Prometheus/OpenTelemetry) already configured in the WebService.

Determinism & offline posture

Ownership