標籤可讓您區分指標的特徵。除了收集指標,您還可以使用 MonitoringTarget
自訂資源標記指標,以啟用選用的可觀測性功能:
如要進一步瞭解指標重新標記,請參閱 https://grafana.com/blog/2022/03/21/how-relabeling-in-prometheus-works/。
事前準備
如要取得管理 MonitoringTarget
自訂資源所需的權限,請要求機構 IAM 管理員或專案 IAM 管理員授予您相關的 MonitoringTarget
角色。
視存取層級和所需權限而定,您可能會在機構或專案中取得這項資源的建立者、編輯者或檢視者角色。詳情請參閱「準備 IAM 權限」。
將指標傳送至其他專案
容器作者可以編寫程式碼,將特定指標傳送至其他專案,即使是他們不擁有的專案也沒問題。如要將指標傳送至特定專案,請在程式碼中為指標新增 _gdch_project
標籤,並將值設為目標專案名稱。
或者,您也可以使用 MonitoringTarget
自訂資源,將所有收集到的指標資料傳送至其他專案。在 metricsRelabelings
欄位中,將 _gdch_project
標籤設為目標標籤,並以新專案名稱做為替代值。
下列程式碼範例說明如何在 MonitoringTarget
自訂資源中設定 _gdch_project
目標標籤,將指標傳送至名為 another-project-name
的專案:
apiVersion: monitoring.gdc.goog/v1
kind: MonitoringTarget
metadata:
# Choose the same namespace as the workload pods.
namespace: PROJECT_NAMESPACE
name: MONITORING_TARGET_NAME
spec:
[...]
podMetricsEndpoints:
[...]
metricsRelabelings:
- action: replace
targetLabel: _gdch_project
replacement: another-project-name
[...]
更改下列內容:
PROJECT_NAMESPACE
:您的專案命名空間。MONITORING_TARGET_NAME
:MonitoringTarget
定義檔案的名稱。
為指標新增標籤
標籤可識別指標特徵,有助於觀測及監控。您可以新增擷取的容器最初未公開的標籤。在 MonitoringTarget
自訂資源中,將新標籤設為目標,並提供替代值。這個鍵/值組合會新增至資源收集的所有指標。
以下程式碼範例說明如何在 MonitoringTarget
自訂資源中,設定 my_new_label
目標標籤並將其值設為 my_label_value
:
apiVersion: monitoring.gdc.goog/v1
kind: MonitoringTarget
metadata:
# Choose the same namespace as the workload pods.
namespace: PROJECT_NAMESPACE
name: MONITORING_TARGET_NAME
spec:
[...]
podMetricsEndpoints:
[...]
metricsRelabelings:
- action: replace
targetLabel: my_new_label
replacement: my_label_value
[...]
更改下列內容:
PROJECT_NAMESPACE
:您的專案命名空間。MONITORING_TARGET_NAME
:MonitoringTarget
定義檔案的名稱。
重新命名指標
您可以使用 MonitoringTarget
資源重新命名容器的指標。在 metricsRelabelings
欄位中設定原始指標名稱和取代名稱。原始名稱會視為規則運算式,並由新名稱取代。
下列程式碼範例說明如何在 MonitoringTarget
自訂資源中,將 cpu_usage
指標名稱 (regex) 取代為 cpu_usage_new_name
:
apiVersion: monitoring.gdc.goog/v1
kind: MonitoringTarget
metadata:
# Choose the same namespace as the workload pods.
namespace: PROJECT_NAMESPACE
name: MONITORING_TARGET_NAME
spec:
[...]
podMetricsEndpoints:
[...]
metricsRelabelings:
- action: replace
regex: cpu_usage
replacement: cpu_usage_new_name
sourceLabels: [__name__]
targetLabel: __name__
[...]
更改下列內容:
PROJECT_NAMESPACE
:您的專案命名空間。MONITORING_TARGET_NAME
:MonitoringTarget
定義檔案的名稱。