从cloudwatch-exporter中,我得到了一些指标,它们提供了统计信息,例如执行的磁盘操作或数据点之间传输的网络数据包。我需要实现的是通过采样间隔对这些指标进行归一化,以便获得“每秒”的值。
问题是我不能简单地将即时向量除以硬编码的间隔值,因为相同的Prometheus查询需要适用于可能具有不同采样间隔的时间序列(取决于目标的CloudWatch配置),因此查询必须足够聪明才能“自我规范化”。
到目前为止,我发现的最佳解决方案是利用count_over_time
来获得我确信足以涵盖大多数CloudWatch配置的范围内的平均间隔。唯一的问题是,在时间序列即将结束时,它变得有点模糊,时间序列结束时,范围下降了。
aws_ec2_metric * count_over_time(aws_ec2_metric[300s]) / 300
答案 0 :(得分:1)
尝试类似sum_over_time(aws_ec2_metric[300s]) / 300
的操作。它将对给定时间范围(300s)中的所有值求和,然后通过将结果值除以300来计算平均每秒速率。