promQL ON 使用
所属分类 prometheus
浏览量 354
ON 是 PromQL 中的一种操作符,用于指定标签来匹配两个向量
可使用不同的操作符来组合两个时间序列向量,比如 +(加) -(减) *(乘) /(除)等
只有当指定的标签完全匹配时,两个时间序列才会被配对
cpu_usage + on(instance) memory_usage
计算每个实例的CPU和内存使用率之和
如果没有使用 ON() 或 IGNORING(), 默认会要求所有标签都必须匹配
and 逻辑和匹配
(increase(flink_jobmanager_job_runningTime[5m]) >0)
当前运行中的flink 任务
flink_jobmanager_job_numberOfFailedCheckpoints and on(job,job_id) (increase(flink_jobmanager_job_runningTime[5m]) >0)
flink_jobmanager_job_fullRestarts and on(job,job_id) (increase(flink_jobmanager_job_runningTime[5m]) >0)
匹配 时标签名 不一样 ,label_replace 临时重命名标签
label_replace( vector, "new_label", "replacement", "src_label", "regex")
vector 要操作的时间序列向量
new_label
replacement 替换 src_label 的值
src_label 要被替换或复制的现有标签的名称
regex 正则表达式,用于提取 src_label 的值中的一部分作为 new_label 的值
假设有两个指标 metric1 和 metric2
metric1 有一个标签 label1,而 metric2 有一个标签 label2,这两个标签在逻辑上是一致的,即 label1 的值应该与 label2 的值相对应。
可以使用 label_replace 创建一个新的临时标签 temp_label,然后用 ON() 进行匹配
metric1 + on(temp_label) label_replace(metric2, "temp_label", "$1", "label2", "(.)")
对 metric2 使用 label_replace 函数,创建了一个新的标签 temp_label,它的值直接取自 label2(因为正则表达式 (.) 匹配了整个标签的值)。
然后在两个指标之间进行加法操作,并通过 ON(temp_label) 保证只有当 metric1 的 label1 和 metric2 的 temp_label 相匹配时,才会进行计算。
label_replace 是在查询执行时临时应用的,不会影响存储在 Prometheus 中的实际数据。
上一篇
下一篇
kafka 与 rabbitMQ 比较
常用组件告警规则
flink-CDC-3.0 mysql to doris 数据同步任务 经常报错 stream load error: [LABEL_ALREADY_EXISTS]
杭州西山游步道爬山路线汇总
监控原则
一个URL请求的过程