Настройка Grafana#
Grafana визуализирует метрики, которые собирает Prometheus.
При установке системы мониторинга с помощью kube-prometheus-stack Helm развертывает Grafana автоматически и подключает источник данных Prometheus.
Получение доступа к Grafana#
Grafana работает в пространстве имен monitoring.
Для получения доступа к этой системе выполните следующие действия:
Убедитесь, что Grafana pod запущен:
kubectl -n monitoring get pods \ -l app.kubernetes.io/name=grafana
Grafana pod должен находиться в состоянии
Running.Получите название секрета с учетными данными Grafana:
kubectl -n monitoring get secret | grep grafana
Получите пароль администратора:
kubectl -n monitoring get secret kube-prometheus-stack-grafana \ -o jsonpath="{.data.admin-password}" | base64 -d
Настройте локальную переадресацию порта:
kubectl -n monitoring port-forward svc/kube-prometheus-stack-grafana 3000:80
Откройте графическую консоль Grafana, располагающуюся по адресу
http://localhost:3000.Выполните вход:
название учетной записи:
admin;пароль: значение, полученное ранее.
Проверка источника данных Prometheus#
После входа убедитесь, что Grafana получает данные от Prometheus.
Для проверки выполните следующие действия:
Откройте раздел .
Выберите источник данных Prometheus.
Нажмите кнопку Save & test.
Убедитесь, что отображается сообщение, подтверждающее успешное подключение Grafana к Prometheus:
Рекомендуемая структура панелей мониторинга#
Для контроля состояния платформы создайте отдельные панели мониторинга для различных групп компонентов. Такое разделение помогает быстро определять источник проблемы и упрощает анализ производительности системы.
Обзор платформы#
Используйте панель общего состояния платформы как основную страницу мониторинга. На панели мониторинга должны быть следующие показатели:
количество выполняемых заданий;
количество ожидающих заданий;
количество неуспешных заданий;
количество активных узлов;
состояние Gateway;
состояние Event-Driven Automation;
состояние Private Automation Hub.
Добавьте следующие запросы PromQL:
Выполняемые задания:
awx_status_total{status="running"}Запрос возвращает текущее количество выполняемых заданий.
Ожидающие задания:
awx_pending_jobs_total
Запрос возвращает количество заданий, ожидающих запуска.
Неуспешные задания:
awx_status_total{status="failed"}Запрос возвращает количество заданий со статусом
failed.
Разместите эти значения в одной группе визуализаций, чтобы сравнивать текущее выполнение заданий, очередь ожидания и ошибки за один период наблюдения.
Automation Controller#
Используйте панель Automation Controller для анализа нагрузки и производительности платформы. На панели мониторинга должны быть следующие показатели:
емкость узлов;
загрузка очередей;
количество выполняемых заданий;
количество ожидающих заданий;
распределение заданий по состояниям.
Добавьте следующие запросы PromQL:
Доступная емкость узлов:
awx_instance_remaining_capacity
Запрос показывает количество ресурсов, доступных для запуска новых заданий.
Общая емкость узлов:
awx_instance_capacity
Запрос показывает максимальную емкость каждого узла Automation Controller.
Использование емкости:
100 * ( 1 - ( awx_instance_remaining_capacity / awx_instance_capacity ) )Запрос возвращает процент использованной емкости узлов.
Обработка событий#
Используйте панель обработки событий для контроля работы Redis и внутренних очередей Automation Controller. На панели мониторинга должны быть следующие показатели:
размер очереди событий;
скорость обработки событий;
количество ошибок обработки.
Добавьте следующие запросы PromQL:
Размер очереди событий:
callback_receiver_events_queue_size_redis
Запрос показывает количество событий, ожидающих обработки.
Среднее время обработки события:
callback_receiver_event_processing_avg_seconds
Запрос показывает среднее время обработки одного события.
Ошибки обработки за последние 30 минут:
increase(callback_receiver_batch_events_errors[30m])
Запрос показывает количество ошибок обработки за последние 30 минут.
Private Automation Hub#
Используйте панель Private Automation Hub для контроля работы сервиса автоматизации контента. На панели мониторинга должны быть следующие показатели:
количество запросов HTTP;
количество ошибок приложения;
активность импорта коллекций.
Добавьте следующие запросы PromQL:
Скорость обработки запросов HTTP:
rate(django_http_responses_total_by_status_total[5m])
Запрос показывает скорость обработки запросов HTTP.
Скорость появления ошибок уровня
5xx:rate( django_http_responses_total_by_status_total{ status=~"5.." }[5m] )Запрос показывает скорость появления ошибок приложения.
Ошибки импорта коллекций:
increase(galaxy_api_collection_import_failures_total[30m])
Запрос показывает количество ошибок импорта коллекций за последние 30 минут. Рост значения может указывать на проблемы с содержимым коллекций, хранилищем или внешними источниками синхронизации.
Инфраструктура#
Используйте панель инфраструктуры для контроля ресурсов узлов Kubernetes. На панели мониторинга должны быть следующие показатели:
загрузка процессора;
использование памяти;
использование файловых систем;
сетевая активность.
Добавьте следующие запросы PromQL:
Загрузка процессора:
100 * ( 1 - avg by(instance)( rate( node_cpu_seconds_total{ mode="idle" }[5m] ) ) )Запрос показывает процент использования процессора.
Использование памяти:
100 * ( 1 - ( node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes ) )Запрос показывает процент использования оперативной памяти.
Использование файловых систем:
100 * ( 1 - ( node_filesystem_avail_bytes{fstype!~"tmpfs|overlay|squashfs"} / node_filesystem_size_bytes{fstype!~"tmpfs|overlay|squashfs"} ) )Запрос показывает процент использования файловых систем. Рекомендуется исключать временные и служебные файловые системы, например
tmpfs,overlayиsquashfs: на узлах Kubernetes таких монтирований много, и без фильтра панель зашумляется.
Сервисы данных#
Используйте панель сервисов данных для контроля PostgreSQL и Redis.
Метрики PostgreSQL и Redis предоставляют экспортеры postgres_exporter и redis_exporter.
Helm-чарт kube-prometheus-stack не устанавливает эти экспортеры, поэтому разверните их дополнительно, например с помощью Helm-чартов prometheus-community/prometheus-postgres-exporter и prometheus-community/prometheus-redis-exporter, указав в параметрах установки адреса сервисов данных Astra Automation.
Без экспортеров приведенные ниже запросы возвращают пустой результат.
На панели мониторинга должны быть следующие показатели:
количество подключений PostgreSQL;
использование памяти Redis;
доступность сервисов.
Добавьте следующие запросы PromQL:
Подключения PostgreSQL:
pg_stat_activity_count
Запрос показывает текущее количество подключений к PostgreSQL.
Использование памяти Redis:
redis_memory_used_bytes
Запрос показывает текущий объем памяти, который потребляет Redis.
Проверки доступности#
Используйте панель проверок доступности для контроля результатов работы blackbox_exporter.
На панели мониторинга должны быть следующие показатели:
состояние Gateway;
состояние Event-Driven Automation;
время ответа сервисов.
Добавьте следующие запросы PromQL:
Результат проверки:
probe_success
Значение
1означает успешную проверку. Значение0означает ошибку проверки.Время ответа:
probe_duration_seconds
Запрос показывает длительность выполнения проверки.
Проверка настройки Grafana#
После создания панелей убедитесь, что Grafana получает корректные данные.
Для проверки выполните следующие действия:
Откройте любую созданную панель.
Перейдите в режим редактирования визуализации.
Введите в поле запроса PromQL выражение:
up
Убедитесь, что запрос возвращает данные.
Проверьте наличие данных для следующих метрик:
awx_status_total;awx_instance_capacity;callback_receiver_events_queue_size_redis;probe_success.
Если Grafana корректно показывает данные, ее настройка завершена.