Skip to main content
Since 1.3.0 Calculate the rate of change of a counter during the time period specified by the bounds in the counter aggregate. The bounds must be specified for the extrapolated_rate function to work. You can provide them as part of the original counter_agg call, or by using the with_bounds function on an existing counter aggregate.

Arguments

NameTypeDefaultRequiredDescription
summaryCounterSummary-A counter aggregate created using counter_agg
methodTEXT-The extrapolation method to use. Not case-sensitive. The only allowed value is prometheus, for the Prometheus extrapolation protocol.

Returns

DOUBLE PRECISION: The extrapolated rate of change of the counter over the timer period of the counter aggregate.

Samples

SELECT
    id,
    bucket,
    extrapolated_rate(
        with_bounds(
            summary,
            toolkit_experimental.time_bucket_range('15 min'::interval, bucket)
        ),'prometheus'
    )
FROM (
    SELECT
        id,
        time_bucket('15 min'::interval, ts) AS bucket,
        counter_agg(ts, val) AS summary
    FROM foo
    GROUP BY id, time_bucket('15 min'::interval, ts)
) t;