Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
be4d107
parse: expose reusable scratch and raw slice accessors on OpenMetrics…
bwplotka Nov 4, 2026
0063d67
arrow: add OTAP schemas and record slots for histograms, summaries, a…
bwplotka Nov 4, 2026
9abcbab
arrow: assemble histograms, summaries, exemplars, and OpenMetrics types
bwplotka Nov 4, 2026
3968f48
arrow: flush decode_stream chunks across metadata-preceded assembled …
bwplotka Nov 4, 2026
14e1114
arrow: validate dropped series labels without interning into dictiona…
bwplotka Nov 4, 2026
1b9f03c
arrow: mark counter _created as sample and preserve across stream chunks
bwplotka Nov 4, 2026
3027b54
arrow, parse: avoid repeated start_timestamp lookahead per series
bwplotka Nov 4, 2026
0db1a5c
arrow: reject non-finite summary quantiles and -Inf histogram buckets
bwplotka Nov 4, 2026
b165db0
arrow: reuse scratch buffers in build_metric_attrs after dp_attrs
bwplotka Nov 4, 2026
7b27870
tests: cover gaugehistogram, text _created, unsorted bounds, and exem…
bwplotka Nov 4, 2026
65e0227
arrow: extract column tables, family assembly, options, and tests sub…
bwplotka Nov 4, 2026
d38bd46
parse: keep scanning past non-_created lines in start_timestamp
bwplotka Nov 5, 2026
10a7054
arrow: treat _created lines in Prometheus text format as normal metrics
bwplotka Nov 5, 2026
a7609d4
arrow: enforce max_data_points_per_batch within assembled families
bwplotka Nov 5, 2026
978dc97
arrow: index assembled family groups by hash and link points per group
bwplotka Nov 5, 2026
4dbcc8f
arrow: remove InfoPolicy and StatesetPolicy from public API and OTAP
bwplotka Nov 5, 2026
decad82
parse, arrow: ignore out-of-range _created start timestamps
bwplotka Nov 5, 2026
54d4ff7
arrow: remove unused DecodeError::UnsupportedMetricType variant
bwplotka Nov 5, 2026
ef2ce5c
parse: replace borrowed parser slices with byte spans and expose cursor
bwplotka Nov 5, 2026
527b9c8
parse: implement Index<ByteSpan> for [u8]
bwplotka Nov 5, 2026
58ad075
Merge pull request #29 from prometheus/bwplotka/phase4-parser-spans
bwplotka Nov 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions specs/expfmt/SPEC.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,8 @@ scrape bytes
- `ArrowDecoder` appends parsed metrics, attributes, number data points, summary data points, classic and exponential histogram data points, and exemplars directly into Arrow array builders (`arrow-array` and `arrow-schema`), matching the relational `id` and `parent_id` tables in [`rust/otap-dataflow/crates/pdata`](https://github.com/open-telemetry/otel-arrow/tree/main/rust/otap-dataflow/crates/pdata). Callers can either materialize one batch set per scrape with `ArrowDecoder::decode` or pull bounded chunks on demand with `ArrowDecoder::decode_stream` to cap scratch memory and stay within OTAP's `u16` per-batch metric ID limit.
- Metric families in text exposition are decoded as contiguous runs, with `# HELP`, `# TYPE`, and `# UNIT` metadata lines preceding that family's samples. Like OpenMetrics 1.0/2.0 and Prometheus's scrape loop, `ArrowDecoder` tracks only the active family cursor instead of maintaining a whole-scrape hash table to reassemble or reject previously seen names, so a non-contiguous repetition of an earlier metric name starts a fresh untyped run unless preceded by its own metadata.
- A `LabelFilter` / `Relabeler` hook runs on the borrowed `LabelsBuffer` from Layer 0 so dropped series never allocate in Arrow builders or metric family state.
- The metric family assembler groups classic histogram `_bucket`, `_sum`, `_count`, and `_created` lines and summary `quantile`, `_sum`, `_count`, and `_created` lines into complete metric families.
- Configurable translation policies control counter `_total` and unit suffix handling, `info` and `stateset` projection, and untyped series handling.
- The metric family assembler groups classic histogram `_bucket`, `_sum`, and `_count` lines and summary `quantile`, `_sum`, and `_count` lines (plus OpenMetrics `_created` start timestamps) into complete metric families.
- Configurable translation policies control counter `_total` and unit suffix handling and untyped series handling.
- `ArrowDecoder` owns its scratch buffers and Arrow builders without internal locks or global state, so a per-core `!Send` receiver can reuse allocations across scrapes with bounded memory.

### Layer 2: Proto DTO decoder
Expand Down
Loading
Loading