prometheus - 使用二元运算符过滤 prometheus 查询结果
问题描述
我正在构建一个框架来显示存储在 prometheus 中的不同目标的指标。我有一个通用 api,它接受目标(实例)数据并过滤指定目标的数据。我要获取三个指标。
1. 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) -- cpu usage
2. ((node_filesystem_avail_bytes{mountpoint="/",fstype!="rootfs"} * 100) /node_filesystem_size_bytes{mountpoint="/",fstype!="rootfs"}) -- disk usage
3. 100 * avg by (instance) ((node_memory_MemTotal_bytes - node_memory_MemFree_bytes) / node_memory_MemTotal_bytes) -- memory usage
我正在对 prometheus 进行 API 调用并获取上述查询的所有数据。现在我必须过滤掉特定实例的结果。所以我添加了 and ({instance:"xx.xx.xxx.xxx:9100"}) 来过滤掉数据。
我的 API 查询看起来像,
(100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) or ((node_filesystem_avail_bytes{mountpoint="/",fstype!="rootfs"} * 100) /node_filesystem_size_bytes{mountpoint="/",fstype!="rootfs"}) or 100 * avg by (instance) ((node_memory_MemTotal_bytes - node_memory_MemFree_bytes) / node_memory_MemTotal_bytes)) and ({instance:"xx.xx.xxx.xxx:9100"})
但这不适用于使用聚合并且没有获取数据的查询。有什么办法,我可以根据不同查询的特定标签过滤出查询结果。
解决方案
推荐阅读
- php - Laravel Job 看不到传递的变量
- r - 如何在 R 绘图的 x 轴中插入字符值?
- typescript - 为什么当我使用'vue-property-decorator'时代码不起作用?(Vue.js+TypeScript)
- c# - 我编写了一个程序来获取字符串中匹配相邻字母的计数
- revit-api - 如何获取视图的 Revit 自定义导出已取消的信息
- excel - 需要一个通用的 Excel VBA 方法来对表格进行排序
- swift - 用于展开和折叠的 SwiftUI 列表动画
- flutter - 如何根据从外部传递的更改值动态更改自定义小部件中成员的值
- ios - 全局设置对 UIButton 的引用
- c# - 应用程序在从套接字接收信息时停止