Prometheus表达式有数据,但是该表达式的规则没有数据

时间:2019-01-17 15:16:51

标签: prometheus

我有一个普罗米修斯表情:

(
  max(aws_sqs_approximate_number_of_messages_visible_average{queue_name="queue-1"}) 
+ max(aws_sqs_approximate_number_of_messages_not_visible_average{queue_name="queue-2"})) 
/ sum(kube_pod_container_status_ready{container="worker"}
)

在prometheus UI中可以正确评估哪个值,但是我有一条规则可以对此精确表达式求值:

- name: tasks
  rules:
  - expr: <expr>
    labels:
      deployment: worker
      kubernetes_name: worker 
      kubernetes_namespace: default
      namespace: default
    record: app:tasks_per_worker

此规则始终在Prometheus UI中返回“未找到数据点”。

这是为什么?

全局刮擦和评估间隔均为15s

1 个答案:

答案 0 :(得分:0)

普罗米修斯规则在当前时间评估 ,cloudwatch数据通常会非常延迟,因此尽管您可以获得历史数据图,但当前数据的值始终为空。

您可以通过添加偏移量来修复它,例如:

(
  max(aws_sqs_approximate_number_of_messages_visible_average{queue_name="queue-1"} offset 10m) 
+ max(aws_sqs_approximate_number_of_messages_not_visible_average{queue_name="queue-2"}) offset 10m) 
/ sum(kube_pod_container_status_ready{container="worker"} offset 10m
)