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


Сбор метрик Argo CD с помощью управляемой службы для Prometheus

Argo CD — это декларативное средство непрерывной доставки GitOps для Kubernetes. Argo CD следует шаблону GitOps использования репозиториев Git в качестве источника истины для определения требуемых состояний приложения. Он автоматизирует развертывание требуемых состояний приложения в указанных целевых средах. Развертывания приложений могут отслеживать обновления в ветвях или тегах, или закрепляться за определенной версией манифестов в коммите Git.

В этой статье описывается, как настроить функцию управляемой службы Azure Monitor для Prometheus с использованием Службы Azure Kubernetes (AKS) и Kubernetes с поддержкой Azure Arc для мониторинга Argo CD путём сбора метрик Prometheus.

Предварительные условия

  • Argo CD, работающий на AKS или Kubernetes с поддержкой Azure Arc
  • Управляемая услуга Prometheus включена в кластер. Для получения дополнительной информации см. Enable Prometheus and Grafana.

Развертывание средств мониторинга услуг

Разверните следующие мониторы служб, чтобы настроить управляемую службу для надстройки Prometheus для удаления метрик Prometheus из рабочей нагрузки Argo CD.

Примечание.

Укажите правильные метки в matchLabels для мониторов служб, если они не соответствуют настроенным в примере.

apiVersion: azmonitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: azmon-argocd-metrics
spec:
  labelLimit: 63
  labelNameLengthLimit: 511
  labelValueLengthLimit: 1023
  selector:
    matchLabels:
     app.kubernetes.io/name: argocd-metrics
  namespaceSelector:
    any: true
  endpoints:
  - port: metrics
---
apiVersion: azmonitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: azmon-argocd-repo-server-metrics
spec:
  labelLimit: 63
  labelNameLengthLimit: 511
  labelValueLengthLimit: 1023
  selector:
    matchLabels:
      app.kubernetes.io/name: argocd-repo-server
  namespaceSelector:
    any: true
  endpoints:
  - port: metrics
---
apiVersion: azmonitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: azmon-argocd-server-metrics
spec:
  labelLimit: 63
  labelNameLengthLimit: 511
  labelValueLengthLimit: 1023
  selector:
    matchLabels:
      app.kubernetes.io/name: argocd-server-metrics
  namespaceSelector:
    any: true
  endpoints:
  - port: metrics

Примечание.

Если вы хотите настроить любые другие службы или мониторы подов, следуйте этим инструкциям.

Применить правила

  1. Скачайте файл шаблона и файл параметров для правил оповещения.

  2. Измените следующие значения в файле параметров.

    Параметр Значение
    azureMonitorWorkspace Идентификатор ресурса для рабочей области Azure Monitor. Извлеките его из JSON view на странице Overview в рабочем пространстве Azure Monitor.
    location Расположение рабочей области Azure Monitor. Извлеките его из JSON view на странице Overview в рабочем пространстве Azure Monitor.
    clusterName Имя кластера AKS. Получите это из JSON-вида на странице Обзор для кластера.
    actionGroupId Идентификатор ресурса для группы оповещений. Получите его из JSON view на странице Обзор для группы действий. Узнайте больше о группах действий.
  3. Разверните шаблон с помощью стандартных методов для установки шаблонов Azure Resource Manager. Для получения рекомендаций см. примеры шаблонов Resource Manager для Azure Monitor.

  4. После развертывания шаблона вы можете просмотреть правила в портале Azure, как описано в Просмотр групп правил Prometheus. Проверьте пороговые значения для оповещений, чтобы убедиться, что они соответствуют вашим кластерам и рабочей нагрузке. Обновите пороговые значения соответственно.

    Примечание.

    Правила не ограничены кластером. Если вы хотите ограничить правила конкретным кластером, смотрите Ограничение правил конкретным кластером.

Вы можете узнать больше о предупреждениях Prometheus. Если вы хотите использовать любые другие правила оповещения/записи Prometheus с открытым исходным кодом, используйте az-prom-rules-converter для создания эквивалентных правил Prometheus для Azure.

Импортируйте панель управления Grafana

Чтобы импортировать панель мониторинга Grafana для Argo CD (id 14191) с помощью идентификатора или JSON, следуйте инструкциям в статье "Импорт панели мониторинга из Grafana Labs".

Устранение неполадок

При успешном применении мониторов служб, если вы хотите убедиться, что надстройка выбирает целевые объекты монитора служб, следуйте этим инструкциям.