В этом разделе мы покажем, как настроить мониторинг для приложения с помощью Prometheus и отслеживать его состояние.
Мы продемонстрируем следующие шаги: инициализацию конфигурации кода, включение мониторинга и просмотр панели мониторинга. Перед началом работы необходимо установить KusionCtl, Minikube и kube-prometheus.
Инициализируйте код с помощью инструмента командной строки kusion:
$ kusion init
✔ Server
project name: prometheus-example-app
stack name: prod
cluster name: default
image: quay.io/brancz/prometheus-example-app:v0.3.0
Здесь quay.io/brancz/prometheus-example-app:v0.3.0
— это образ приложения, который можно найти по ссылке: https://github.com/brancz/prometheus-example-app.
Это приложение является примером того, как использовать Prometheus для лёгкого мониторинга HTTP-обработчиков. Оно использует клиент Prometheus на Go для прослушивания локального порта 8080 и создания нового реестра Prometheus.
Конкретные метрики мониторинга включают:
/
будет генерировать ответ с кодом состояния 200, что увеличит счётчик для этого кода состояния;/err
будет генерировать ответ с кодом состояния 404, что увеличит соответствующий счётчик.Включите конфигурацию, установив enableMonitoring
в значение True
, и добавьте номер основного порта контейнера 8080. Код выглядит следующим образом:
import base.pkg.kusion_models.kube.frontend
import base.pkg.kusion_models.kube.frontend.container
import base.pkg.kusion_models.kube.frontend.container.env as e
import base.pkg.kusion_models.kube.frontend.container.port as cp
import base.pkg.kusion_models.kube.frontend.container.probe as p
# Конфигурация приложения в стеке перезапишет конфигурацию с тем же атрибутом в базе.
appConfiguration: frontend.Server {
# Основная конфигурация контейнера
mainContainer: container.Main {
name = "prometheus-example-app"
ports = [
cp.ContainerPort {
name = "web"
containerPort = 8080
}
]
}
enableMonitoring = True
}
Настройте порт веб-службы.
Разверните конфигурацию с помощью команды kusion apply
:
SUCCESS Compiling in stack prod...
Stack: prod Provider Type Name Plan
* ├─ kubernetes v1:Namespace prometheus-example-app[0] Create
* ├─ kubernetes monitoring.coreos.com/v1:PodMonitor prometheus-example-appprod[0] Create
* └─ kubernetes apps/v1:Deployment prometheus-example-appprod[0] Create
Вы можете видеть, что помимо развёртывания ресурсов Kubernetes Deployment
и Namespace
, также развёрнут ресурс PodMonitor
для настройки мониторинга Prometheus за Pod приложения. Когда все ресурсы будут созданы, вы можете просмотреть панель мониторинга Prometheus, используя следующую команду:
kubectl --namespace monitoring port-forward svc/prometheus-k8s 9090
Наконец, посетите панель мониторинга по адресу http://localhost:9090 и просмотрите метрики мониторинга приложения.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )