Telemetry
The benchmark telemetry contract provides stable stage timings and coarse remote-I/O counters for harnesses without depending on internal Rust APIs.
Enablement
| Variable | Effect |
|---|---|
POURPOINT_BENCH_TRACE |
Emits JSONL stage records for benchmark consumers. |
POURPOINT_BENCH_NET=1 |
Enables aggregate object-store network counters. |
Network counters are aggregate process counters. They are useful for comparing whole benchmark runs, but they are not per-span attribution and should not be joined to individual stages as exact network cost.
JSONL Records
Each JSONL line is an event object. Benchmark harnesses should parse these fields:
| Field | Required | Meaning |
|---|---|---|
kind |
yes | Record kind. Stage records use stage. |
stage |
yes | Stable lower_snake_case stage name from the table below. |
duration_ms |
yes | Stage wall time in milliseconds. |
bytes |
optional | Bytes recorded on the stage span. |
requests |
optional | Request count recorded on the stage span. |
cache_status |
optional | Cache outcome, for example hit, miss, or wait. |
path |
optional | File, object, or cache path associated with the stage. |
timestamp |
yes | Unix timestamp in milliseconds when the stage record was emitted. |
thread |
optional | Thread metadata if the tracing layer includes it. |
Consumers should ignore unknown fields.
Benchmark harnesses may augment base stage records. bench_delineate adds
iteration and iteration_wall_time_ms to copied stage records. The base
telemetry layer does not emit iteration fields unless a harness adds them.
Stages
| Rust stage | Stable name |
|---|---|
RemoteOpen |
remote_open |
ManifestFetch |
manifest_fetch |
GraphFetch |
graph_fetch |
CatchmentStoreOpen |
catchment_store_open |
CatchmentIdIndex |
catchment_id_index |
SnapStoreOpen |
snap_store_open |
SnapIdIndex |
snap_id_index |
ValidateGraphCatchments |
validate_graph_catchments |
ValidateSnapRefs |
validate_snap_refs |
OutletResolve |
outlet_resolve |
UpstreamTraversal |
upstream_traversal |
TerminalRefine |
terminal_refine |
TerminalCatchmentFetch |
terminal_catchment_fetch |
RasterLocalizeFlowDir |
raster_localize_flow_dir |
RasterLocalizeFlowAcc |
raster_localize_flow_acc |
CogPrepareWindow |
cog_prepare_window |
CogFetchTiles |
cog_fetch_tiles |
RasterCacheLookup |
raster_cache_lookup |
WatershedAssembly |
watershed_assembly |
ResultCompose |
result_compose |
Stage taxonomy invariant: validation stages must not include ID-index scans.
CatchmentIdIndex and SnapIdIndex cover index open/build/load work.
ValidateGraphCatchments and ValidateSnapRefs cover only membership checks, or
are skipped entirely when the validated sidecar matches current artifact
metadata.
Stability
The stable stage names and core field names above are part of the benchmark
contract. Additive fields may appear over time; benchmark harnesses should keep
parsers permissive and key off kind, stage, and duration_ms for stage
timing summaries.