Interval
Overview
The Interval processor aggregates incoming metric data points over a fixed time window and emits one consolidated point per series at the end of each window. This reduces wire volume when the upstream collection interval is finer than the downstream destination needs (e.g. scraping every 5s but only sending every 60s).
Aggregation behavior depends on the metric type:
- Sum (delta or cumulative): values within the window are summed.
- Histogram: bucket counts are summed; min/max/sum aggregated correctly.
- Gauge: by default the last observed value in the window is used. Set
pass_through.gauge: trueto bypass aggregation and forward every gauge unchanged. - Summary: by default the last observed value is used. Set
pass_through.summary: trueto bypass.
Supported types: Metrics
Configuration
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
interval | duration | — | Yes | Aggregation window. Must be > 0. Common values: 60s, 5m. |
pass_through.gauge | bool | false | No | When true, gauge metrics are forwarded as-is instead of being collapsed to the last value per window. |
pass_through.summary | bool | false | No | When true, summary metrics are forwarded as-is. |
Example Configuration
{
"interval": "60s",
// Don't compress gauges — keep every reading
"pass_through": {
"gauge": true,
"summary": false,
},
}
Notes
- Latency: every emitted point is delayed by up to
interval(the window's end). Don't use on real-time alerting pipelines. - Memory: holds in-memory state for every active series within the window. Cardinality ×
intervalbounds memory. - Pair with cumulativetodelta if your sources emit cumulative metrics — aggregating cumulatives is meaningless. Convert to delta first.
- Order: place after sampling/filtering, before batch. Sampling first reduces what enters the aggregation window; batching after groups the consolidated points for efficient transmission.