Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
- Introduced `SbomService` tasks documentation. - Updated `StellaOps.sln` to include new projects: `StellaOps.AirGap.Time` and `StellaOps.AirGap.Importer`. - Added unit tests for `BundleImportPlanner`, `DsseVerifier`, `ImportValidator`, and other components in the `StellaOps.AirGap.Importer.Tests` namespace. - Implemented `InMemoryBundleRepositories` for testing bundle catalog and item repositories. - Created `MerkleRootCalculator`, `RootRotationPolicy`, and `TufMetadataValidator` tests. - Developed `StalenessCalculator` and `TimeAnchorLoader` tests in the `StellaOps.AirGap.Time.Tests` namespace. - Added `fetch-sbomservice-deps.sh` script for offline dependency fetching.
1.6 KiB
1.6 KiB
Excititor Chunk Telemetry (Sprint 110)
Metrics (Meter: StellaOps.Excititor.Chunks)
vex_chunks_ingested_total(counter) — tags:tenant,source,status(accepted|rejected),reason(nullable for accepted). Increments per chunk submitted.vex_chunks_item_count(histogram, unit=items) — records item count per chunk.vex_chunks_payload_bytes(histogram, unit=bytes) — measured from NDJSON payload length.vex_chunks_latency_ms(histogram) — end-to-end ingestion latency per request.
Logs
vex.chunk.ingest.accepted— includeschunk_id,tenant,source,item_count,chunk_digest.vex.chunk.ingest.rejected— includeschunk_id,tenant,source,reason, validation errors (summarized).
Wiring steps
- Register
ChunkTelemetryas singleton with sharedMeterinstance. - In
/vex/evidence/chunkshandler, computechunk_digestdeterministically from canonical JSON and emit counters/histograms viaChunkTelemetry. - Log using structured templates above; avoid request bodies in logs.
- Expose metrics via default ASP.NET metrics export (Prometheus/OpenTelemetry) already configured in WebService.
Determinism & offline posture
- Do not include host-specific paths or timestamps in metric dimensions.
- Histogram buckets: use standard OTEL defaults; no runtime-generated buckets.
- Keep meter name stable; adding new instruments requires version note in sprint Decisions & Risks.
Ownership
- Implementer: Excititor Observability Guild
- Reviewers: Evidence Locker Guild (for parity with attestation metrics)