考虑度量示例:
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(???)
关键字,但我不知道它是如何工作的,以及如何将它应用于这些度量。
你知道如何实现不同的度量标准吗?正确的语法是什么?
1条答案
按热度按时间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
; 可能是:如果运算符的一侧包含的元素应与另一侧的多个元素配对(称为一对多匹配),则必须指示运算符的哪一侧(右侧或左侧)包含更多条目:使用
group_<side:rigth|left>
.