標籤指標

事前準備

如要取得標記指標或查看指標標籤所需的權限,請要求專案 IAM 管理員在專案命名空間中授予您下列其中一個角色:

  • 監控目標編輯者:編輯或修改MonitoringTarget自訂資源。要求 Monitoring 目標編輯者 (monitoringtarget-editor) 角色。
  • 監控目標檢視者:可查看MonitoringTarget自訂資源。要求 Monitoring Target Viewer (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 替換為專案的命名空間。

為指標新增標籤

標籤可讓您識別指標的不同特徵,因此有助於資料可觀測性和系統監控。您可以為容器最初未公開的指標新增標籤。在 MonitoringTarget 自訂資源中,將新標籤設為目標,並建立替代項目做為標籤的值。系統會將新的鍵/值組合,新增至自訂資源為資料可觀測性收集的所有指標。

下列程式碼範例說明如何在 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 替換為專案的命名空間。

重新命名指標

您可以從 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 替換為專案的命名空間。