J05.02.02. Мониторинг образа веб-приложения

Редактировал(а) Ирина Сафонова 08.01.2024, 00:00

Общая информация


В статье пример выполнения мониторинга образа веб-приложения. Приложение имеет клиент 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. Щелкните   icon в левом столбце, чтобы создать текстовую диаграмму.
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, чтобы сохранить шаблон.

В начало 🡱
К следующему разделу 🡲
К предыдущему разделу 🡰