两种不同的普罗米修斯度量标准之间的区别是什么?

krugob8w  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(522)

考虑度量示例:

increase(application_executor_recordsWritten[20m])
increase(kafka_server_brokertopicmetrics_messagesin_total{topic="my_topic"}[20m])

如果我在普罗米修斯图上分别执行这些指标-一切都正常。但是当你尝试这样的事情时:

increase(application_executor_recordsWritten[20m]) -  increase(kafka_server_brokertopicmetrics_messagesin_total{topic="my_topic"}[20m])

我得到了 No datapoints error .
可能是因为 application_executor_recordsWritten 在过去1小时内收到 kafka_server_brokertopicmetrics_messagesin_total 接收时间超过6小时。
可能是因为这些度量具有不同的“聚集设置”,请考虑普罗米修斯控制台输出:
应用程序\执行器\记录已写入
{app\u name=“app name”,exported\u instance=“application\u111111111”,exported\u job=“application\u111111111”,instance=“xx..x.xx”,job=“job\u name”,number=“1”,role=“executor”}
Kafka\u服务器\u代理\u邮件总数\u
{示例=“xx..x.xx”,作业=“作业名称”,主题=“我的主题”}
普罗米修斯使用 ignore(???) 关键字,但我不知道它是如何工作的,以及如何将它应用于这些度量。
你知道如何实现不同的度量标准吗?正确的语法是什么?

v440hwme

v440hwme1#

在promql中,两个度量范围(aka vectors)之间的算术二进制运算符要进行向量匹配:该操作仅应用于具有相同精确标签集(name和avalue)的条目。
如果存在差异,并且没有值配对,那么您将得到臭名昭著的 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"}[...])

如果运算符的一侧包含的元素应与另一侧的多个元素配对(称为一对多匹配),则必须指示运算符的哪一侧(右侧或左侧)包含更多条目:使用 group_<side:rigth|left> .

相关问题