Explicit bucket histogram aggregation.
Uses :counters for thread-safe bucket increments and
ets:update_counter / ets:select_replace for atomic
count, sum, min, and max updates.
ETS entry format:
{key, counters_ref, min, max, sum, count, start_time}.
Supports Cumulative and Delta temporality. For Delta, bucket
counts, sum, and count are atomically read and subtracted;
min and max are reset to :unset.
Configuration parameters
Pass via opts (typically through
Otel.SDK.Metrics.View.config.aggregation_options):
| Key | Default | Description |
|---|---|---|
:boundaries | @default_boundaries (15 OTel-default buckets) | Bucket boundaries per metrics/sdk.md L660-L661 |
:record_min_max | true | Whether to record min / max per metrics/sdk.md L662 |
When :record_min_max is false, the bucket counts, sum,
and count are still tracked, but min/max ETS slots remain
:unset and the collected datapoint emits nil for both
fields — matching the spec's "RecordMinMax = false" semantics.
Summary
Functions
@spec default_boundaries() :: [number()]