查詢及查看指標

從 Google Distributed Cloud (GDC) 氣隙環境中部署的工作負載收集指標後,即可開始分析。如要分析指標,您可以在資訊豐富的 Grafana 資訊主頁上以視覺化方式呈現及篩選指標,也可以使用 curl 工具直接從 Cortex 存取指標,以便彈性編寫指令碼及自動化。

本頁提供詳細操作說明,說明如何使用 Grafana 使用者介面和 Cortex 端點的 curl 工具查詢及顯示指標,進而深入瞭解工作負載效能。

您可以透過下列兩種方式存取指標:

  • 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 使用者介面中擷取指標:

  1. 在 GDC 控制台中選取專案。
  2. 在導覽選單中,依序選取「Operations」>「Monitoring」
  3. 按一下「在 Grafana 中查看所有項目」

    新頁面會開啟 Grafana 端點,並顯示使用者介面。

  4. 在使用者介面中,按一下導覽選單中的「探索」,開啟「探索」頁面。

  5. 在「探索」列的選單中,根據您的領域類型選取資料來源,以擷取指標:

    • 單一可用區的宇宙:選取「prometheus」,即可顯示宇宙單一可用區的指標。

    • 多區域宇宙:Grafana 可以連線至不同區域,並顯示跨區域資料。選取「指標」ZONE_NAME,即可顯示宇宙中任何區域的指標,不論您登入的區域為何。

      此外,如要在單一資訊主頁中顯示跨區域資料,並在查詢中新增多個區域,請選取「混合」做為資料來源。

  6. 輸入查詢,使用 PromQL (Prometheus 查詢語言) 運算式搜尋指標。你可以透過下列任一方式完成這個步驟:

    • 從「指標」和「標籤篩選器」選單中,為查詢選取指標和標籤。 按一下「新增」,即可在查詢中新增更多標籤。然後按一下「執行查詢」
    • 直接在「指標」文字欄位中輸入查詢,然後按下 Shift+Enter 鍵執行查詢。

    頁面會顯示符合查詢條件的指標。

    在「探索」頁面選取 Prometheus 選項,即可取得指標。

    圖 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 要求

  1. 下載並安裝 gdcloud CLI
  2. 設定 gdcloud core/organization_console_url 屬性:

    gdcloud config set core/organization_console_url
    https://GDC_URL
    
  3. 使用已設定的識別資訊提供者登入

    gdcloud auth login
    
  4. 使用使用者名稱和密碼進行驗證並登入。

    登入成功後,您可以使用 gdcloud auth print-identity-token 指令,在 cURL 要求中加入授權標頭。詳情請參閱 gdcloud auth

呼叫 Cortex 端點

如要使用 curl 工具連上 Cortex 端點,請完成下列步驟:

  1. 驗證 curl 要求
  2. 使用 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 標籤,該標籤會採用 POSTGETPUT 值。因此,您會為可能收到的每種要求類型建立三個指標串流。在本例中,如要找出 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

IJ 是內部決定的專屬號碼,可避免名稱衝突。
instance 報廢服務的 $IP:$PORT。如果工作負載資源有多個副本,請使用這個欄位加以區分。

下列程式碼範例顯示如何使用標籤的鍵/值組合查詢不同指標:

  • 查看專案中已處理作業的所有指標串流:

    processed_ops_total
    
  • 查看 Kubernetes 叢集中收集的已處理作業:

    processed_ops_total{cluster="CLUSTER_NAME"}
    
  • 查看 Kubernetes 叢集中收集的 CPU 用量:

    cpu_usage{cluster="CLUSTER_NAME"}
    

使用指標重新標記工具,新增最初未由擷取的容器公開的標籤,並重新命名產生的指標。您必須設定 MonitoringTarget 自訂資源,才能在收集的指標上新增標籤。 在自訂資源的 metricsRelabelings 欄位中指定這些標籤。 詳情請參閱「標籤指標」。