使用 Prometheus 補充資訊記錄 Prometheus 指標

如要取得 Cloud Run 服務的 Prometheus 式監控功能,建議使用 Cloud Run 適用的 Managed Service for Prometheus Sidecar。如果 Cloud Run 服務會寫入 OTLP 指標,您可以使用 OpenTelemetry sidecar。不過,如果服務會寫入 Prometheus 指標,請使用本文所述的 Managed Service for Prometheus Sidecar。

本文說明如何執行下列操作:

補充資訊會在伺服器端使用 Google Cloud Managed Service for Prometheus,並在用戶端使用為無伺服器工作負載自訂的 OpenTelemetry Collector 發布作業。這個自訂發行版本包含一些支援 Cloud Run 的變更。無論執行個體生命週期多短,收集器都會在 10 秒後執行啟動抓取,並執行關閉抓取。為確保最高可靠性,建議執行 sidecar 的 Cloud Run 服務也使用以執行個體為基礎的計費設定。詳情請參閱「計費設定 (服務)」。如果每秒查詢次數 (QPS) 偏低,導致 CPU 分配受到限制,部分抓取嘗試可能會失敗。一律分配的 CPU 則會保持可用狀態。

sidecar 依賴 Cloud Run 多容器 (sidecar) 功能,將收集器做為邊車容器,與工作負載容器一起執行。如要進一步瞭解 Cloud Run 中的 sidecar,請參閱「將多個容器部署至服務 (sidecar)」。

Cloud Run 適用的 Managed Service for Prometheus 邊車容器導入了新的設定 RunMonitoring,這是 Kubernetes PodMonitoring 自訂資源的子集。大多數使用者可以使用預設的 RunMonitoring 設定,但您也可以建立自訂設定。如要進一步瞭解預設和自訂 RunMonitoring 設定,請參閱「將 Sidecar 新增至 Cloud Run 服務」。

事前準備

本節說明使用本文件所需的設定。

安裝及設定 gcloud CLI

本文所述的許多步驟都會使用 Google Cloud CLI。如要瞭解如何安裝 gcloud CLI,請參閱「管理 Google Cloud CLI 元件」。

叫用 gcloud 指令時,必須指定 Google Cloud 專案的 ID。您可以為 Google Cloud CLI 設定預設專案,這樣就不必在每個指令中輸入專案。如要將專案設為預設,請輸入下列指令:

gcloud config set project PROJECT_ID

您也可以為 Cloud Run 服務設定預設區域。如要設定預設區域,請輸入下列指令:

gcloud config set run/region REGION

啟用 API

您必須在 Google Cloud 專案中啟用下列 API:

  • Cloud Run Admin API:run.googleapis.com
  • Artifact Registry API:artifactregistry.googleapis.com
  • Cloud Monitoring API:monitoring.googleapis.com
  • Cloud Logging API:logging.googleapis.com
  • (選用) 如果您建立自訂 RunMonitoring 設定,則必須啟用 Secret Manager API:secretmanager.googleapis.com
  • (選用) 如果您選擇使用 Cloud Build 執行範例應用程式,則必須啟用下列 API:
    • Cloud Build API:cloudbuild.googleapis.com。
    • Identity and Access Management API:iam.googleapis.com。 詳情請參閱「建構及執行範例應用程式」。

如要查看專案中啟用的 API,請執行下列指令:

gcloud services list

如要啟用未啟用的 API,請執行下列任一指令:

gcloud services enable run.googleapis.com
gcloud services enable artifactregistry.googleapis.com
gcloud services enable secretmanager.googleapis.com
gcloud services enable monitoring.googleapis.com
gcloud services enable logging.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable iam.googleapis.com

Cloud Run 的服務帳戶

根據預設,Cloud Run 工作和服務會使用 Compute Engine 預設服務帳戶 (PROJECT_NUMBER-compute@developer.gserviceaccount.com)。這個服務帳戶通常具備 Identity and Access Management (IAM) 角色,可寫入本文所述的指標和記錄:

  • roles/monitoring.metricWriter
  • roles/logging.logWriter

如果您建立自訂 RunMonitoring 設定,服務帳戶也必須具備下列角色:

  • roles/secretmanager.admin
  • roles/secretmanager.secretAccessor

您也可以為 Cloud Run 設定使用者自行管理的服務帳戶。使用者自行管理的服務帳戶也必須具備這些角色。如要進一步瞭解 Cloud Run 的服務帳戶,請參閱「設定服務身分」。

設定 sidecar 並新增至 Cloud Run 服務

Cloud Run 適用的 Managed Service for Prometheus 邊車容器推出新的設定 RunMonitoring,這是 Kubernetes PodMonitoring 自訂資源的子集。RunMonitoring 設定會使用現有的 PodMonitoring 選項來支援 Cloud Run,同時移除部分 Kubernetes 專屬選項。

您可以使用預設的 RunMonitoring 設定,也可以建立自訂設定。以下各節說明這兩種方法。不必同時執行這兩項操作。如要進一步瞭解如何使用預設或自訂設定,請選取對應的分頁。

預設設定

使用預設 RunMonitoring 設定

如未建立自訂 RunMonitoring 設定,sidecar 收集器會合成下列預設設定,每 30 秒從指標路徑 /metrics 的通訊埠 8080 擷取指標:

apiVersion: monitoring.googleapis.com/v1beta
kind: RunMonitoring
metadata:
  name: run-gmp-sidecar
spec:
  endpoints:
  - port: 8080
    path: /metrics
    interval: 30s

使用預設設定時,除了將 sidecar 新增至 Cloud Run 服務,不需進行其他設定。

將 sidecar 新增至 Cloud Run 服務

如要使用預設 RunMonitoring 設定的 sidecar,請修改現有的 Cloud Run 設定,新增 sidecar。如要新增 Sidecar,請按照下列步驟操作:

  • 新增容器依附元件註解,指定容器的啟動和關閉順序。在以下範例中,名為「collector」的邊車容器會在名為「app」的應用程式容器啟動後啟動,並在該容器關閉前關閉。
  • 為收集器建立容器,在以下範例中名為「collector」。

舉例來說,請在 Cloud Run 設定中,新增前面有 + (加號) 字元的行,然後重新部署服務:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  annotations:
    run.googleapis.com/launch-stage: ALPHA
    run.googleapis.com/cpu-throttling: 'false'
  name: my-cloud-run-service
spec:
  template:
    metadata:
      annotations:
        run.googleapis.com/execution-environment: gen2
+       run.googleapis.com/container-dependencies: '{"collector":["app"]}'
    spec:
      containers:
      - image: "REGION-docker.pkg.dev/PROJECT_ID/run-gmp/sample-app"
        name: app
        startupProbe:
          httpGet:
            path: /startup
            port: 8000
        livenessProbe:
          httpGet:
            path: /liveness
            port: 8000
        ports:
        - containerPort: 8000
+     - image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/cloud-run-gmp-sidecar/cloud-run-gmp-sidecar:1.2.0"
+       name: collector

如要使用設定檔 run-service.yaml 重新部署 Cloud Run 服務,請執行下列指令:

gcloud run services replace run-service.yaml --region=REGION

自訂設定

建立自訂 RunMonitoring 設定

如果預設設定不符合需求,您可以為 Cloud Run 服務建立 RunMonitoring 設定。舉例來說,您可以建立如下的設定:

apiVersion: monitoring.googleapis.com/v1beta
kind: RunMonitoring
metadata:
  name: my-custom-cloud-run-job
spec:
  endpoints:
  - port: 8080
    path: /metrics
    interval: 10s
    metricRelabeling:
    - action: replace
      sourceLabels:
      - __address__
      targetLabel: label_key
      replacement: label_value
  targetLabels:
    metadata:
    - service
    - revision

這項設定會執行下列操作:

  • 從通訊埠 8080 擷取指標,並使用預設指標路徑 /metrics。
  • 每 10 秒抓取一次。
  • 使用重新標籤功能,為每個抓取的指標新增標籤 label_key,並將值設為 label_value。
  • 為每個擷取的指標新增 service 和 revision 中繼資料標籤。

如要瞭解可用的設定選項,請參閱「RunMonitoring 規格:設定選項」。

使用自訂 RunMonitoring 設定時,必須執行下列額外設定:

使用 Secret Manager 儲存設定

如要提供自訂 RunMonitoring 設定,請按照下列步驟操作:

  • 建立包含自訂設定的檔案。
  • 建立含有自訂設定的 Secret Manager 密鑰。

下列指令會從 custom-config.yaml 檔案建立名為 mysecret 的 Secret:

gcloud secrets create mysecret --data-file=custom-config.yaml

如要在修改 custom-config.yaml 檔案後套用設定變更,您必須刪除並重新建立密鑰,然後重新部署 Cloud Run 服務。

在 Secret Manager 中更新設定

如要隨時更新自訂 RunMonitoring 設定,可以將現有 Secret 的新版本新增至 Secret Manager。

舉例來說,如要使用儲存在檔案 custom-config-updated.yaml 中的新設定更新 mysecret,可以執行下列指令:

gcloud secrets versions add mysecret --data-file=custom-config-updated.yaml

sidecar 會自動重新載入並套用設定變更。

將 sidecar 新增至 Cloud Run 服務

為 RunMonitoring 設定建立 Secret Manager 密鑰後,您必須修改 Cloud Run 設定,執行下列操作:

  • 新增 Managed Service for Prometheus sidecar
    • 新增容器依附元件註解,指定容器的啟動和關閉順序。在以下範例中,名為「collector」的邊車容器會在名為「app」的應用程式容器啟動後啟動,並在該容器關閉前關閉。
    • 為收集器建立容器,在以下範例中名為「collector」。
  • 將 Secret 掛接至 /etc/rungmp/config.yaml 位置,藉此新增 Secret:
    • 新增密鑰註解,指向存放自訂 RunMonitoring 設定的密鑰。
    • 為指向 config.yaml 檔案的 Secret 建立磁碟區,在以下範例中名為「config」。
    • 在掛接路徑 /etc/rungmp 將磁碟區掛接為收集器映像檔的一部分。

舉例來說,請在 Cloud Run 設定中,新增前面有 + (加號) 字元的行,然後重新部署服務:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  annotations:
    run.googleapis.com/launch-stage: ALPHA
    run.googleapis.com/cpu-throttling: 'false'
  name: my-cloud-run-service
spec:
  template:
    metadata:
      annotations:
        run.googleapis.com/execution-environment: gen2
+       run.googleapis.com/container-dependencies: '{"collector":["app"]}'
+       run.googleapis.com/secrets: 'mysecret:projects/PROJECT_ID/secrets/mysecret'
    spec:
      containers:
      - image: "REGION-docker.pkg.dev/PROJECT_ID/run-gmp/sample-app"
        name: app
        startupProbe:
          httpGet:
            path: /startup
            port: 8000
        livenessProbe:
          httpGet:
            path: /liveness
            port: 8000
        ports:
        - containerPort: 8000
+     - image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/cloud-run-gmp-sidecar/cloud-run-gmp-sidecar:1.2.0"
+       name: collector
+       volumeMounts:
+       - mountPath: /etc/rungmp/
+         name: config
+     volumes:
+     - name: config
+       secret:
+         items:
+         - key: latest
+           path: config.yaml
+         secretName: 'mysecret'

如要使用設定檔 run-service.yaml 重新部署 Cloud Run 服務,請執行下列指令:

gcloud run services replace run-service.yaml --region=REGION

RunMonitoring 規格:設定選項

本節說明 Managed Service for Prometheus sidecar 的 RunMonitoring 設定規格。以下是自訂設定範例:

apiVersion: monitoring.googleapis.com/v1beta
kind: RunMonitoring
metadata:
  name: my-custom-cloud-run-job
spec:
  endpoints:
  - port: 8080
    path: /metrics
    interval: 10s
    metricRelabeling:
    - action: replace
      sourceLabels:
      - __address__
      targetLabel: label_key
      replacement: label_value
  targetLabels:
    metadata:
    - service
    - revision

RunMonitoring

RunMonitoring 設定會監控 Cloud Run 服務。

欄位 說明 配置 必填
metadata 所有永久資源都必須具備的中繼資料。 metav1.ObjectMeta false
spec Prometheus 選取用於目標探索的 Cloud Run 部署作業規格。 RunMonitoringSpec true
RunMonitoringSpec

這項規格說明 RunMonitoring 設定如何監控 Cloud Run 服務。

欄位 說明 配置 必填
endpoints 要在所選 Pod 上抓取的端點。 []ScrapeEndpoint true
targetLabels 要為探索到的端點新增至 Prometheus 目標的標籤。instance 標籤一律會設為 Cloud Run 執行個體 ID。 RunTargetLabels false
limits 在抓取時套用的限制。 *ScrapeLimits false
RunTargetLabels

RunTargetLabels 設定可讓您納入探索到的 Prometheus 目標中的 Cloud Run 標籤。

欄位 說明 配置 必填
metadata 在所有抓取目標上設定的 Cloud Run 中繼資料標籤。

允許的鍵為 instance、revision、service 和 configuration。

如果設定了允許的金鑰,sidecar 會將 Cloud Run 執行個體中的對應值,新增為每項指標的指標標籤:instanceID、revision_name、service_name 和 configuration_name。

預設會設定所有允許的金鑰。
*[]string false

建構並執行範例應用程式

本節說明如何透過範例應用程式執行 Managed Service for Prometheus sidecar。本節為選用。如果您已有 Cloud Run 服務,且想一併部署 Sidecar,請參閱「將 Managed Service for Prometheus Sidecar 新增至 Cloud Run 服務」。

複製 run-gmp-sidecar 存放區

如要取得範例應用程式及其設定檔,請執行下列指令,複製 run-gmp-sidecar 存放區:

git clone https://github.com/GoogleCloudPlatform/run-gmp-sidecar/

複製存放區後,切換至 run-gmp-sidecar 目錄:

cd run-gmp-sidecar

建構並執行範例應用程式

範例應用程式需要 Docker 或類似的 Linux 容器建構系統。您可以透過下列任一方式建構及執行範例應用程式:

  • 使用 Cloud Build 執行,不需本機 Docker 支援。如果您使用 Cloud Build,則也必須啟用 Cloud Build API。
  • 手動建構及執行範例應用程式。

以下各節說明這兩種方法。不必同時執行這兩項操作。 如要瞭解詳情,請選取其中一種做法的分頁標籤。

使用 Cloud Build

使用 Cloud Build

run-gmp-sidecar 存放區包含 Cloud Build 的設定檔。這些檔案會將建構及部署範例應用程式所需的步驟整合在一起。

您也可以手動執行 Cloud Build 處理的步驟。詳情請參閱「手動建構及執行」。

設定 Cloud Build

這些設定檔需要 Cloud Build 服務帳戶和 Artifact Registry 存放區。run-gmp-sidecar 存放區也包含 create-sa-and-ar.sh 指令碼,可執行下列操作:

  • 建立服務帳戶 run-gmp-sa@PROJECT_ID.iam.gserviceaccount.com。
  • 將下列角色授予服務帳戶:
    • roles/iam.serviceAccountUser
    • roles/storage.objectViewer
    • roles/logging.logWriter
    • roles/artifactregistry.createOnPushWriter
    • roles/secretmanager.admin
    • roles/secretmanager.secretAccessor
    • roles/run.admin
  • 建立 Artifact Registry 存放區 run-gmp,用於存放容器映像檔。

執行下列指令,建立 run-gmp-sa 服務帳戶和 run-gmp 存放區:

./create-sa-and-ar.sh

權限需要一些時間才能生效,因此建議您等待約 30 秒,再繼續下一個步驟。否則可能會看到授權錯誤。

提交 Cloud Build 要求

設定 run-gmp-sa 服務帳戶和 run-gmp 存放區後,即可提交 Cloud Build 設定檔,啟動 Cloud Build 工作。您可以使用下列 gcloud builds submit 指令:

gcloud builds submit . --config=cloudbuild-simple.yaml --region=REGION

這個指令需要幾分鐘才能執行完畢,但幾乎會立即指出 Cloud Build 建構作業詳細資料的位置。訊息大致如下:

Logs are available at [
https://console.cloud.google.com/cloud-build/builds/637860fb-7a14-46f2-861e-09c1dc4cea6b?project=PROJECT_NUMBER].

如要查看建構進度,請在瀏覽器中前往傳回的網址。您也可以在 Cloud Logging 中查看 sidecar 記錄。

檢查服務網址

Cloud Build 工作結束後,請執行下列指令,檢查 Cloud Run 服務端點網址:

gcloud run services describe my-cloud-run-service --region=REGION --format="value(status.url)"

這項指令會傳回服務網址,如下所示:

https://my-cloud-run-service-abcdefghij-ue.a.run.app

手動建構及執行

手動建構及執行

您可以手動執行 Cloud Build 處理的步驟,詳情請參閱「使用 Cloud Build」。以下各節說明如何手動執行相同工作。

設定後續步驟會用到的變數

後續幾個步驟會使用環境變數來設定常用值。請使用下列指令設定這些變數:

export GCP_PROJECT=PROJECT_ID
export REGION=REGION

建立容器映像檔存放區

執行下列指令,為容器映像檔建立 Artifact Registry 存放區:

gcloud artifacts repositories create run-gmp \
    --repository-format=docker \
    --location=${REGION}

建構及推送範例應用程式

本範例使用 Linux 上的 Docker 建構範例應用程式,並推送至 Artifact Registry 存放區。如果您是在 Windows 或 macOS 環境中工作,可能需要調整這些指令。

如要建構範例應用程式並推送至 Artifact Registry,請按照下列步驟操作:

  1. 使用 Google Cloud CLI 驗證 Docker 用戶端:

    gcloud auth configure-docker ${REGION}-docker.pkg.dev
    
  2. 前往 run-gmp-sidecar 存放區中的 simple-app 目錄:

    pushd sample-apps/simple-app
    

  3. 執行下列指令,建構 simple-app 應用程式:

    docker build -t ${REGION}-docker.pkg.dev/${GCP_PROJECT}/run-gmp/sample-app .
    
  4. 執行下列指令,推送建構好的應用程式映像檔:

    docker push ${REGION}-docker.pkg.dev/${GCP_PROJECT}/run-gmp/sample-app
    

  5. 返回 run-gmp-sidecar 目錄:

    popd
    

設定 Cloud Run 服務

run-gmp-sidecar 存放區中的 run-service-simple.yaml 檔案定義了多容器 Cloud Run 服務,該服務會使用您在先前步驟中建構的範例應用程式和收集器映像檔。run-service-simple.yaml 檔案包含下列 Service 規格:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  annotations:
    run.googleapis.com/launch-stage: ALPHA
    run.googleapis.com/cpu-throttling: 'false'
  name: my-cloud-run-service
spec:
  template:
    metadata:
      annotations:
        run.googleapis.com/execution-environment: gen2
        run.googleapis.com/container-dependencies: '{"collector":["app"]}'
    spec:
      containers:
      - image: "%SAMPLE_APP_IMAGE%"
        name: app
        startupProbe:
          httpGet:
            path: /startup
            port: 8000
        livenessProbe:
          httpGet:
            path: /liveness
            port: 8000
        ports:
        - containerPort: 8000
      - image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/cloud-run-gmp-sidecar/cloud-run-gmp-sidecar:1.2.0"
        name: collector

這個檔案包含您在先前步驟中建構的映像檔預留位置值,因此您必須將預留位置更新為Google Cloud 專案的實際值。

執行下列指令,替換 %SAMPLE_APP_IMAGE% 預留位置:

sed -i s@%SAMPLE_APP_IMAGE%@REGION-docker.pkg.dev/${GCP_PROJECT}/run-gmp/sample-app@g run-service-simple.yaml

部署 Cloud Run 服務

使用您的值更新 run-service-simple.yaml 檔案後,您可以執行下列指令,建立及部署 Cloud Run 服務:

gcloud run services replace run-service-simple.yaml --region=REGION
   

這項指令會傳回服務網址,如下所示:

https://my-cloud-run-service-abcdefghij-ue.a.run.app

允許未經驗證的 HTTP 存取

您必須先變更 Cloud Run 服務政策,接受未經驗證的 HTTP 存取,才能向服務網址提出要求。run-gmp-sidecar 存放區中的 policy.yaml 檔案包含必要變更。

如要變更服務政策,請執行下列指令:

gcloud run services set-iam-policy my-cloud-run-service policy.yaml --region=REGION

確認應用程式正在執行

如要確認 Cloud Run 服務是否正確執行範例應用程式,請使用 curl 公用程式存取服務的 metrics 端點。

  1. 執行下列指令,取得服務網址:

    SERVICE_URL=$(gcloud run services describe my-cloud-run-service --region=REGION --format 'value(status.url)')
    

    將 REGION 替換為服務的 Cloud Run 區域。

  2. 執行下列指令,將要求傳送至服務網址:

    curl $SERVICE_URL
    

如果應用程式成功啟動,您會看到下列回應:

User request received!

在 Metrics Explorer 查看應用程式指標

app 範例容器會寫入下列指標:

  • foo_metric:目前時間,以浮點值表示 (量表)。
  • bar_metric:目前時間,以浮點值 (計數器) 表示。

如要在 Metrics Explorer 查看這些指標,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Metrics Explorer」頁面:

    前往「Metrics Explorer」

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。

  2. 在查詢建立工具窗格的工具列中,選取名為 「PromQL」PromQL的按鈕。

  3. 在編輯器窗格輸入下列查詢:

    foo_metric
    
  4. 按一下「Add query」(新增查詢)。

  5. 在查詢建立工具窗格的工具列中,選取名為 「PromQL」PromQL的按鈕。

  6. 在第二個編輯器窗格輸入下列查詢:

    bar_metric
    
  7. 點選「執行查詢」。

  8. 如要查看指標詳細資料,請在標示為「Chart Table Both」(圖表表格兩者) 的切換鈕中,選取「Both」(兩者)。

清除所用資源

完成範例應用程式實驗後,您可以使用 run-gmp-sidecar 存放區中的 clean-up-cloud-run.sh 指令碼,刪除您可能為範例建立的下列資源:

  • Cloud Run 服務。
  • Artifact Registry 存放區。
  • 為 Cloud Build 建立的服務帳戶。

刪除這些資源可確保執行範例後不會產生費用。

如要清除範例應用程式,請執行 clean-up-cloud-run.sh 指令碼:

./clean-up-cloud-run.sh

在 Metrics Explorer 查看自我指標

Managed Service for Prometheus sidecar 會向 Cloud Monitoring 回報下列指標:

  • agent_uptime:sidecar 收集器的運作時間 (計數器)。
  • agent_memory_usage:sidecar 收集器消耗的記憶體 (量規)。
  • agent_api_request_count:Sidecar 收集器發出的 API 要求數量 (計數器)。
  • agent_monitoring_point_count:sidecar 收集器寫入 Cloud Monitoring 的指標點數量 (計數器)。

如要在 Metrics Explorer 中查看 Sidecar 的自我指標,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Metrics Explorer」頁面:

    前往「Metrics Explorer」

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。

  2. 在查詢建立工具窗格的工具列中,選取名為 「PromQL」PromQL的按鈕。

  3. 在編輯器窗格中輸入要查詢的指標名稱,例如:

    agent_api_request_count
    
  4. 點選「執行查詢」。

  5. 如要查看指標詳細資料,請在標示為「Chart Table Both」(圖表表格兩者) 的切換鈕中,選取「Both」(兩者)。

在 Logs Explorer 中查看自我記錄

Managed Service for Prometheus sidecar 會將記錄寫入 Cloud Logging。sidecar 會針對 Logging 受監控資源類型 cloud_run_revision 寫入記錄。

如要在 Logs Explorer 中查看 sidecar 的記錄,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的 「Logs Explorer」頁面:

    前往「Logs Explorer」(記錄檔探索工具)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。

  2. 選取「Cloud Run Revision」(Cloud Run 修訂版本) 資源類型,或輸入下列查詢,然後點選「Run query」(執行查詢):

    resource.type="cloud_run_revision"
    

關於收集的指標

sidecar 發出的指標擷取至 Cloud Monitoring 時,會寫入 Cloud Monitoring prometheus_target 受監控資源類型。這個資源類型會用於應用程式指標和 Sidecar 的自我指標。

寫入指標時,sidecar 會設定資源標籤,如下所示:

  • project_id:執行容器的 Google Cloud 專案 ID。
  • location:容器執行所在的 Google Cloud 區域。
  • cluster:值 __run__。
  • namespace:執行中的 Cloud Run 服務名稱,來自 K_SERVICE 環境變數。
  • job:RunMonitoring 設定中的名稱,預設為 run-gmp-sidecar。
  • instance:本機工作負載的值 faas.ID:PORT,容器會從該工作負載提取指標。faas.ID 值是 Cloud Run 執行個體的執行個體 ID。

sidecar 也會新增下列指標標籤:

  • instanceId:Cloud Run 執行個體的 ID。
  • service_name:執行中的 Cloud Run 服務名稱。
  • revision_name:執行中的 Cloud Run 修訂版本名稱。
  • configuration_name:執行中的 Cloud Run 設定名稱。

系統預設會新增這些指標標籤。如果您使用自訂 RunMonitoring 設定,可以在 RunMonitoring 規格中使用 targetLabels 選項,省略 service_name、revision_name 和 configuration_name 標籤。您也可以使用自訂設定,重新標示 service_name、revision_name 和 configuration_name 標籤的值。

與擷取指標一併顯示的所有其他標籤,都來自您的指標。如果使用者定義的標籤與系統提供的標籤衝突,使用者定義的標籤會加上 exported_ 字串前置字元。舉例來說,使用者指定的標籤 namespace="playground" 與系統定義的 namespace 標籤衝突,因此使用者標籤會顯示為 exported_namespace="playground"。

指標類型

當 sidecar 發出的指標擷取至 Cloud Monitoring 時,指標會寫入為 prometheus.googleapis.com 指標,且 Prometheus 指標的類型會附加至名稱結尾。舉例來說,範例應用程式會發出名為 foo_metric 的 Prometheus 測量指標。在 Cloud Monitoring 中,指標會儲存為指標類型 prometheus.googleapis.com/foo_metric/gauge。

使用 PromQL 查詢指標時,您可以使用 Prometheus 名稱,如「在 Metrics Explorer 中查看應用程式指標」和「在 Metrics Explorer 中查看自身指標」所示。在 Metrics Explorer 中使用查詢建立工具或 Monitoring Query Language (MQL) 等工具時,Cloud Monitoring 指標類型會派上用場。

帳單

sidecar 發出的指標會以前置字串 prometheus.googleapis.com 擷取至 Cloud Monitoring。具有這個前置字元的指標會依擷取的樣本數計費。如要進一步瞭解計費方式和 Managed Service for Prometheus,請參閱「計費方式」。