このページでは、Config Sync から Cloud Monitoring に指標を送信する方法について説明します。
Config Sync は、OpenTelemetry を使用して指標を作成、記録、エクスポートします。このページでは、Cloud Monitoring の指標を構成する方法について説明します。指標をエクスポートするその他の方法については、Prometheus を使用して Config Sync をモニタリングする、またはカスタム モニタリングを使用して Config Sync をモニタリングするをご覧ください。
Cloud Monitoring 指標を構成するには、プロジェクトに対する iam.serviceAccounts.setIamPolicy
権限が必要です。これらの指標を表示する例については、デバッグ手順の例をご覧ください。これらの指標は、Metrics Explorer または Cloud Monitoring API を使用して表示できます。
Cloud Monitoring に指標書き込み権限を付与する
Cloud Monitoring を Config Sync 用に構成するには、プロジェクトのサービス アカウントに指標の書き込み権限を付与する必要があります。必要な権限は、Workload Identity Federation for GKE が有効になっているかどうかによって異なります。
Workload Identity Federation for GKE を使用して Cloud Monitoring を構成する
Workload Identity Federation for GKE が有効になっている場合は、次のコマンドを実行して Config Sync に指標の送信を許可します。
gcloud projects add-iam-policy-binding PROJECT_ID \
--role=roles/monitoring.metricWriter \
--member="serviceAccount:PROJECT_ID.svc.id.goog[config-management-monitoring/default]"
PROJECT_ID
は、クラスタのプロジェクト ID に置き換えます。
Workload Identity Federation for GKE を使用せずに Cloud Monitoring を構成する
Workload Identity Federation for GKE が有効になっておらず、Config Sync が Google Cloud 環境内で実行されている場合は、Compute Engine のデフォルトのサービス アカウントを使用できます。編集者のロール(roles/editor
)の自動付与が無効になっている場合は、次のコマンドを実行して、サービス アカウントにモニタリング指標の書き込み(roles/monitoring.metricWriter
)IAM ロールを付与します。
gcloud projects add-iam-policy-binding PROJECT_ID \
--role=roles/monitoring.metricWriter \
--member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com
次のように置き換えます。
PROJECT_ID
: プロジェクト ID。PROJECT_NUMBER
: プロジェクトの番号。
Cloud Monitoring のデフォルトの指標リスト
名前 | タイプ |
---|---|
api_duration_seconds | 分布 |
apply_duration_seconds | 分布 |
apply_operations_total | カウント |
declared_resources | 前回の値 |
internal_errors_total | カウント |
last_sync_timestamp | 前回の値 |
pipeline_error_observed | 前回の値 |
reconciler_errors | 前回の値 |
resource_fights_total | カウント |
reconcile_duration_seconds | 分布 |
resource_group_total | 前回の値 |
resource_count | 前回の値 |
ready_resource_count | 前回の値 |
resource_ns_count | 前回の値 |
cluster_scoped_resource_count | 前回の値 |
kcc_resource_count | ゲージ |
Cloud Monitoring の指標の許可リストを変更するには、ConfigMap を使用して Otel コレクタのデプロイにパッチを適用します。
Cloud Monitoring のデバッグ手順の例
次の Cloud Monitoring の例は、RootSync API と RepoSync API を使用している場合に Config Sync に関連する問題を検出して診断するために OpenCensus 指標を使用するパターンを示しています。
指標の形式
Cloud Monitoring では、指標は custom.googleapis.com/opencensus/config_sync/METRIC
の形式になります。
この指標名は、次のコンポーネントで構成されています。
custom.googleapis.com
: すべてのカスタム指標には、この接頭辞が使用されますopencensus
: Config Sync は OpenCensus ライブラリを使用するため、この接頭辞が追加されます。config_sync/
: Config Sync が Cloud Monitoring にエクスポートする指標には、この接頭辞が使用されます。METRIC
: クエリ対象の指標の名前
リコンサイラで指標をクエリする
RootSync オブジェクトと RepoSync オブジェクトは概要レベルの指標でインストルメント化されています。これは、クラスタ上で Config Sync がどのように機能しているかを理解する際に役立ちます。ほとんどの指標は調整ツール名でタグ付けされるため、エラーが発生したかどうかを確認できます。こうした指標に対して、Cloud Monitoring でアラートを設定することもできます。
Reconciler は、Deployment としてデプロイされる Pod であり、信頼できる情報源からクラスタにマニフェストを同期します。RootSync オブジェクトを作成すると、RootSync の名前が root-sync
の場合、Config Sync によって root-reconciler-ROOT_SYNC_NAME
または root-reconciler
という Reconciler が作成されます。RepoSync オブジェクトを作成すると、RepoSync の名前が repo-sync
の場合、Config Sync によって ns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
または ns-reconciler-NAMESPACE
という Reconciler が作成されます。ここで、NAMESPACE
は、RepoSync オブジェクトを作成した Namespace です。
次の図は、信頼できる情報源が Git リポジトリである場合に Reconciler Pod がどのように機能するかを示しています。
たとえば、Cloud Monitoring を使用しているときに調整ツール名でフィルタするには、次のタスクを行います。
Google Cloud Console で [Monitoring] に移動します。
[Monitoring] のナビゲーション パネルで、leaderboard [Metrics Explorer] をクリックします。
[指標の選択] プルダウン リストで、
custom.googleapis.com/opencensus/config_sync/reconciler_errors
を追加します。[フィルタ] プルダウン リストで [reconciler] を選択します。フィルタ フィールド ボックスが表示されます。
フィルタ フィールド ボックスの最初のフィールドで [=] を選択し、2 番目のフィールドで Reconciler 名(
root-reconciler
など)を選択します。[適用] をクリックします。
これで、RootSync オブジェクトの指標を確認できます。
特定のデータタイプでフィルタする手順については、データのフィルタリングをご覧ください。
コンポーネントとステータスで Config Sync オペレーションをクエリする
RootSync API と RepoSync API を有効にしている場合、信頼できる情報源からの読み込みとソース作成、およびクラスタとの同期は、Reconciler によって処理されます。reconciler_errors
指標にはコンポーネント別のラベルが付いているため、エラーの発生場所を確認できます。
たとえば、Cloud Monitoring を使用している場合にコンポーネントを基準にフィルタするには、次のタスクを行います。
Google Cloud Console で [Monitoring] に移動します。
[Monitoring] のナビゲーション パネルで、leaderboard [Metrics Explorer] をクリックします。
[指標の選択] プルダウン リストで、
custom.googleapis.com/opencensus/config_sync/reconciler_errors
を追加します。[フィルタ] プルダウン リストで [component] を選択します。フィルタ フィールド ボックスが表示されます。
フィルタ フィールド ボックスの最初のボックスで [=] を選択し、2 番目のボックスで [source] を選択します。
[適用] をクリックします。
これで、信頼できるソースからのソーシングの際に Reconciler で発生したエラーを確認できるようになりました。
また、ソースと同期プロセスに関する指標を確認することもできます。それには、次の指標のクエリを実行して、status
タグでフィルタします。
custom.googleapis.com/opencensus/config_sync/parser_duration_seconds
custom.googleapis.com/opencensus/config_sync/apply_duration_seconds
custom.googleapis.com/opencensus/config_sync/remediate_duration_seconds