文档文档

使用 Prometheus Gauge 指标

使用 Flux 查询和转换存储在 InfluxDB 中的 Prometheus gauge 指标。

Gauge 是一种指标,表示可以任意上升和下降的单个数值。

Prometheus 指标类型

Prometheus 数据中的 Gauge 指标示例
# HELP example_gauge_current Current number of items as example gauge metric
# TYPE example_gauge_current gauge
example_gauge_current 128

通常,Gauge 指标可以直接使用报告的值,无需任何额外的处理。

以下示例包括使用 prometheus.scrape()InfluxDB OSS 2.x /metrics 端点 收集并存储在 InfluxDB 中的示例数据。

Prometheus 指标解析格式

查询结构取决于用于抓取 Prometheus 指标的 Prometheus 指标解析格式。 从下面选择适当的指标格式版本。

计算 Gauge 值的变化率

  1. prometheus measurement 和 counter 指标名称 字段过滤结果。
  2. 使用 derivative() 计算 Gauge 值之间的变化率。默认情况下,derivative() 返回每秒的变化率。使用 unit 参数 自定义速率单位。要将负导数替换为 null 值,请将 nonNegative 参数 设置为 true
from(bucket: "example-bucket")
    |> range(start: -1m)
    |> filter(fn: (r) => r._measurement == "prometheus" and r._field == "go_goroutines")
    |> derivative(nonNegative: true)
Raw Prometheus gauge metric in InfluxDB
Derivative of Prometheus gauge metrics in InfluxDB

查看示例输入和输出数据

  1. counter 指标名称 measurement 和 gauge 字段过滤结果。
  2. 使用 derivative() 计算 Gauge 值之间的变化率。默认情况下,derivative() 返回每秒的变化率。使用 unit 参数 自定义速率单位。要将负导数替换为 null 值,请将 nonNegative 参数 设置为 true
from(bucket: "example-bucket")
    |> range(start: -1m)
    |> filter(fn: (r) => r._measurement == "go_goroutines" and r._field == "gauge")
    |> derivative(nonNegative: true)
Raw Prometheus gauge metric in InfluxDB
Derivative of Prometheus gauge metrics in InfluxDB

查看示例输入和输出数据

计算指定时间窗口内的平均变化率

  1. 导入 experimental/aggregate

  2. prometheus measurement 和 counter 指标名称 字段过滤结果。

  3. 使用 aggregate.rate() 计算每个时间窗口的平均变化率。

    • 使用 every 参数 定义时间窗口间隔。
    • 使用 unit 参数 自定义速率单位。默认情况下,aggregate.rate() 返回每秒 (1s) 的变化率。
    • 使用 groupColumns 参数 指定执行聚合时要分组的列。
import "experimental/aggregate"

from(bucket: "example-bucket")
    |> range(start: -1m)
    |> filter(fn: (r) => r._measurement == "prometheus" and r._field == "go_goroutines")
    |> aggregate.rate(every: 10s, unit: 1s)
Raw Prometheus gauge metric in InfluxDB
Calculate the average rate of change of Prometheus gauge metrics per time window with Flux

查看示例输入和输出数据

  1. 导入 experimental/aggregate

  2. counter 指标名称 measurement 和 gauge 字段过滤结果。

  3. 使用 aggregate.rate() 计算每个时间窗口的平均变化率。

    • 使用 every 参数 定义时间窗口间隔。
    • 使用 unit 参数 自定义速率单位。默认情况下,aggregate.rate() 返回每秒 (1s) 的变化率。
    • 使用 groupColumns 参数 指定执行聚合时要分组的列。
import "experimental/aggregate"

from(bucket: "example-bucket")
    |> range(start: -1m)
    |> filter(fn: (r) => r._measurement == "go_goroutines" and r._field == "gauge")
    |> aggregate.rate(every: 10s, unit: 1s)
Raw Prometheus gauge metric in InfluxDB
Calculate the average rate of change of Prometheus gauge metrics per time window with Flux

查看示例输入和输出数据


此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像现在这样使用它,而无需对您的代码进行任何更改。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、近实时数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建在 Core 的基础上,增加了高可用性、读取副本、增强的安全性以及数据压缩功能,以实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看