ラベル指標

始める前に

指標にラベルを付けたり、指標ラベルを表示したりするために必要な権限を取得するには、プロジェクトの IAM 管理者に、プロジェクトの Namespace で次のいずれかのロールを付与するよう依頼します。

  • モニタリング ターゲット エディタ: MonitoringTarget カスタム リソースを編集または変更します。モニタリング ターゲット編集者(monitoringtarget-editor)のロールをリクエストします。
  • Monitoring ターゲット閲覧者: MonitoringTarget カスタム リソースを表示します。モニタリング ターゲット閲覧者(monitoringtarget-viewer)ロールをリクエストします。

ラベルを使用すると、指標の特性を区別できます。MonitoringTarget カスタム リソースを使用すると、指標の収集に加えて、次のようなオプション機能の指標にラベルを付けることができます。

指標の再ラベル付けの詳細については、https://grafana.com/blog/2022/03/21/how-relabeling-in-prometheus-works/ をご覧ください。

別のプロジェクトに指標を送信する

コンテナ作成者は、プロジェクトが別の GDC ペルソナに対応している場合でも、システム モニタリングのために特定の指標を別のプロジェクトに送信する必要があることをコードに記述できます。特定のプロジェクトに指標を送信するには、コード内の指標に _gdch_project ラベルを追加します。この値は、特定のオブザーバビリティ指標を所有するプロジェクトの名前に設定します。例: "_gdch_project": "another-project-name"

または、MonitoringTarget カスタム リソースを使用して、収集したすべての指標データを別のプロジェクトに送信し、データのオブザーバビリティを実現します。これを行うには、metricsRelabelings フィールドで _gdch_project ラベルをターゲット ラベルとして設定し、置換値を設定します。

次のコードサンプルは、MonitoringTarget カスタム リソースで _gdch_project ラベル値を another-project-name に置き換える方法を示しています。

apiVersion: monitoring.gdc.goog/v1alpha1
kind: MonitoringTarget
metadata:
  # Choose the same namespace as the workload pods
  namespace: PROJECT_NAMESPACE
  name: string
spec:
  ...
  podMetricsEndpoints:
    ...
    metricsRelabelings:
      ...
      - action: replace
        targetLabel: _gdch_project
        replacement: another-project-name

PROJECT_NAMESPACE は、プロジェクトの Namespace に置き換えます。

指標に新しいラベルを追加する

ラベルは、指標のさまざまな特性を識別できるため、データのオブザーバビリティとシステム モニタリングに役立ちます。スクレイピングされたコンテナが最初に公開しない指標に、新しいラベルを追加できます。MonitoringTarget カスタム リソースで、新しいラベルをターゲットとして設定し、ラベルの値として機能する置換を確立します。システムは、データ オブザーバビリティの目的でカスタム リソースが収集するすべての指標に、新しい Key-Value ペアを追加します。

次のコードサンプルは、MonitoringTarget カスタム リソースに my_new_label ラベルを追加し、その値を my_label_value に設定する方法を示しています。

apiVersion: monitoring.gdc.goog/v1alpha1
kind: MonitoringTarget
metadata:
  # Choose the same namespace as the workload pods
  namespace: PROJECT_NAMESPACE
  name: string
spec:
  ...
  podMetricsEndpoints:
    ...
    metricsRelabelings:
      ...
      - action: replace
        targetLabel: my_new_label
        replacement: my_label_value

PROJECT_NAMESPACE は、プロジェクトの Namespace に置き換えます。

指標の名前を変更する

MonitoringTarget CR から、コンテナが生成する指標の名前を完全に変更できます。metricsRelabelings フィールドに、指標の元の名前とその置換を設定します。カスタム リソースは、元の指標名を正規表現として取得し、追加した新しい名前に置き換えます。

次のコードサンプルは、MonitoringTarget CR で cpu_usage 指標名を cpu_usage_new_name に置き換える方法を示しています。

apiVersion: monitoring.gdc.goog/v1alpha1
kind: MonitoringTarget
metadata:
  # Choose the same namespace as the workload pods
  namespace: PROJECT_NAMESPACE
  name: string
spec:
  ...
  podMetricsEndpoints:
    ...
    metricsRelabelings:
      ...
      - action: replace
        regex: cpu_usage
        replacement: cpu_usage_new_name
        sourceLabels: [__name__]
        targetLabel: __name__

PROJECT_NAMESPACE は、プロジェクトの Namespace に置き換えます。