prometheus - 将布尔度量/表达式转换为计数器
问题描述
我需要将布尔度量转换为计数器以捕获 0/1 的增加。我正在努力想出一个记录规则或一个功能来实现这一点。有哪些选择可以实现这一目标?
解决方案
从仪表(您的布尔度量)到计数器是不可能的。至少不会丢失数据。例如,给定 10 秒的抓取间隔,您的布尔值可以在 10 秒间隔内多次翻转为 0,然后是 1,然后是 0,然后是 1,等等。它甚至可能最终达到与 10 秒前相同的值。
因此,例如,从像这样每 5 秒翻转一次的序列中,Prometheus 只会看到 1,而不会看到 0:
0 1 0 1 0 1 0 1 0 1
^ ^ ^ ^ ^
因此,从普罗米修斯的角度来看,您的计量表卡在 1 并且永远不会有任何变化。
假设您的计数器的更改频率从未超过 10 秒,您可以设置一个记录规则,例如changes(boolean_metric[20s])
(仍然假设抓取间隔为 10 秒),然后sum_over_time()
对该规则的输出进行过度处理。
推荐阅读
- clang - 使用clang和Web组装目标时有没有办法使用sqrt
- flutter - 如何修复 Dart DevTools Widget Inspector 卡住显示圆形进度指示器?
- scala - 升级 scalatest 到 3.1.4 后“引用不存在的方法 org.scalatest.Matchers.convertToAnyShouldWrapper”
- javascript - 从 React 组件触发 Backbone 事件
- list - 将假设附加到列表时出错--Mathematica
- amazon-web-services - 使用 GoLang 将结构或对象上传到 S3 存储桶?
- javascript - MongoDB不必要的巨大平均文档大小
- reactjs - React setState 不会立即更新
- c - 如何在根进程中将子二维数组 MPI_Gather 成一个连续的二维数组?
- c# - 是否可以在 Blazor 中使用 Vue 和 Vue 组件?