У выражения Прометея есть данные, но у правила для этого выражения нет данных - PullRequest
0 голосов
/ 17 января 2019

У меня есть выражение прометея:

(
  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, однако у меня есть правило, которое оценивает это точное выражение:

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

Это правило всегда возвращает «точки данных не найдены» в интерфейсе пользователя Prometheus.

Почему это?

глобальный интервал очистки и оценки - 15 с

1 Ответ

0 голосов
/ 17 января 2019

Правила Prometheus оценивают в текущее время , данные облачных часов часто очень сильно задерживаются, поэтому, хотя вы можете получить график исторических данных, значение текущих данных всегда равно нулю.

Вы можете исправить это, добавив смещение, например:

(
  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
)
...