J05.02.02. Мониторинг образа веб-приложения
Общая информация
В статье пример выполнения мониторинга образа веб-приложения. Приложение имеет клиент Prometheus Go в своем коде.
Необходимые условия перед выполнением мониторинга
Перед выполнением мониторинга:
1. Проверьте, что включена система OpenPitrix.
2. Проверьте, что создано рабочее пространство, проект и пользователь.
3. Учетная запись должна быть обычным пользователем платформы и быть приглашена в рабочее пространство с ролью self-provisioner. Также создайте пользователя workspace-self-provisioner с ролью self-provisioner, и используйте эту учетную запись для создания проекта, например, test. Войдите в систему под ролью workspace-self-provisioner и работайте в тестовом рабочем пространстве проекта.
4. Изучите PromQL и диаграммы Helm.
Пример выполнения мониторинга
Процесс выполнения мониторинга состоит из следующих последовательных шагов:
1. Подготовка образа веб-приложения.
2. Перенос приложения в диаграмму Helm.
3. Загрузка диаграммы Helm.
4. Установка образа веб-приложения.
5. Создание панели мониторинга.
Шаг 1. Подготовка образа веб-приложения
Образ веб-приложения предоставляет пользовательскую метрику с именем myapp_processed_ops_total. Метрика подсчитывает количество обработанных операций. Счетчик автоматически увеличивается на единицу каждые две секунды. Образ приложения предоставляет метрики для конкретного приложения через конечную точку http://localhost:2112/metrics.
В примере готовый образ kubespheredev/promethues-example-app. Исходный код доступен в kubesphere/prometheus-example-app. Вы также можете прочитать о приложении Instrument A Go в официальной документации Prometheus.
Шаг 2. Перенос приложения в диаграмму Helm
1. Перенесите шаблон YAML Deployment, Service и ServiceMonitor в чарты Helm для повторного использования. В шаблоне Deployment and Service template определяется образец веб-контейнера и порт для конечной точки метрик. ServiceMonitor — настраиваемый ресурс, определенный и используемый оператором Prometheus. ServiceMonitor связывает приложение и механизм мониторинга KubeSphere (Prometheus), чтобы механизм знал, где и как собирать метрики.
2. Найдите исходный код в папке helm в kubesphere/prometheus-example-app. Пакет диаграмм Helm называется prometheus-example-app-0.1.0.tgz. Загрузите файл .tgz, который используется на следующем шаге.
Шаг 3. Загрузка диаграммы Helm
1. Перейдите на страницу Overview рабочей области demo-workspace и перейдите к App Templates раздела App Management.
2. Нажмите кнопку Create и загрузите prometheus-example-app-0.1.0.tgz.
Шаг 4. Установка образа веб-приложения
Разверните образ веб-приложения в test. В демонстрационных целях при необходимости запустите тестовое развертывание.
1. Нажмите prometheus-example-app.
2. Разверните меню и нажмите кнопку Install.
3. Убедитесь, что развернули образ веб-приложения в test и нажмите кнопку Next.
4. Убедитесь, что для serviceMonitor.enabled установлено значение true, и нажмите кнопку Install.
5. В Workloads проекта test подождите, пока образ веб-приложения не запустится.
Шаг 5. Создание панели мониторинга
В разделе описывается создание панели мониторинга с нуля. В примере текстовая диаграмма, показывающая общее количество обработанных операций, и линейную диаграмму для отображения скорости операций.
1. Перейдите к Custom Monitoring Dashboards и нажмите кнопку Create.
2. Задайте имя, например, sample-web и нажмите кнопку Next.
3. Введите заголовок в верхнем левом углу, например, Sample Web Overview.
4. Щелкните в левом столбце, чтобы создать текстовую диаграмму.
5. Введите выражение PromQL myapp_processed_ops_total в поле Monitoring Metric и укажите имя диаграммы, например, Operation Count). Далее нажмите кнопку √ в правом нижнем углу.
6. Нажмите кнопку Add Monitoring Item, выберите Line Chart и нажмите кнопку OK.
7. Введите выражение PromQL irate(myapp_processed_ops_total[3m]) для метрики мониторинга и назовите диаграмму Operation Rate. Для улучшения качества установите Metric Name to {{service}}. Metric Name называет каждую строку значением метки метрики service. Затем установите для Decimal Places значение 2, чтобы результат был усечен до двух знаков после запятой. Нажмите √ в правом нижнем углу, чтобы продолжить.
8. Нажмите кнопку Save Template, чтобы сохранить шаблон.