次の方法で共有


Prometheus のマネージド サービスを使用して Argo CD メトリックを収集する

Argo CD は、Kubernetes 用の宣言型 GitOps 継続的デリバリー ツールです。 Argo CD は、目的のアプリケーションの状態を定義するための信頼のソースとして Git リポジトリを使用する GitOps パターンに従います。 指定したターゲット環境での目的のアプリケーション状態のデプロイが自動化されます。 アプリケーションのデプロイでは、ブランチまたはタグの更新を追跡することも、Git コミットで特定のバージョンのマニフェストにピン留めすることもできます。

この記事では、 Prometheus メトリックをスクレイピングして Argo CD を監視するように、Azure Kubernetes Service (AKS) と Azure Arc 対応 Kubernetes を使用して Prometheus 用の Azure Monitor マネージド サービスを構成する方法について説明します。

前提条件

  • AKS または Azure Arc 対応 Kubernetes で実行されている Argo CD
  • クラスターで有効になっている Prometheus のマネージド サービス。 詳細については、「 Prometheus と Grafana を有効にする」を参照してください。

サービス モニターをデプロイする

次のサービス モニターをデプロイして、Argo CD ワークロードから Prometheus メトリックをスクレイピングするように Prometheus アドオンのマネージド サービスを構成します。

サンプルで構成されているラベルと一致しない場合は、サービス モニターの 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 ワークスペースのリソース ID。 Azure Monitor ワークスペースの [概要] ページの JSON ビューから取得します。
    location Azure Monitor ワークスペースの場所。 Azure Monitor ワークスペースの [概要] ページの JSON ビューから取得します。
    clusterName AKS クラスターの名前。 クラスターの [概要] ページの JSON ビューから取得します。
    actionGroupId アラート アクション グループのリソース ID。 アクション グループの [概要] ページの JSON ビューから取得します。 アクション グループの詳細を確認します。
  3. Azure Resource Manager テンプレートをインストールするための標準的な方法を使用して、テンプレートをデプロイします。 ガイダンスについては、 Azure Monitor の Resource Manager テンプレートのサンプルを参照してください。

  4. テンプレートをデプロイした後、「 Prometheus ルール グループの表示」の説明に従って、Azure portal でルールを表示できます。 アラートのしきい値を確認して、クラスターとワークロードに合っていることを確認します。 それに応じてしきい値を更新します。

    ルールのスコープはクラスターに限定されません。 ルールのスコープを特定のクラスターに設定する場合は、「ルール を特定のクラスターに制限する」を参照してください。

Prometheus アラートの詳細を確認できます。 他のオープンソースの Prometheus アラート/記録ルールを使用する場合は、 az-prom-rules-converter を使用して、Azure と同等の Prometheus ルールを作成します。

Grafana ダッシュボードをインポートする

ID または JSON を使用して Argo CD (ID 14191) 用の Grafana ダッシュボード をインポートするには、「 Grafana Labs からダッシュボードをインポートする」の手順に従います。

トラブルシューティング

サービス モニターが正常に適用されたら、アドオンがサービス モニター ターゲットを確実に選択できるようにする場合は、 次の手順に従います。