1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/kusionstack-kusion-in-action-book

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
ch4.2-monitor.md 4.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 07:05 e316555

4.2. Настройка мониторинга для приложения

В этом разделе мы покажем, как настроить мониторинг для приложения с помощью Prometheus и отслеживать его состояние.

4.2.1. Подготовка

Мы продемонстрируем следующие шаги: инициализацию конфигурации кода, включение мониторинга и просмотр панели мониторинга. Перед началом работы необходимо установить KusionCtl, Minikube и kube-prometheus.

4.2.2. Инициализация кода конфигурации

Инициализируйте код с помощью инструмента командной строки 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, что увеличит соответствующий счётчик.

4.2.3. Включение конфигурации

Включите конфигурацию, установив 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
}

Настройте порт веб-службы.

4.2.4. Просмотр панели мониторинга

Разверните конфигурацию с помощью команды 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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/kusionstack-kusion-in-action-book.git
git@api.gitlife.ru:oschina-mirror/kusionstack-kusion-in-action-book.git
oschina-mirror
kusionstack-kusion-in-action-book
kusionstack-kusion-in-action-book
main