收集指標後,您可以在專案的系統監控執行個體中,查詢及查看資訊主頁上的指標,方法是透過 Grafana或 GDC 氣隙裝置 HTTP API 查詢指標。
在資訊主頁上查詢及查看指標
專案的 Grafana 執行個體 (又稱系統監控執行個體) 包含監控專案層級元件的資料,可觀察資料,例如 CPU 使用率、儲存空間用量、網路監控、伺服器監控、記錄、快訊和指標。
如要查看指標,請使用系統監控執行個體「Explore」頁面上的資訊主頁。如要查看特定指標,請從「探索」頁面進行查詢。
事前準備
如要在資訊主頁上查詢及查看指標,您必須先取得監控執行個體的存取權。詳情請參閱「取得資訊主頁的存取權」。
為指標建立查詢
透過專案的系統監控執行個體,監控及查看應用程式的資料可觀測性指標。執行個體的整合式使用者介面 (UI) 包含標準元件的預設資訊主頁,以及您為特定用途建立的自訂資訊主頁。假設環境已啟動並執行,您會立即在「Available Dashboards」(可用資訊主頁) 頁面中看到幾個指標資訊主頁。
透過使用者介面查詢指標,以視覺化方式從專案擷取指標,並取得整合式檢視畫面來監控應用程式。如要篩選結果,請使用查詢語言運算式,依標籤搜尋指標。
系統監控執行個體端點
下列網址是 platform-obs 專案監控執行個體的端點:
https://GDC_URL/PROJECT_NAMESPACE/grafana
更改下列內容:
- GDC_URL:您在 GDC 中的機構網址
- PROJECT_NAMESPACE:專案的命名空間
查詢指標
如要查詢專案中的指標,請完成下列步驟:
如要擷取指標,請完成下列步驟:
- 在 GDC 控制台中選取專案。
- 在導覽選單中,依序點選「Operations」>「Monitoring」。
- 按一下「在 Grafana 中查看所有項目」。
- 在監控執行個體的 UI 中,按一下導覽選單中的「explore」(探索)「Explore」(探索),開啟「Explore」(探索) 頁面。
- 在「Explore」列的下拉式選單中,選取「prometheus」來擷取指標。
輸入查詢,使用 PromQL (Prometheus 查詢語言) 運算式搜尋指標。您可以透過下列任一方式完成這個步驟:
- 從「指標」和「標籤篩選器」下拉式選單中,為查詢選取指標和標籤。按一下「新增」新增,即可在查詢中新增更多標籤。然後按一下「執行查詢」。
- 直接在「指標」文字欄位中輸入查詢,然後按下 Shift+Enter 鍵執行查詢。
頁面會顯示符合查詢條件的指標。
圖 1. 從 Grafana 使用者介面查詢指標的選單選項。
如圖 1 所示,「prometheus」選項會顯示介面,讓您從 Grafana 建構查詢來擷取指標。
如需可用於查詢指標的標籤值示例,請參閱「範例查詢和標籤」。
查詢和標籤範例
您可以使用指標名稱和鍵值標籤查詢收集到的指標。因此,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"}
以下是自訂資源MonitoringTarget
新增的部分預設標籤,可用於查詢指標:
_gdch_service
:服務的簡短名稱cluster
:叢集名稱container_name
:Pod 內的容器名稱namespace_name
:您的專案命名空間pod_name
:Pod 名稱前置字串
下表說明網頁擷取服務自動新增的標籤:
指標標籤 | 說明 |
---|---|
job |
用於收集指標的擷取作業內部名稱。由 MonitoringTarget 自訂資源建立的工作名稱會採用下列模式:PROJECT_NAME-obs-system/MONITORINGTARGET_NAME.MONITORINGTARGET_NAMESPACE/I/J PROJECT_NAME-obs-system/MONITORINGTARGET_NAME.MONITORINGTARGET_NAMESPACE/I/J I 和 J 是內部決定的專屬號碼,可避免名稱衝突。 |
instance |
報廢服務的 $IP:$PORT 。如果工作負載資源有多個副本,請使用這個欄位加以區分。 |
下列程式碼範例顯示如何使用標籤和值,查詢資料可觀測性的不同指標:
查看專案中已處理作業的所有指標串流:
processed_ops_total
查看叢集中收集的已處理作業:
processed_ops_total{cluster="CLUSTER_NAME"}
查看叢集收集的 CPU 使用率:
cpu_usage{cluster="CLUSTER_NAME"}
使用指標重新加上標籤工具,新增最初未由已捨棄容器公開的標籤,並重新命名產生的指標。您必須設定 MonitoringTarget
CR,才能在收集的指標上新增標籤。在 CR 的 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。