Prometheus - 计算增加的百分比
Prometheus - calculating the percentage increase
我对使用 Prometheus 指标还很陌生,有人要求我根据某个值在过去五分钟内是否增加了 10% 来编写警报。
为了更简洁,当我的 Kafka 主题死信计数在 5 分钟内增加 10% 时,我必须报告。
我可以使用此查询计算 topic/sub 上的当前死信:
count by(topic) (kafka_burrow_topic_partition_offset{topic=~".+__deadletter__.+my-subscription-name.+"})
我现在需要做的是从 5 分钟前获取相同的数字,然后计算从那时到现在的百分比增加:
Percentage Increase = [ (Final Value - Starting Value) / |Starting Value| ] × 100
谁能指导我如何计算百分比差异?
我见过这样的例子,但无法让它为我工作:
(sum by(topic) (increase(kafka_burrow_topic_partition_offset{topic=~".+__deadletter__.+"}[5m])) > 0)
如果您现在使用以下查询来计算值:
count by(topic) (kafka_burrow_topic_partition_offset{topic=~".+__deadletter__.+my-subscription-name.+"})
那么5分钟前的值可以通过在查询中添加offset 5m
来计算:
count by(topic) (kafka_burrow_topic_partition_offset{topic=~".+__deadletter__.+my-subscription-name.+"} offset 5m)
请注意,offset
修饰符必须紧跟在上述查询中的大括号结束之后。有关详细信息,请参阅 these docs。
鉴于此,以下查询将显示该值在过去 5 分钟内增加的百分比:
(
count by (topic) (
kafka_burrow_topic_partition_offset{topic=~".+__deadletter__.+my-subscription-name.+"}
) - count by (topic) (
kafka_burrow_topic_partition_offset{topic=~".+__deadletter__.+my-subscription-name.+"} offset 5m
)
) / count by (topic) (
kafka_burrow_topic_partition_offset{topic=~".+__deadletter__.+my-subscription-name.+"} offset 5m
) * 100
P.S。请注意,查询包含多个重复部分。这些部分可以从 VictoriaMetrics 简化为以下 MetricsQL query using with templates:
with (
q = count by (topic) (
kafka_burrow_topic_partition_offset{topic=~".+__deadletter__.+my-subscription-name.+"}
)
)
(q - q offset 5m) / (q offset 5m) * 100
我对使用 Prometheus 指标还很陌生,有人要求我根据某个值在过去五分钟内是否增加了 10% 来编写警报。
为了更简洁,当我的 Kafka 主题死信计数在 5 分钟内增加 10% 时,我必须报告。
我可以使用此查询计算 topic/sub 上的当前死信:
count by(topic) (kafka_burrow_topic_partition_offset{topic=~".+__deadletter__.+my-subscription-name.+"})
我现在需要做的是从 5 分钟前获取相同的数字,然后计算从那时到现在的百分比增加:
Percentage Increase = [ (Final Value - Starting Value) / |Starting Value| ] × 100
谁能指导我如何计算百分比差异?
我见过这样的例子,但无法让它为我工作:
(sum by(topic) (increase(kafka_burrow_topic_partition_offset{topic=~".+__deadletter__.+"}[5m])) > 0)
如果您现在使用以下查询来计算值:
count by(topic) (kafka_burrow_topic_partition_offset{topic=~".+__deadletter__.+my-subscription-name.+"})
那么5分钟前的值可以通过在查询中添加offset 5m
来计算:
count by(topic) (kafka_burrow_topic_partition_offset{topic=~".+__deadletter__.+my-subscription-name.+"} offset 5m)
请注意,offset
修饰符必须紧跟在上述查询中的大括号结束之后。有关详细信息,请参阅 these docs。
鉴于此,以下查询将显示该值在过去 5 分钟内增加的百分比:
(
count by (topic) (
kafka_burrow_topic_partition_offset{topic=~".+__deadletter__.+my-subscription-name.+"}
) - count by (topic) (
kafka_burrow_topic_partition_offset{topic=~".+__deadletter__.+my-subscription-name.+"} offset 5m
)
) / count by (topic) (
kafka_burrow_topic_partition_offset{topic=~".+__deadletter__.+my-subscription-name.+"} offset 5m
) * 100
P.S。请注意,查询包含多个重复部分。这些部分可以从 VictoriaMetrics 简化为以下 MetricsQL query using with templates:
with (
q = count by (topic) (
kafka_burrow_topic_partition_offset{topic=~".+__deadletter__.+my-subscription-name.+"}
)
)
(q - q offset 5m) / (q offset 5m) * 100