Che*_*rry 3 metrics apache-kafka apache-spark prometheus prometheus-operator
考虑指标示例:
increase(application_executor_recordsWritten[20m])
increase(kafka_server_brokertopicmetrics_messagesin_total{topic="my_topic"}[20m])
Run Code Online (Sandbox Code Playgroud)
如果我在普罗米修斯图上单独执行这些指标 - 一切正常。但是当尝试类似的东西时:
increase(application_executor_recordsWritten[20m]) - increase(kafka_server_brokertopicmetrics_messagesin_total{topic="my_topic"}[20m])
Run Code Online (Sandbox Code Playgroud)
我得到了No datapoints error。
application_executor_recordsWritten收到了过去 1 小时,而kafka_server_brokertopicmetrics_messagesin_total收到了 6 个多小时。可能是因为这些指标具有不同的“收集设置”,请考虑 prometheus 控制台输出:
application_executor_recordsWritten
{app_name="app-name",exported_instance="application_111111111111111111",exported_job="application_111111111111111111",instance="XX.XXX.X.XX",job="job_name",number="1",role="executor" }
kafka_server_brokertopicmetrics_messagesin_total
{instance="XX.XXX.X.XX",job="job_name",topic="my_topic"}
普罗米修斯使用ignore(???)关键字之类的东西,但我无法弄清楚它是如何工作的以及如何将其应用于这些指标。
任何想法如何执行指标差异?什么是正确的语法?
在 PromQL 中,两个度量范围(又名向量)之间的算术二元运算符受向量匹配的约束:该操作仅应用于具有相同标签集(名称和值)的条目。
如果存在差异并且没有配对值,则会出现臭名昭著的No data point错误。
如果你想让它们匹配,你必须
metric1 - ignoring(a_lone_label) metric2)metric1 - on(common_label_name_and_value) metric2)在你给出的例子中,不清楚应该匹配什么。我会说instance和job; 它可能是:
increase(application_executor_recordsWritten[...]) - on (job,instance) increase(kafka_server_brokertopicmetrics_messagesin_total{topic="my_topic"}[...])
Run Code Online (Sandbox Code Playgroud)
如果运算符的一侧包含应该与另一侧的多个元素配对的元素(称为一对多匹配),则必须指示运算符的哪一侧(右侧或左侧)有更多条目: 使用group_<side:rigth|left>。
| 归档时间: |
|
| 查看次数: |
6942 次 |
| 最近记录: |