Skip to content

dist-avg

Input Stack:
query: Query
Output Stack:
TimeSeriesExpr

Compute the average recorded value for timer and distribution summary metrics by dividing the total recorded amount by the count of recorded measurements. This provides the true average per individual measurement, not per time series or instance.

Parameters

  • query: Query for timer or distribution summary metrics

How It Works

This operator automatically combines the appropriate statistics to calculate per-measurement averages:

For Timers:

# Manual calculation:
name,http.req.latency,:eq,statistic,totalTime,:eq,:and,:sum,
name,http.req.latency,:eq,statistic,count,:eq,:and,:sum,
:div

# Equivalent using :dist-avg:
name,http.req.latency,:eq,:dist-avg

For Distribution Summaries:

# Manual calculation:
name,request.size,:eq,statistic,totalAmount,:eq,:and,:sum,
name,request.size,:eq,statistic,count,:eq,:and,:sum,
:div

# Equivalent using :dist-avg:
name,request.size,:eq,:dist-avg

Metric Requirements

The metrics must be instrumented using Timer or Distribution Summary classes that collect both total and count statistics. These classes automatically record:

  • totalTime/totalAmount: Cumulative sum of all measurements
  • count: Number of individual measurements recorded

Examples

Computing average request latency per request:

BeforeAfter
name,playback.startLatency,:eq
name,playback.startLatency,:eq,
:dist-avg

Simple usage pattern:

nf.cluster,foo,:eq,
name,http.req.latency,:eq,
:and,
:dist-avg

Computing average by auto-scaling group:

nf.cluster,foo,:eq,
name,http.req.latency,:eq,
:and,
:dist-avg,
(,nf.asg,),:by

Comparison with Other Averages

Operator Denominator Use Case
:avg Number of reporting time series General time series averaging
:node-avg Number of unique instances Per-instance average
:eureka-avg Number of UP instances in Eureka Per-active-instance average
:dist-avg Number of recorded measurements Per-measurement average
  • :avg - Standard average across time series
  • :node-avg - Average using total instance count
  • :eureka-avg - Average using UP instances in Eureka service discovery

See Also