docs-v2/content/flux/v0/stdlib/experimental/prometheus/histogramquantile.md

3.4 KiB

title description menu weight flux/v0/tags
prometheus.histogramQuantile() function `prometheus.histogramQuantile()` calculates a quantile on a set of Prometheus histogram values.
flux_v0_ref
name parent identifier
prometheus.histogramQuantile experimental/prometheus experimental/prometheus/histogramQuantile
201
transformations
aggregates
prometheus

prometheus.histogramQuantile() calculates a quantile on a set of Prometheus histogram values.

This function supports Prometheus metric parsing formats used by prometheus.scrape(), the Telegraf promtheus input plugin, and InfluxDB scrapers available in InfluxDB OSS.

Function type signature
(<-tables: stream[{B with le: D, _field: C}], quantile: float, ?metricVersion: A, ?onNonmonotonic: string) => stream[E] where A: Equatable, C: Equatable, E: Record

{{% caption %}} For more information, see Function type signatures. {{% /caption %}}

Parameters

quantile

({{< req >}}) Quantile to compute. Must be a float value between 0.0 and 1.0.

metricVersion

Prometheus metric parsing format used to parse queried Prometheus data. Available versions are 1 and 2. Default is 2.

tables

Input data. Default is piped-forward data (<-).

onNonmonotonic

Describes behavior when counts are not monotonically increasing when sorted by upper bound. Default is error.

Supported values:

  • error: Produce an error.
  • force: Force bin counts to be monotonic by adding to each bin such that it is equal to the next smaller bin.
  • drop: When a nonmonotonic table is encountered, produce no output.

Examples

Compute the 0.99 quantile of a Prometheus histogram

import "experimental/prometheus"

prometheus.scrape(url: "http://localhost:8086/metrics")
    |> filter(fn: (r) => r._measurement == "prometheus")
    |> filter(fn: (r) => r._field == "qc_all_duration_seconds")
    |> prometheus.histogramQuantile(quantile: 0.99)

Compute the 0.99 quantile of a Prometheus histogram parsed with metric version 1

import "experimental/prometheus"

from(bucket: "example-bucket")
    |> range(start: -1h)
    |> filter(fn: (r) => r._measurement == "qc_all_duration_seconds")
    |> prometheus.histogramQuantile(quantile: 0.99, metricVersion: 1)