2.2. Argo CD インスタンスのモニタリング
デフォルトでは、Red Hat OpenShift GitOps Operator は、定義された namespace (例: openshift-gitops
) にインストールされている Argo CD インスタンスを自動的に検出し、これをクラスターのモニタリングスタックに接続して、非同期アプリケーションに対するアラートを提供します。
2.2.1. 前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
- Red Hat OpenShift GitOps Operator がクラスターにインストールされている。
-
定義した namespace (たとえば
openshift-gitops
) に Argo CD アプリケーションをインストールしている。
2.2.2. Prometheus メトリクスを使用した Argo CD ヘルスのモニタリング
Prometheus メトリクスクエリーを実行して、Argo CD アプリケーションのヘルスステータスをモニタリングできます。
手順
-
Web コンソールの Developer パースペクティブで、Argo CD アプリケーションがインストールされている namespace を選択し、Observe
Metrics に移動します。 - Select query ドロップダウンリストから、Custom query を選択します。
Argo CD アプリケーションのヘルスステータスを確認するには、Expression フィールドに、次の例のような Prometheus Query Language (PromQL) クエリーを入力します。
例
sum(argocd_app_info{dest_namespace=~"<your_defined_namespace>",health_status!=""}) by (health_status) 1
- 1
<your_define_namespace>
変数を、定義した namespace の実際の名前 (openshift-gitops
など) に置き換えます。
2.2.3. Argo CD インスタンスのメトリクスの自動スクレイピングを無効にする
デフォルトでは、Red Hat OpenShift GitOps Operator は、すべての Argo CD インスタンスのメトリクスを自動的に収集してパフォーマンスを測定します。その結果、Operator は、Argo CD インスタンスがインストールされている namespace に次のリソースとラベルを作成します。
-
gitops-operator-argocd-alerts
Prometheus ルール -
<argocd_namespace>-read
ロール -
<argocd_name>
、<argocd_name>-repo-server
、および<argocd_name>-server
サービスモニター -
<argocd_namespace>-prometheus-k8s-read-binding
ロールバインディング -
openshift.io/cluster-monitoring=true
ラベル
クラスター内の複数の Argo CD インスタンスのメトリクスをスクレイピングすると、ストレージの使用量が過剰になる可能性があります。予防策として、Web コンソールの YAML ビューを使用して ArgoCD
カスタムリソース (CR) を設定し、Argo CD インスタンスのメトリクスの自動スクレイピングを無効にします。
クラスター管理者は、個々のインスタンスのメトリクススクレイピングを無効にすることで、定義された namespace を管理するための制御性、柔軟性、安定性をユーザーに提供できます。
手順
- OpenShift Container Platform Web コンソールにログインします。
-
Web コンソールの Administrator パースペクティブで、Operators
Installed Operators の順にクリックします。 - Project リストから、ユーザー定義の Argo CD インスタンスがインストールされているプロジェクトを選択します。
- インストールされた Operator のリストから Red Hat OpenShift GitOps を選択し、Argo CD タブに移動します。
- ユーザー定義の Argo CD インスタンスをクリックします。
ユーザー定義の Argo CD インスタンスの
ArgoCD
CR を設定して、メトリクスの自動スクレイピングを無効にします。-
YAML タブをクリックし、
ArgoCD
CR の YAML ファイルを編集します。 ArgoCD
CR で、spec.monitoring.disableMetrics
フィールドの値をtrue
に設定します。ArgoCD
CR の例apiVersion: argoproj.io/v1beta1 kind: ArgoCD metadata: name: example 1 namespace: spring-petclinic 2 spec: monitoring: disableMetrics: true
ヒントまたは、Red Hat OpenShift GitOps
argocd
CLI でメトリクスの自動スクレイピングを無効にするには、次のコマンドを使用します。コマンドの例
$ oc patch argocd example -n spring-petclinic --type='json' -p='[{"op": "replace", "path": "/spec/monitoring/disableMetrics", "value": true}]'
出力例
argocd.argoproj.io/example patched
-
YAML タブをクリックし、
Operator が定義した namespace に
openshift.io/cluster-monitoring=false
ラベルを追加したことを確認します。Administration
Namespaces に移動します。 Namespaces ページには、作成された namespace が表示されます。
-
定義した namespace をクリックし、YAML タブに移動して、
metadata.labels
セクションの下に、Operator によってopenshift.io/cluster-monitoring=false
ラベルが追加されていることを確認します。
Operator が定義した namespace から次のリソースを削除することを確認します。
-
Home
Search に移動します。 Resources リストから、PrometheusRule、Role、RoleBinding、ServiceMonitors を選択します。
Search ページには選択したリソースが表示されます。
-
Search ページで、PrometheusRule セクションで、
gitops-operator-argocd-alerts
prometheus ルールが削除されていることを確認します。 - Roles セクションの Filter リストから、Namespace Roles を選択します。
-
<argocd_namespace>-read
ロールが削除されていることを確認します。 - RoleBindings セクションの Filter リストから、Namespace RoleBindings を選択します。
-
<argocd_namespace>-prometheus-k8s-read-binding
ロールバインディングが削除されていることを確認します。 -
ServiceMonitors セクションで、
<argocd_name>
、<argocd_name>-repo-server
、および<argocd_name>-server
サービスモニターが削除されていることを確認します。
-
Home
spec.monitoring.disableMetrics
フィールドの値を false
に変更することで、インスタンスのメトリクスを有効にできます。次に、Operator は必要なロール、ロールバインディング、およびサービスモニターを作成し、定義された namespace に openshift.io/cluster-monitoring=true
ラベルを追加します。