#prometheus #grafana #prometheus-alertmanager #promql
#prometheus #графана #prometheus-alertmanager #promql
Вопрос:
Я пытаюсь отслеживать контейнеры docker, но у меня возникают проблемы при выполнении запроса для отслеживания того, сколько минут контейнер работает в день
count(rate(container_last_seen{id=~"/docker/.*",instance=~"$node"}[1d]))
это мой запрос, чтобы показать, сколько контейнеров выполняется за день, но я не знаю, как отслеживать, сколько минут контейнер выполняется за день
Комментарии:
1. Добро пожаловать в Stack Overflow. Пожалуйста, добавьте краткое описание, код, ошибки ваших поисковых / исследовательских работ, как предлагается.
Ответ №1:
Если вы знаете интервал между точками данных для container_last_seen
метрики (он известен как scrape_interval
и обычно настраивается в конфигурационном файле Prometheus), то следующий запрос можно использовать для вычисления продолжительности в секундах, когда контейнер выполнялся в течение последнего дня:
count_over_time(
(changes(container_last_seen{id=~"/docker/.*",instance=~"$node"}[<3*scrape_interval>])>0)
[1d:<3*scrape_interval>]
)*<3*scrape_interval>
Например, если scrape_interval
равно 10s
, то запрос будет выглядеть так:
count_over_time(
(changes(container_last_seen{id=~"/docker/.*",instance=~"$node"}[30s])>0)
[1d:30s]
)*30
Этот запрос использует подзапросы PromQL для вычисления количества 30s
интервалов, когда container_last_seen
временные ряды имели хотя бы одно изменение.