Google 建議使用 Cloud Run 適用的 Managed Service for Prometheus 補充資訊,取得 Cloud Run 服務的 Prometheus 式監控功能。如果 Cloud Run 服務會寫入 OTLP 指標,則可以使用 OpenTelemetry Sidecar。但如果是寫入 Prometheus 指標的服務,請使用本文所述的 Managed Service for Prometheus 補充資訊。
本文說明如何執行下列操作:
- 將 Managed Service for Prometheus 補充資訊新增至現有的 Cloud Run 服務。
- 使用 Sidecar 建構範例應用程式。如果您沒有現有的 Cloud Run 服務,可以使用範例應用程式瞭解 Sidecar 的運作方式。
補充資訊會在伺服器端使用 Google Cloud Managed Service for Prometheus,並在用戶端使用為無伺服器工作負載自訂的 OpenTelemetry Collector 發布作業。這個自訂發布版本包含一些變更,可支援 Cloud Run。收集器會在 10 秒後執行啟動刮除作業,並執行關機刮除作業,無論執行個體存留時間多短都一樣。為確保最高可靠性,建議執行 Sidecar 的 Cloud Run 服務也使用以執行個體為準的計費設定;詳情請參閱「計費設定 (服務)」。如果每秒查詢次數 (QPS) 偏低,導致 CPU 分配受到節流,部分擷取嘗試可能會失敗。隨時分配 CPU 仍可使用。
補充資訊容器會使用 Cloud Run 多重容器 (補充資訊) 功能,將收集器做為補充資訊容器,與工作負載容器一併執行。如要進一步瞭解 Cloud Run 中的 Sidecar,請參閱將多個容器部署至服務 (Sidecar)。
Cloud Run 適用的 Managed Service for Prometheus 邊車容器推出新設定 RunMonitoring
,這是 Kubernetes PodMonitoring
自訂資源的子集。大多數使用者可以採用預設的 RunMonitoring
設定,但您也可以建立自訂設定。如要進一步瞭解預設和自訂 RunMonitoring
設定,請參閱「將補充容器新增至 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
。 詳情請參閱「建構並執行範例應用程式」。
- Cloud Build API:
如要查看專案中已啟用的 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
設定,側車收集器會合成下列預設設定,每 30 秒從通訊埠 8080 擷取指標,指標路徑為 /metrics
:
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。如要新增側車,請按照下列步驟操作:
- 新增容器依附元件註解,指定容器的啟動和關閉順序。在下列範例中,名為「collector」的 Sidecar 容器會在名為「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_value
的label_key
標籤。 - 為每個擷取的指標新增
service
和revision
中繼資料標籤。
如要瞭解可用的設定選項,請參閱「RunMonitoring 規格:設定選項」。
使用自訂 RunMonitoring
設定時,您必須執行下列額外設定:
- 啟用 Secret Manager API,並將 Secret Manager 角色授予 Cloud Run 服務帳戶。詳情請參閱事前準備。
- 將自訂設定儲存為密鑰。
- 將補充資訊新增至 Cloud Run 服務 。
使用 Secret Manager 儲存設定
如要提供自訂 RunMonitoring
設定,請執行下列操作:
- 建立包含自訂設定的檔案。
- 建立包含自訂設定的 Secret Manager 密鑰。
下列指令會從 custom-config.yaml
檔案建立名為 mysecret 的密鑰:
gcloud secrets create mysecret --data-file=custom-config.yaml
修改 custom-config.yaml
檔案後,如要擷取設定變更,必須先刪除並重新建立密鑰,然後重新部署 Cloud Run 服務。
更新 Secret Manager 中的設定
如要隨時更新自訂 RunMonitoring
設定,可以將現有密鑰的新版本新增至 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」的 Sidecar 容器會在名為「app」的應用程式容器啟動後啟動,並在應用程式容器關閉前關閉。
- 為收集器建立容器,在下列範例中命名為「collector」。
- 在
/etc/rungmp/config.yaml
位置掛接密鑰,即可新增密鑰:- 新增密鑰註解,指向保存自訂
RunMonitoring
設定的密鑰。 - 在下列範例中,為指向
config.yaml
檔案的密鑰建立名為「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 輔助資訊的 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 |
是 |
RunMonitoringSpec
這項規格說明 RunMonitoring
設定如何監控 Cloud Run 服務。
欄位 | 說明 | 架構 | 必填 |
---|---|---|---|
endpoints |
要在所選 Pod 上擷取的端點。 | []ScrapeEndpoint |
是 |
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 補充資訊。本節為選用內容。如果您已有 Cloud Run 服務,並想一併部署補充資訊,請參閱「將 Managed Service for Prometheus 補充資訊新增至 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,請按照下列步驟操作:
使用 Google Cloud CLI 驗證 Docker 用戶端:
gcloud auth configure-docker ${REGION}-docker.pkg.dev
前往
run-gmp-sidecar
存放區中的simple-app
目錄:pushd sample-apps/simple-app
執行下列指令,建構
simple-app
應用程式:docker build -t ${REGION}-docker.pkg.dev/${GCP_PROJECT}/run-gmp/sample-app .
執行下列指令,推送建構的應用程式映像檔:
docker push ${REGION}-docker.pkg.dev/${GCP_PROJECT}/run-gmp/sample-app
返回
run-gmp-sidecar
目錄:popd
設定 Cloud Run 服務
run-gmp-sidecar
存放區中的 run-service-simple.yaml
檔案定義了多容器 Cloud Run 服務,該服務會使用您在先前步驟中建構的範例應用程式和收集器映像檔。run-service-simple.yaml
檔案包含下列服務規格:
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
端點。
執行下列指令來取得服務網址:
SERVICE_URL=$(gcloud run services describe my-cloud-run-service --region=REGION --format 'value(status.url)')
將 REGION 替換為服務的 Cloud Run 地區。
執行下列指令,將要求傳送至服務網址:
curl $SERVICE_URL
如果應用程式啟動成功,您會看到以下回應:
User request received!
在 Metrics Explorer 中查看應用程式指標
app
容器範例會寫入下列指標:
foo_metric
:目前時間,以浮點值 (計量表) 表示。bar_metric
:目前時間,以浮點值 (計數器) 表示。
如要在 Metrics Explorer 中查看這些指標,請按照下列步驟操作:
-
前往 Google Cloud 控制台的 leaderboard「Metrics Explorer」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
在查詢建構工具窗格的工具列中,選取名稱為 code MQL 或 code PromQL 的按鈕。
確認已在「Language」(語言) 切換按鈕中選取「PromQL」。語言切換按鈕位於同一工具列,可供你設定查詢格式。
在編輯器窗格中輸入下列查詢:
foo_metric
按一下「新增查詢」。
在查詢建構工具窗格的工具列中,選取名稱為 code MQL 或 code PromQL 的按鈕。
確認已在「Language」(語言) 切換按鈕中選取「PromQL」。語言切換按鈕位於同一工具列,可供你設定查詢格式。
在第二個編輯器窗格中輸入下列查詢:
bar_metric
點選「執行查詢」
如要查看指標詳細資料,請在標示為「圖表」的切換按鈕中,選取「圖表和表格」。
清除所用資源
完成範例應用程式的實驗後,您可以使用 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 輔助資訊會向 Cloud Monitoring 回報下列有關自身的指標:
agent_uptime
:補充容器收集器的正常運作時間 (計數器)。agent_memory_usage
:補充容器收集器消耗的記憶體 (計量表)。agent_api_request_count
:來自 Sidecar 收集器的 API 要求數量 (計數器)。agent_monitoring_point_count
:補充容器收集器寫入 Cloud Monitoring 的指標點數量 (計數器)。
如要在 Metrics Explorer 中查看 Sidecar 的自我指標,請按照下列步驟操作:
-
前往 Google Cloud 控制台的 leaderboard「Metrics Explorer」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
在查詢建構工具窗格的工具列中,選取名稱為 code MQL 或 code PromQL 的按鈕。
確認已在「Language」(語言) 切換按鈕中選取「PromQL」。語言切換按鈕位於同一工具列,可供你設定查詢格式。
在編輯器窗格中輸入要查詢的指標名稱,例如:
agent_api_request_count
點選「執行查詢」
如要查看指標詳細資料,請在標示為「圖表」的切換按鈕中,選取「圖表和表格」。
在記錄檔探索工具中查看自己的記錄
Managed Service for Prometheus 補充資訊會將記錄檔寫入 Cloud Logging。Sidecar 會根據 Logging 受監控資源類型 cloud_run_revision
寫入記錄。
如要在記錄檔探索工具中查看 Sidecar 的記錄,請執行下列操作:
-
前往 Google Cloud 控制台的「Logs Explorer」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。
選取「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 指標類型會派上用場。
帳單
補充資訊發出的指標會擷取至 Cloud Monitoring,並加上 prometheus.googleapis.com
前置字元。前置字元為「custom.googleapis.com」的指標會根據擷取的樣本數計費。如要進一步瞭解帳單和 Managed Service for Prometheus,請參閱「帳單」。