Поделиться через


Мониторинг метрик контроллера ingress-nginx в надстройке маршрутизации приложений с помощью Prometheus и Grafana

Контроллер ingress-nginx в надстройке маршрутизации приложений предоставляет множество метрик для запросов, процесса nginx и контроллера, который может быть полезным для анализа производительности и использования приложения.

Модуль маршрутизации приложений предоставляет конечную точку метрик Prometheus на порту 10254 и частную службу /metrics.

Prerequisites

Проверка конечной точки метрик

Чтобы проверить, собираются ли метрики, можно настроить перенаправление порта с локального порта на порт 10254 на службе nginx-metrics.

kubectl port-forward -n app-routing-system service/nginx-metrics :10254
Forwarding from 127.0.0.1:43307 -> 10254
Forwarding from [::1]:43307 -> 10254

Запишите локальный порт (43307 в данном случае) и откройте http://localhost:43307/metrics в браузере. Вы должны увидеть загрузку метрик контроллера ingress-nginx.

Снимок экрана: метрики Prometheus в браузере.

Теперь можно завершить port-forward процесс, чтобы закрыть переадресацию.

Настройка управляемой службы Azure Monitor для Prometheus

Управляемая служба Azure Monitor для Prometheus — это полностью управляемая служба, совместимая с Prometheus, которая поддерживает стандартные отраслевые функции, такие как PromQL, панели мониторинга Grafana и оповещения Prometheus. Эта служба требует настройки надстройки метрик для агента Azure Monitor, который отправляет данные в Prometheus. Если ваш кластер не настроен с помощью дополнения, вы можете воспользоваться этой статьей, чтобы настроить службу Azure Kubernetes (AKS) для отправки данных в управляемую службу Azure Monitor для Prometheus.

Включение очистки на основе монитора служб

После обновления кластера с помощью агента Azure Monitor необходимо настроить агент, чтобы включить сбор данных с конечной точки метрик. Для этого можно создать pod или монитор службы .

Ниже осуществляется сбор метрик Мониторинга службы контроллером ingress-nginx, развернутым надстройкой для маршрутизации приложений.

kubectl apply -f - <<EOF
apiVersion: azmonitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: nginx-monitor
  namespace: app-routing-system
spec:
  labelLimit: 63
  labelNameLengthLimit: 511
  labelValueLengthLimit: 1023
  selector:
    matchLabels:
      app.kubernetes.io/component: ingress-controller
      app.kubernetes.io/managed-by: aks-app-routing-operator
      app.kubernetes.io/name: nginx
  endpoints:
  - port: prometheus
EOF

Через несколько минут pods в пространстве имен ama-metrics должны перезапуститься и применить новую конфигурацию.

Просмотр визуализации метрик в Управляемой Grafana Azure

Теперь, когда у вас есть управляемая служба Azure Monitor для Prometheus и Azure Managed Grafana, вы должны получить доступ к управляемому экземпляру Grafana.

Существуют две официальные панели мониторинга ingress-nginx, которые можно скачать и импортировать в экземпляр Grafana.

  • Панель мониторинга контроллера Ingress-nginx
  • Панель мониторинга производительности обработки запросов

Панель мониторинга контроллера Ingress-nginx

Эта панель мониторинга обеспечивает видимость объёма запросов, подключений, показателей успешности, перезагрузки конфигурации и несинхронизированных конфигураций. Вы также можете использовать её для просмотра нагрузки сетевого ввода-вывода, использования памяти и ЦП контроллера входящего трафика. Наконец, он также показывает время отклика P50, P95 и P99 percentile для ваших входящего трафика и их пропускной способности.

Эту панель мониторинга можно скачать на сайте GitHub.

Снимок экрана: браузер с панелью мониторинга ingress-nginx на Grafana.

Панель мониторинга производительности обработки запросов

Эта панель мониторинга обеспечивает видимость производительности обработки запросов для различных конечных точек входящего трафика, которые являются конечными точками ваших приложений, в которые контроллер входящего трафика перенаправляет трафик. В нем показаны процентили P50, P95 и P99 для общего времени запросов и времени исходящих откликов. Вы также можете просматривать статистические данные об ошибках запроса и задержках. Используйте эту панель мониторинга для просмотра и повышения производительности и масштабируемости приложений.

Эту панель мониторинга можно скачать на сайте GitHub.

Снимок экрана: браузер, на котором показана панель мониторинга производительности запросов ingress-nginx в Grafana.

Импорт панели мониторинга

Чтобы импортировать панель мониторинга Grafana, разверните меню слева и щелкните "Импортировать " в разделе "Панели мониторинга".

Снимок экрана браузера, показывающего экземпляр Grafana с выделенной опцией

Затем отправьте нужный файл панели мониторинга и нажмите кнопку "Загрузить".

Снимок экрана: браузер с диалоговым окном импорта экземпляра Grafana.

Дальнейшие шаги