從 Google Distributed Cloud (GDC) 氣隙式裝置中部署的工作負載收集指標後,即可開始分析。如要分析指標,您可以在資訊豐富的 Grafana 資訊主頁上以圖表呈現及篩選指標,也可以使用 curl
工具直接從 Cortex 存取指標,以便彈性編寫指令碼及自動化。
您可以透過下列兩種方式存取指標:
- Grafana 資訊主頁:透過 CPU 使用率、儲存空間用量和網路活動等重要指標的直覺式視覺化呈現,探索趨勢並找出異常情形。Grafana 提供簡單易用的介面,方便您在資訊主頁中篩選及分析工作負載資料。
- Cortex 端點:如要進行更進階的用途,請使用指令列上的
curl
工具,直接查詢專案的 Cortex 執行個體。Cortex 會儲存專案的 Prometheus 指標,並提供 HTTP 端點供您以程式輔助方式存取。您可透過這項存取權匯出資料、自動執行工作,以及建構自訂整合功能。
事前準備
如要取得在 Grafana 資訊主頁上查詢及顯示指標所需的權限,請要求機構 IAM 管理員或專案 IAM 管理員授予您預先定義的機構 Grafana 檢視者或專案 Grafana 檢視者角色。視您需要的存取層級和權限而定,您可能需要取得機構或專案的 Grafana 角色。
或者,如要取得從 Cortex 端點查詢指標所需的權限,請要求專案 IAM 管理員在專案命名空間中,授予您專案 Cortex Prometheus 檢視者角色。
如要進一步瞭解這些角色,請參閱「準備 IAM 權限」。
取得及篩選指標
選取下列其中一種方法,即可建構查詢、以圖表呈現趨勢,以及篩選專案工作負載的指標:
Grafana 資訊主頁
本節說明如何使用 Grafana 資訊主頁存取指標。
找出 Grafana 端點
以下網址是專案 Grafana 執行個體的端點:
https://GDC_URL/PROJECT_NAMESPACE/grafana
更改下列內容:
GDC_URL
:您在 GDC 中的機構網址。PROJECT_NAMESPACE
:您的專案命名空間。舉例來說,
org-1
機構中platform-obs
專案的 Grafana 端點為https://org-1/platform-obs/grafana
。
在 Grafana 使用者介面中查看指標
在 Grafana 使用者介面中擷取指標:
- 在 GDC 控制台中選取專案。
- 在導覽選單中,依序選取「Operations」>「Monitoring」。
按一下「在 Grafana 中查看所有項目」。
新頁面會開啟 Grafana 端點,並顯示使用者介面。
在使用者介面中,按一下導覽選單中的「探索」,開啟「探索」頁面。
在「探索」列的選單中,根據您的領域類型選取資料來源,以擷取指標:
- 單一可用區的宇宙:選取「prometheus」,即可顯示宇宙單一可用區的指標。
輸入查詢,使用 PromQL (Prometheus 查詢語言) 運算式搜尋指標。您可以透過下列任一方式完成這個步驟:
- 從「指標」和「標籤篩選器」選單中,為查詢選取指標和標籤。 按一下「新增」新增,即可在查詢中新增更多標籤。然後按一下「執行查詢」。
- 直接在「指標」文字欄位中輸入查詢,然後按下 Shift+Enter 鍵執行查詢。
頁面會顯示符合查詢條件的指標。
圖 1. 可從 Grafana 使用者介面查詢指標的選單選項。
如圖 1 所示,「prometheus」選項會顯示介面,讓您從 Grafana 建構查詢來擷取指標。
如需可用於查詢指標的標籤值示例,請參閱「範例查詢和標籤」。
Cortex 端點
本節說明如何使用 Cortex 存取指標。
找出 Cortex 端點
以下網址是專案 Cortex 執行個體的端點:
https://GDC_URL/PROJECT_NAMESPACE/cortex/prometheus/
更改下列內容:
GDC_URL
:您在 GDC 中的機構網址。PROJECT_NAMESPACE
:您的專案命名空間。舉例來說,
org-1
機構中platform-obs
專案的 Cortex 端點為https://org-1/platform-obs/cortex/prometheus/
。
驗證 curl
要求
- 下載並安裝 gdcloud CLI。
設定 gdcloud
core/organization_console_url
屬性:gdcloud config set core/organization_console_url https://GDC_URL
-
gdcloud auth login
使用使用者名稱和密碼進行驗證並登入。
登入成功後,您可以使用
gdcloud auth print-identity-token
指令,在 cURL 要求中加入授權標頭。詳情請參閱 gdcloud auth。
呼叫 Cortex 端點
如要使用 curl
工具連上 Cortex 端點,請完成下列步驟:
- 驗證
curl
要求。 使用
curl
呼叫 Cortex 端點,並使用標準 Prometheus HTTP API (https://prometheus.io/docs/prometheus/latest/querying/api/) 擴充網址,以查詢指標。以下是
curl
要求範例:curl https://GDC_URL/PROJECT_NAME/cortex/prometheus/api/v1/query?query=my_metric{cluster="my-cluster"}&time=2015-07-01T20:10:51.781Z \ -H "Authorization: Bearer $(gdcloud auth print-identity-token \ --audiences=https://GDC_URL)"
執行指令後,您會取得輸出內容。API 回應採用 JSON 格式。
查詢和標籤範例
您可以透過指標名稱和標籤的鍵/值組合查詢指標。PromQL 查詢的語法如下:
metric_name{label_one="value", label_two="value"}
標籤可讓您區分指標的特徵。這樣一來,容器作者就能讓工作負載產生指標,並新增標記來篩選這些指標。
舉例來說,您可以建立 api_http_requests_total
指標,計算收到的 HTTP 要求數量。然後,您可以在這項指標上新增 request_method
標籤,該標籤會採用 POST
、GET
或 PUT
值。因此,您會為可能收到的每種要求類型建立三個指標串流。在本例中,如要找出 HTTP GET
要求數量,請執行下列查詢:
api_http_requests_total{request_method="GET"}
如要進一步瞭解指標和標籤,請參閱 https://prometheus.io/docs/practices/naming/。
以下是 MonitoringTarget
自訂資源新增的部分預設標籤。您可以使用這些預設標籤查詢指標:
_gdch_service
:服務的簡短名稱。cluster
:叢集名稱。container_name
:Pod 內的容器名稱。namespace_name
:您的專案命名空間。pod_name
:Pod 名稱前置字串。
下表說明 Prometheus 自動新增的標籤:
指標標籤 | 說明 |
---|---|
job |
用於收集指標的擷取作業內部名稱。由 MonitoringTarget 自訂資源建立的工作名稱會採用下列模式:obs-system/OBS_SHADOW_PROJECT_NAME/MONITORINGTARGET_NAME.MONITORINGTARGET_NAMESPACE/I/J I 和 J 是內部決定的專屬號碼,可避免名稱衝突。 |
instance |
報廢服務的 $IP:$PORT 。如果工作負載資源有多個副本,請使用這個欄位加以區分。 |
下列程式碼範例顯示如何使用標籤的鍵/值組合查詢不同指標:
查看專案中已處理作業的所有指標串流:
processed_ops_total
查看 Kubernetes 叢集中收集的已處理作業:
processed_ops_total{cluster="CLUSTER_NAME"}
查看 Kubernetes 叢集中收集的 CPU 用量:
cpu_usage{cluster="CLUSTER_NAME"}
使用指標重新標記工具,新增最初未由擷取的容器公開的標籤,並重新命名產生的指標。您必須設定
MonitoringTarget
自訂資源,才能在收集的指標上新增標籤。
在自訂資源的 metricsRelabelings
欄位中指定這些標籤。
詳情請參閱「標籤指標」。
從 Cortex API 查詢指標
Cortex 是 GDC 中 Prometheus 指標的長期儲存空間。可觀測性平台會公開 Cortex HTTP API 端點,用於查詢及讀取專案中的指標、快訊和其他 Prometheus 時間序列資料。
直接從 HTTP API 查詢指標,即可讀取指標和其他時間序列資料,並匯出至外部工具、設定自動化工作、調整回應,以及根據系統監控用途建立整合。舉例來說,您可以將輸出內容插入其他指令、將詳細資料匯出為文字檔格式,或是設定 Linux Cron 工作。您可以從指令列介面 (CLI) 或網頁瀏覽器呼叫 API,並使用查詢語言運算式做為端點參數,以取得 JSON 格式的結果。
本節說明如何使用 Prometheus API 規格,從 CLI 呼叫 Cortex API 端點,查詢資料可觀測性指標。
事前準備
您必須取得授權,才能透過 CLI 查詢指標。如要取得存取 Cortex API 端點所需的權限,請要求專案 IAM 管理員授予您專案 Cortex Prometheus 檢視者 (project-cortex-prometheus-viewer
) 角色。
使用 kubectl
指令,為每個角色建立下列 Cortex Prometheus 角色繫結:
基礎架構運算子 (IO) 根管理員 -
Project Cortex Prometheus Viewer
:kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding io-cortex-prometheus-viewer-binding -n infra-obs --user=fop-infrastructure-operator@example.com --role=project-cortex-prometheus-viewer
平台管理員 (PA) 根管理員 -
Project Cortex Prometheus Viewer
:kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding pa-cortex-prometheus-viewer-binding -n platform-obs --user=fop-platform-admin@example.com --role=project-cortex-prometheus-viewer
應用程式管理員 (AO) 根層級管理員 -
Project Cortex Prometheus Viewer
:kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding project-cortex-prometheus-viewer-binding -n PROJECT_NAME --user=USER_NAME --role=project-cortex-prometheus-viewer
更改下列內容:
- PROJECT_NAME:專案名稱。
- USER_NAME:需要角色繫結的使用者帳戶名稱。
建立角色繫結後,您可以使用登入使用者名稱存取 Prometheus API。
HTTP API 端點
以下網址是 HTTP API 端點,可存取 platform-obs
專案中的指標:
https://GDC_URL/PROJECT_NAME/cortex/prometheus/
更改下列內容:
- GDC_URL:您在 GDC 中的機構網址。
- PROJECT_NAME:專案名稱。
呼叫 API 端點
請按照下列步驟,從 CLI 存取 Cortex API 端點並查詢指標:
- 確認符合必要條件。
- 開啟 CLI。
使用
curl
工具呼叫 Cortex 端點,並使用標準 https://prometheus.io/docs/prometheus/latest/querying/api/ 擴充網址,以查詢指標。例如:curl https://console.org-1.zone1.google.gdch.test/alice/cortex/prometheus/api/v1/query?query=my_metric{cluster="org-1-system"}&time=2015-07-01T20:10:51.781Z
您會在 CLI 中取得指令的輸出內容。API 回應格式為 JSON。