#kubernetes #prometheus
#kubernetes #prometheus
Вопрос:
Мои показатели очищаются каждые 30 секунд, хотя я указал интервал в 10 секунд при определении моего servicemonitor.
Я создал servicemonitor для своего экспортера, который, похоже, работает хорошо. Я могу видеть своего экспортера в качестве цели и просматривать показатели в конечной точке / graph. Однако, когда на странице «цели» «последняя очистка» показывает интервал как 30 секунд (я обновляю страницу, чтобы увидеть, до какого количества секунд увеличится, это было 30). Конечно же, увеличение масштаба графика показывает, что показатели поступают каждые 30 секунд.
Я установил интервал моего servicemonitor равным 10 секундам, что должно переопределять любые другие интервалы. Почему это игнорируется?
endpoints:
- port: http-metrics
scheme: http
interval: 10s
Ответ №1:
Во-первых: дважды проверьте, изменили ли вы ServiceMonitor, который вам нужно изменить, и просматриваете ли вы ошибки в своем ServiceMonitor.
Перейдите в веб-интерфейс вашего prometheus и выберите Статус -> Конфигурация. Теперь попробуйте найти часть конфигурации, созданной оператором prometheus (на основе конфигурации ServiceMonitor). Вероятно, поиск по имени servicemonitor будет работать — там должен быть раздел, job_name
содержащий ваше имя servicemonitor.
Теперь посмотрите на scrape_interval
значение в этом разделе. Если это «30 секунд» (или что-то еще, что не является ожидаемым «10 секунд»), и вы уверены, что смотрите на правильный раздел, то это означает, что произошла одна из этих вещей:
- ваш ServiceMonitor на самом деле не содержит «10s» — возможно, он был применен неправильно? Проверьте живой объект в вашем кластере
- prometheus-оператор не обновил конфигурацию Prometheus — может быть, она не работает? или это сбой? или просто молча перестал работать? Вполне безопасно просто перезапустить модуль prometheus-operator, возможно, стоит попробовать.
- prometheus неправильно загрузил новую конфигурацию? оператор prometheus обновляет секрет, и когда он изменяется, sidecar в prometheus pod запускает перезагрузку в prometheus. Может быть, это не сработало? Посмотрите еще раз в веб-интерфейсе в Status -> Runtime amp; Build information для «перезагрузки конфигурации». Это успешно? Соответствует ли время «Последней успешной перезагрузки конфигурации» примерно вашему изменению в servicemonitor? Если это не было «Успешным», то, возможно, какое-то другое изменение сделало окончательную конфигурацию promethuus неверной, и она не может ее загрузить?
Комментарии:
1. Когда я запускаю описание kubectl на своем сервисном мониторе, я могу подтвердить, что оно установлено на 10 секунд. Перезапуск модуля prometheus, как ни странно, также не изменяет время очистки. Он сохраняет все, что было в предыдущее время очистки.
2. Я понятия не имею, как он продолжает определять, каким был старый интервал очистки, даже когда он был удален, и от него не должно быть никаких следов. Как он мог его запомнить, если и модуль, и servicemonitor были удалены? Сохраняет ли каким-либо образом набор с отслеживанием состояния эту информацию?
3. Объекты ServiceMonitor считываются,
prometheus-operator
а не prometheus напрямую. затем prometheus-operator обновляет секретный объект конфигурацией prometheus на основе ServiceMonitors, которые он обрабатывает. Вы можете перезапустить модуль prometheus-operator, это безопасно. Может быть, он даже не запущен? Это объясняет отсутствие обновлений в вашей конфигурации Другая проблема, с которой вы могли столкнуться, заключается в том, что prometheus-operator настроен на поиск объектов ServiceMonitor только в некоторых пространствах имен, и вы использовали другое.
Ответ №2:
Если я правильно понимаю, в соответствии с настройкой интервала запросов Grafana с помощью Prometheus, это работает так, как ожидалось
Это работает так, как задумано. Это потому, что Grafana выбирает размер шага, и пока этот шаг не будет завершен, он не будет отображать новые данные, или, скорее, Prometheus не вернет новую точку данных. Итак, все работает так, как ожидалось. Вам нужно будет выровнять размер шага, чтобы он был меньше, чтобы быстрее просматривать больше данных. Интерфейс Prometheus динамически задает шаг, поэтому вы получаете другой результат.
Это конфигурация каждой панели Grafana
Сама Grafana не рекомендует использовать интервалы менее 30 секунд, вы можете найти разумное объяснение в разделе Проблемы с частотой обновления панели мониторинга на странице документации Grafana по устранению неполадок панелей мониторинга
Проблемы с частотой обновления панели мониторинга По умолчанию Grafana запрашивает ваш источник данных каждые 30 секунд. Установка низкой частоты обновления на ваших информационных панелях создает ненужную нагрузку на серверную часть. Во многих случаях часто запрашивать это не имеет смысла, поскольку данные не отправляются в систему, чтобы изменения были видны.
Мы рекомендуем следующее:
- Не включайте автоматическое обновление для панелей мониторинга, панелей или переменных, если вам это не нужно. Пользователи могут обновлять свой браузер вручную, или вы можете установить частоту обновления для периода времени, который имеет смысл (каждые десять минут, каждый час и так далее).
- Если это требуется, установите частоту обновления один раз в минуту. Опять же, пользователи всегда могут обновить панель мониторинга вручную.
- Если ваша панель мониторинга имеет более длительный период времени (например, неделю), то вам действительно не нужно автоматическое обновление.
Для получения дополнительной информации вы также можете посетить все еще открыт Указать желаемый шаг в Prometheus в панели инструментов панели github вопрос.