【问题标题】:Normalize Prometheus metrics over sampling interval在采样间隔内标准化 Prometheus 指标
【发布时间】:2020-07-30 13:24:08
【问题描述】:

cloudwatch-exporter 我得到了一些提供统计数据的仪表,例如执行的磁盘操作或数据点之间传输的网络数据包。我需要实现的是通过采样间隔对这些指标进行标准化,以获得“每秒”的值。

问题是我不能简单地将即时向量除以硬编码的间隔值,因为相同的 Prometheus 查询需要适用于可能具有不同采样间隔的时间序列(取决于目标的 CloudWatch 配置),所以查询必须足够聪明才能“自我规范化”。

到目前为止,我发现的最佳解决方案是利用 count_over_time 来获取我有足够信心涵盖大多数 CloudWatch 配置的范围内的平均间隔。唯一的问题是它在时间序列结束时有点模糊,范围在时间序列结束时下降。

aws_ec2_metric * count_over_time(aws_ec2_metric[300s]) / 300

【问题讨论】:

    标签: prometheus amazon-cloudwatch promql


    【解决方案1】:

    试试sum_over_time(aws_ec2_metric[300s]) / 300。它会将给定时间范围(300 秒)内的所有值相加,然后通过将结果值除以 300 来计算平均每秒速率。

    【讨论】:

    • 仅供参考,VictoriaMetrics 提供了rate_over_sum(m[d]) 函数,该函数执行与sum_over_time(m[d]) / d 类似的计算,但在[d] 区间包含少量原始数据点时提供更准确的结果并正确处理极端情况。在MetricsQL docs 上查看更多信息。免责声明:我是 VictoriaMetrics 的核心开发人员。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    相关资源
    最近更新 更多