Skip to main content

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: true to bypass aggregation and forward every gauge unchanged.
  • Summary: by default the last observed value is used. Set pass_through.summary: true to bypass.

Supported types: Metrics

Configuration

ParameterTypeDefaultRequiredDescription
intervaldurationYesAggregation window. Must be > 0. Common values: 60s, 5m.
pass_through.gaugeboolfalseNoWhen true, gauge metrics are forwarded as-is instead of being collapsed to the last value per window.
pass_through.summaryboolfalseNoWhen 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 × interval bounds 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.