prometheus - Prometheus 中指标高于/低于阈值时的总和持续时间
问题描述
my_counter
考虑一个带有标签的计数器success
。我用这个查询创建了一个成功率指标:rate(my_counter[10m]{success="true"})/rate(my_counter[10m])
.
现在我想知道费率低于某个阈值的时间。我有一个以 Prometheus 作为数据源的 Grafana 仪表板。使用 Grafana,我可以轻松选择一个时间范围,但我仍然需要一种方法来总结我的条件适用的时间。
有任何想法吗?
解决方案
你的问题有四个部分:
有一个在满足条件时取值为 1 的指标 - 这是通过使用
BOOL
比较运算符的运算符来完成的。速率(某物 [5m])> 布尔值 0.99
计算满足条件的次数 - 这是通过使用avg_over_time函数完成的:
avg_over_time(条件[1d])
在单个查询中获取所有内容 - 您需要使用重新编码规则或拥有支持子查询的 prometheus 版本
最后是使用 grafana 填写时间范围以获得满足条件的比率或持续时间。
avg_over_time(条件[$__range])
avg_over_time(条件[$__range]) * $__range_s
把它们放在一起是一个难以阅读的表达。-- Grafana Dashboard --
使用最新版本中可用的源代码可能会做得更好:
avg_over_time( (rate(something[5m]) > BOOL 0.99)[$__range:] )
推荐阅读
- date - WEBI BO 如果值匹配,则基于今天显示第二天(日期名称)
- c# - IntPtr C# 到 C++ void*
- c# - 使用带有 Web 和 Windows 客户端的 ASP.NET 核心支持多种身份验证方法
- javascript - Rails:文件嵌套字段,显示每个字段上选择的文件名
- python - 如何使用字符串减少多个条件 - python
- javascript - DDL 项目更改后 JQuery 模糊不起作用
- c# - 在c#中动态更新标签
- c# - 使用 Moq 进行单元测试时避免代码中的 thread.sleep
- selenium - 每次基于 Selenium 的自动化测试后,我应该退出浏览器吗?
- mongodb - 从 powershell 脚本运行多个 cmd 命令,就像我在 cmd shell 中运行它一样