部署 Google Cloud Managed Service for Prometheus 後,您可以查詢傳送至代管服務的資料,並在圖表和資訊主頁中顯示結果。
本文說明指標範圍 (決定可查詢的資料),以及如何使用 Grafana 擷取及運用您收集的資料。
Managed Service for Prometheus 的所有查詢介面都已設定為使用 Cloud Monitoring API 從 Monarch 擷取資料。只要查詢 Monarch,而非查詢本機 Prometheus 伺服器的資料,就能大規模進行全域監控。
事前準備
如果尚未部署代管服務,請設定代管收集或自行部署收集。如果您只對使用 PromQL 查詢 Cloud Monitoring 指標感興趣,可以略過這個步驟。
設定環境
為避免重複輸入專案 ID 或叢集名稱,請執行下列設定:
請依下列方式設定指令列工具:
設定 gcloud CLI,以參照Google Cloud 專案的 ID:
gcloud config set project PROJECT_ID
將
kubectl
CLI 設為使用叢集:kubectl config set-cluster CLUSTER_NAME
如要進一步瞭解這些工具,請參閱下列說明:
設定命名空間
為您建立的資源建立 NAMESPACE_NAME
Kubernetes 命名空間,做為範例應用程式的一部分:
kubectl create ns NAMESPACE_NAME
驗證服務帳戶憑證
如果 Kubernetes 叢集已啟用 Workload Identity Federation for GKE, 則可以略過本節。
在 GKE 上執行時,Managed Service for Prometheus 會根據 Compute Engine 預設服務帳戶,自動從環境中擷取憑證。根據預設,預設服務帳戶具備必要權限 monitoring.metricWriter
和 monitoring.viewer
。如果您未使用 GKE 的 Workload Identity Federation,且先前已從預設節點服務帳戶移除任一角色,請先重新新增缺少的權限,再繼續操作。
設定 Workload Identity Federation for GKE 的服務帳戶
如果 Kubernetes 叢集未啟用 GKE 適用的工作負載身分聯盟,則可跳過本節。
Managed Service for Prometheus 會使用 Cloud Monitoring API 擷取指標資料。如果叢集使用 GKE 適用的工作負載身分聯盟,您必須授予 Kubernetes 服務帳戶 Monitoring API 的權限。本節說明下列事項:
- 建立專屬Google Cloud 服務帳戶。
gmp-test-sa
. - 將 Google Cloud 服務帳戶繫結至測試命名空間中的預設 Kubernetes 服務帳戶,
NAMESPACE_NAME
。 - 將必要權限授予 Google Cloud 服務帳戶。
建立及繫結服務帳戶
這個步驟會出現在 Managed Service for Prometheus 說明文件的多個位置。如果您已在先前的作業中執行這個步驟,則無須重複執行。直接跳到「授權服務帳戶」。
下列指令序列會建立 gmp-test-sa
服務帳戶,並將其繫結至 NAMESPACE_NAME
命名空間中的預設 Kubernetes 服務帳戶:
gcloud config set project PROJECT_ID \ && gcloud iam service-accounts create gmp-test-sa \ && gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[NAMESPACE_NAME/default]" \ gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \ && kubectl annotate serviceaccount \ --namespace NAMESPACE_NAME \ default \ iam.gke.io/gcp-service-account=gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com
如果您使用其他 GKE 命名空間或服務帳戶,請適當調整指令。
授權給服務帳戶
相關權限會歸類為角色,您可將角色授予主體,在本例中即為 Google Cloud服務帳戶。如要進一步瞭解 Monitoring 角色,請參閱存取權控管。
下列指令會授予 Google Cloud 服務帳戶 (gmp-test-sa
) 讀取指標資料所需的 Monitoring API 角色。
如果您已在先前的作業中授予 Google Cloud 服務帳戶特定角色,就不必再次執行這項操作。
如要授權服務帳戶從多專案指標範圍讀取資料,請按照這些操作說明操作,然後參閱「變更查詢的專案」。gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/monitoring.viewer \ && \ gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator
對 GKE 適用的 Workload Identity 聯盟設定進行偵錯
如果無法順利使用 Workload Identity Federation for GKE,請參閱驗證 Workload Identity Federation for GKE 設定的說明文件,以及 Workload Identity Federation for GKE 疑難排解指南。
設定 Workload Identity Federation for GKE 時,最常見的錯誤來源是錯別字和部分複製貼上,因此我們強烈建議使用這些操作說明中程式碼範例內建的可編輯變數和可點選的複製貼上圖示。
實際工作環境中的 GKE 工作負載身分聯盟
本文所述範例會將 Google Cloud 服務帳戶繫結至預設 Kubernetes 服務帳戶,並授予 Google Cloud服務帳戶使用 Monitoring API 的所有必要權限。
在正式環境中,您可能需要使用更精細的方法,為每個元件建立服務帳戶,並授予最基本的權限。如要進一步瞭解如何設定服務帳戶來管理工作負載身分,請參閱「使用 Workload Identity Federation for GKE」。
查詢和指標範圍
無論使用哪種方法查詢資料,可查詢的資料都取決於 Cloud Monitoring 建構的指標範圍。舉例來說,如果您使用 Grafana 查詢 Managed Service for Prometheus 資料,則必須將每個指標範圍設定為獨立的資料來源。
Monitoring 指標範圍是僅限讀取時間的建構元件,可讓您查詢屬於多個 Google Cloud 專案的指標資料。每個指標範圍都會由指定 Google Cloud 專案代管,該專案稱為「範圍專案」。
根據預設,專案是自身指標範圍的限定範圍專案,而指標範圍包含該專案的指標和設定。限定範圍專案的指標範圍可包含多個受監控的專案,且限定範圍專案可查看指標範圍內所有受監控專案的指標和設定。受監控專案也可以屬於多個指標範圍。
在限定範圍專案中查詢指標時,如果該專案代管多專案指標範圍,您就能從多項專案擷取資料。如果指標範圍包含所有專案,系統就會評估全域查詢和規則。
如要進一步瞭解專案範圍和指標範圍,請參閱「指標範圍」。如要瞭解如何設定多專案指標範圍,請參閱「查看多項專案的指標」。
Cloud Monitoring 中的 Managed Service for Prometheus 資料
如要驗證 Prometheus 資料是否已匯出,最簡單的方法是在 Google Cloud 主控台中使用 Cloud Monitoring Metrics Explorer 頁面,該頁面支援 PromQL。如需操作說明,請參閱在 Cloud Monitoring 中使用 PromQL 查詢。
您也可以將 Grafana 資訊主頁匯入 Cloud Monitoring。這樣一來,您就能繼續使用社群建立或個人專屬的 Grafana 資訊主頁,不必設定或部署 Grafana 執行個體。
Grafana
Managed Service for Prometheus 使用 Grafana 的內建 Prometheus 資料來源,因此您可以繼續使用任何社群建立或個人 Grafana 資訊主頁,無須進行任何變更。
視需要部署 Grafana
如果叢集中沒有正在執行的 Grafana 部署作業,您可以建立暫時性測試部署作業來進行實驗。
如要建立暫時性 Grafana 部署作業,請將 Managed Service for Prometheus grafana.yaml
資訊清單套用至叢集,然後透過通訊埠轉送將 grafana
服務送至本機。由於 CORS 限制,您無法使用 Cloud Shell 存取 Grafana 部署作業。
套用
grafana.yaml
資訊清單:kubectl -n NAMESPACE_NAME apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.15.3/examples/grafana.yaml
將
grafana
服務的通訊埠轉送至本機電腦。這個範例會將服務轉送至通訊埠 3000:kubectl -n NAMESPACE_NAME port-forward svc/grafana 3000
這個指令不會傳回任何內容,但執行時會回報網址的存取次數。
您可以在瀏覽器中透過網址
http://localhost:3000
存取 Grafana,並使用使用者名稱:密碼admin:admin
。
接著,按照下列步驟將新的 Prometheus 資料來源新增至 Grafana:
前往 Grafana 部署作業,例如瀏覽至
http://localhost:3000
URL,即可前往 Grafana 歡迎頁面。從 Grafana 主選單選取「Connections」(連結),然後選取「Data Sources」(資料來源)。
選取「新增資料來源」,然後選取 Prometheus 做為時間序列資料庫。
為資料來源命名,將
URL
欄位設為http://localhost:9090
,然後選取「儲存並測試」。您可以忽略任何指出資料來源設定有誤的錯誤。記下部署作業的本機服務網址,網址應類似於以下示例:
http://grafana.NAMESPACE_NAME.svc:3000
設定及驗證 Grafana 資料來源
Google Cloud 所有 API 都必須使用 OAuth2 進行驗證,但 Grafana 不支援對 Prometheus 資料來源使用的服務帳戶進行 OAuth2 驗證。如要搭配 Grafana 使用 Managed Service for Prometheus,請使用資料來源同步器,為服務帳戶產生 OAuth2 憑證,並透過 Grafana 資料來源 API 將憑證同步至 Grafana。
您必須使用資料來源同步器設定並授權 Grafana,才能在全球查詢資料。如未按照這些步驟操作,Grafana 只會針對本機 Prometheus 伺服器中的資料執行查詢。
資料來源同步器是一種指令列介面工具,可將設定值遠端傳送至指定的 Grafana Prometheus 資料來源。這可確保 Grafana 資料來源已正確設定下列項目:
- 驗證,方法是定期更新 OAuth2 存取權杖
- 設為 Prometheus 伺服器 URL 的 Cloud Monitoring API
- HTTP 方法設為 GET
- Prometheus 類型和版本設為最低 2.40.x
- HTTP 和查詢逾時值設為 2 分鐘
資料來源同步器必須重複執行。由於服務帳戶存取權杖的預設存留時間為一小時,每 10 分鐘執行一次資料來源同步器,可確保 Grafana 和 Cloud Monitoring API 之間有不中斷的已驗證連線。
您可以選擇使用 Kubernetes CronJob 執行資料來源同步器,也可以使用 Cloud Run 和 Cloud Scheduler,享受完全無伺服器的體驗。如果您在本機部署 Grafana (例如使用開放原始碼 Grafana 或 Grafana Enterprise),建議在 Grafana 執行的叢集中執行資料來源同步器。如果您使用 Grafana Cloud,建議選擇完全無伺服器選項。
使用無伺服器
如要使用 Cloud Run 和 Cloud Scheduler 部署及執行無伺服器資料來源同步器,請按照下列步驟操作:
選擇要部署資料來源同步器的專案。建議您選擇多專案指標範圍的限定範圍專案。資料來源同步器會使用設定的 Google Cloud 專案做為範圍專案。
接著,請設定資料來源同步器專用的服務帳戶並授權。 下列指令序列會建立服務帳戶,並授予多個 IAM 角色。前兩個角色可讓服務帳戶從 Cloud Monitoring API 讀取資料,並產生服務帳戶權杖。服務帳戶可透過最後兩個角色,從 Secret Manager 讀取 Grafana 服務帳戶權杖,並叫用 Cloud Run:
gcloud config set project PROJECT_ID \ && gcloud iam service-accounts create gmp-ds-syncer-sa \ && gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-ds-syncer-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/monitoring.viewer \ && \ gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-ds-syncer-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator \ && \ gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-ds-syncer-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/secretmanager.secretAccessor && \ gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-ds-syncer-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/run.invoker
找出 Grafana 執行個體的網址,例如 Grafana Cloud 部署作業的
https://yourcompanyname.grafana.net
。您的 Grafana 執行個體必須可從 Cloud Run 存取,也就是必須可從更廣泛的網際網路存取。如果無法從網際網路存取 Grafana 執行個體,建議您改為在 Kubernetes 上部署資料來源同步器。
選擇要用於 Managed Service for Prometheus 的 Grafana Prometheus 資料來源 (可以是新的或預先存在的 Prometheus 資料來源),然後找出並記下資料來源 UID。探索或設定資料來源時,您可以在網址的最後一部分找到資料來源 UID,例如
https://yourcompanyname.grafana.net/connections/datasources/edit/GRAFANA_DATASOURCE_UID
。請勿複製整個資料來源網址。僅複製網址中的專屬 ID。設定 Grafana 服務帳戶:建立服務帳戶,並為該帳戶產生權杖:
在 Grafana 導覽側欄中,依序點選「Administration」「Users and Access」「Service Accounts」。
在 Grafana 中建立服務帳戶,方法是按一下「Add service account」(新增服務帳戶),然後為服務帳戶命名,並授予「Data Sources > Writer」(資料來源 > 寫入者) 角色。請務必按一下「套用」按鈕指派角色。 在舊版 Grafana 中,您可以使用「管理員」角色。
按一下「新增服務帳戶權杖」。
將權杖到期時間設為「永不過期」,然後按一下「產生權杖」,接著將產生的權杖複製到剪貼簿,以便在下一步中做為 GRAFANA_SERVICE_ACCOUNT_TOKEN 使用:
使用先前步驟的結果,設定下列文件變數。您不必將這段文字貼到終端機:
# These values are required. REGION # The Google Cloud region where you want to run your Cloud Run job, such as us-central1. PROJECT_ID # The Project ID from Step 1. GRAFANA_INSTANCE_URL # The Grafana instance URL from step 2. This is a URL. Include "http://" or "https://". GRAFANA_DATASOURCE_UID # The Grafana data source UID from step 3. This is not a URL. GRAFANA_SERVICE_ACCOUNT_TOKEN # The Grafana service account token from step 4.
在 Secret Manager 中建立密鑰:
gcloud secrets create datasource-syncer --replication-policy="automatic" && \ echo -n GRAFANA_SERVICE_ACCOUNT_TOKEN | gcloud secrets versions add datasource-syncer --data-file=-
建立下列 YAML 檔案,並命名為
cloud-run-datasource-syncer.yaml
:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: datasource-syncer-job spec: template: spec: taskCount: 1 template: spec: containers: - name: datasource-syncer image: gke.gcr.io/prometheus-engine/datasource-syncer:v0.15.3-gke.0 args: - "--datasource-uids=GRAFANA_DATASOURCE_UID" - "--grafana-api-endpoint=GRAFANA_INSTANCE_URL" - "--project-id=PROJECT_ID" env: - name: GRAFANA_SERVICE_ACCOUNT_TOKEN valueFrom: secretKeyRef: key: latest name: datasource-syncer serviceAccountName: gmp-ds-syncer-sa@PROJECT_ID.iam.gserviceaccount.com
然後執行下列指令,使用 YAML 檔案建立 Cloud Run 工作:
gcloud run jobs replace cloud-run-datasource-syncer.yaml --region REGION
在 Cloud Scheduler 中建立排程,每 10 分鐘執行一次 Cloud Run 工作:
gcloud scheduler jobs create http datasource-syncer \ --location REGION \ --schedule="*/10 * * * *" \ --uri="https://REGION-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/PROJECT_ID/jobs/datasource-syncer-job:run" \ --http-method POST \ --oauth-service-account-email=gmp-ds-syncer-sa@PROJECT_ID.iam.gserviceaccount.com
然後強制執行剛建立的排程器:
gcloud scheduler jobs run datasource-syncer --location REGION
資料來源最多可能需要 15 秒才會更新。
前往新設定的 Grafana 資料來源,確認 Prometheus 伺服器網址值開頭為
https://monitoring.googleapis.com
。你可能需要重新整理頁面。驗證完成後,請前往頁面底部,選取「儲存並測試」,並確認您看到綠色勾號,表示資料來源已正確設定。您至少需要選取一次「儲存並測試」,確保 Grafana 中的標籤自動完成功能正常運作。
使用 Kubernetes
如要在 Kubernetes 叢集中部署及執行資料來源同步器,請執行下列操作:
選擇要部署資料來源同步器的專案、叢集和命名空間。 建議您在屬於多專案指標範圍的範圍專案的叢集中,部署資料來源同步器。 資料來源同步器會使用已設定的 Google Cloud 專案做為範圍專案。
接著,請確認您已正確設定並授權資料來源同步器:
- 如果您使用 GKE 適用的工作負載身分聯盟,請按照操作說明建立及授權服務帳戶。請務必將其繫結至要執行資料來源同步器的 Kubernetes 命名空間。
- 如果您未使用 Workload Identity Federation for GKE,請確認您未修改預設的 Compute Engine 服務帳戶。
- 如果不是在 GKE 上執行,請參閱「在 GKE 以外執行資料來源同步器」。
接著,請判斷是否需要進一步授權資料來源同步器,以進行多專案查詢:
- 如果您的本機專案是範圍界定專案,且您已按照驗證或設定本機專案服務帳戶的指示操作,則多專案查詢功能應可正常運作,不需進一步設定。
- 如果本機專案不是範圍專案,您需要授權資料來源同步器,對範圍專案執行查詢。如需操作說明,請參閱「授權資料來源同步器取得多專案監控功能」。
判斷 Grafana 執行個體的網址,例如 Grafana Cloud 部署作業的
https://yourcompanyname.grafana.net
,或是使用測試部署 YAML 設定的本機執行個體http://grafana.NAMESPACE_NAME.svc:3000
。如果您在本機部署 Grafana,且叢集已設定為使用 TLS 保護所有叢集內流量,則必須在網址中使用
https://
,並使用支援的 TLS 驗證選項進行驗證。選擇要用於 Managed Service for Prometheus 的 Grafana Prometheus 資料來源 (可以是新的或現有的資料來源),然後找出並記下資料來源 UID。探索或設定資料來源時,您可以在網址的最後一部分找到資料來源 UID,例如:
https://yourcompanyname.grafana.net/connections/datasources/edit/GRAFANA_DATASOURCE_UID.
請勿複製整個資料來源網址。僅複製網址中的專屬 ID。設定 Grafana 服務帳戶:建立服務帳戶,並為該帳戶產生權杖:
- 在 Grafana 導覽側欄中,依序點選「Administration」「Users and Access」「Service Accounts」。
按一下「Add service account」(新增服務帳戶) 建立服務帳戶,為帳戶命名,並在 Grafana 中授予「管理員」角色。如果您的 Grafana 版本允許更精細的權限,則可以使用「資料來源」>「寫入者」角色。
按一下「新增服務帳戶權杖」。
將權杖到期日設為「永不過期」,然後按一下「產生權杖」,接著將產生的權杖複製到剪貼簿,以便在下一步中做為 GRAFANA_SERVICE_ACCOUNT_TOKEN 使用。
使用上一個步驟的結果,設定下列環境變數:
# These values are required. PROJECT_ID=SCOPING_PROJECT_ID # The value from Step 1. GRAFANA_API_ENDPOINT=GRAFANA_INSTANCE_URL # The value from step 2. This is a URL. DATASOURCE_UIDS=GRAFANA_DATASOURCE_UID # The value from step 3. This is not a URL. GRAFANA_API_TOKEN=GRAFANA_SERVICE_ACCOUNT_TOKEN # The value from step 4.
執行下列指令,建立 CronJob,在初始化時重新整理資料來源,然後每 10 分鐘重新整理一次。如果您使用 GKE 的 Workload Identity Federation,則 NAMESPACE_NAME 的值應與先前繫結至服務帳戶的命名空間相同。
curl https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.15.3/cmd/datasource-syncer/datasource-syncer.yaml \ | sed 's|$DATASOURCE_UIDS|'"$DATASOURCE_UIDS"'|; s|$GRAFANA_API_ENDPOINT|'"$GRAFANA_API_ENDPOINT"'|; s|$GRAFANA_API_TOKEN|'"$GRAFANA_API_TOKEN"'|; s|$PROJECT_ID|'"$PROJECT_ID"'|;' \ | kubectl -n NAMESPACE_NAME apply -f -
前往新設定的 Grafana 資料來源,確認 Prometheus 伺服器網址值開頭為
https://monitoring.googleapis.com
。你可能需要重新整理頁面。驗證完成後,請前往頁面底部,然後選取「儲存並測試」。您至少需要選取這個按鈕一次,才能確保 Grafana 中的標籤自動完成功能正常運作。
使用 Grafana 執行查詢
您現在可以使用已設定的資料來源建立 Grafana 資訊主頁,並執行查詢。以下螢幕截圖顯示 Grafana 圖表,其中顯示 up
指標:
如要瞭解如何使用 PromQL 查詢Google Cloud 系統指標,請參閱「適用於 Cloud Monitoring 指標的 PromQL」。
在 GKE 以外執行資料來源同步器
如果您在 Google Kubernetes Engine 叢集中執行資料來源同步器,或是使用無伺服器選項,則可以略過本節。 如果在 GKE 上遇到驗證問題,請參閱「驗證服務帳戶憑證」。
在 GKE 上執行時,資料來源同步器會根據節點的服務帳戶或 GKE 適用的工作負載身分聯盟設定,自動從環境中擷取憑證。在非 GKE Kubernetes 叢集中,必須使用 GOOGLE_APPLICATION_CREDENTIALS
環境變數,明確向資料來源同步器提供憑證。
將環境設為目標專案:
gcloud config set project PROJECT_ID
建立服務帳戶:
gcloud iam service-accounts create gmp-test-sa
這個步驟會建立服務帳戶,您可能已在「適用於 GKE 的工作負載身分聯盟」說明中建立該帳戶。
將必要權限授予服務帳戶:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/monitoring.viewer \ && \ gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator
建立並下載服務帳戶的金鑰:
gcloud iam service-accounts keys create gmp-test-sa-key.json \ --iam-account=gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com
使用
GOOGLE_APPLICATION_CREDENTIALS
環境變數設定金鑰檔案路徑。
授權資料來源同步器取得多項專案的監控資料
Managed Service for Prometheus 支援使用指標範圍進行多專案監控。
如果您使用無伺服器選項,且所選專案是多專案指標範圍的限定範圍專案,即可查詢多個專案。
如果是在 Kubernetes 上部署資料來源同步器,且本機專案是範圍專案,並已按照驗證或設定本機專案服務帳戶的操作說明進行設定,則應可直接查詢多個專案,不需進一步設定。
如果本機專案不是範圍專案,則必須授權本機專案的預設運算服務帳戶或 GKE 服務帳戶的 Workload Identity Federation,讓這些帳戶具有範圍專案的monitoring.viewer
存取權。然後傳遞範圍界定專案的 ID 做為 PROJECT_ID 環境變數的值。
如果您使用 Compute Engine default
服務帳戶,可以採取下列任一做法:
如要授予服務帳戶存取其他專案所需的權限,請按照下列步驟操作: Google Cloud
授予服務帳戶從要查詢的目標專案讀取資料的權限:
gcloud projects add-iam-policy-binding SCOPING_PROJECT_ID \ --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/monitoring.viewer
設定資料來源同步器時,請將範圍界定專案的 ID 做為
PROJECT_ID
環境變數的值傳遞。
檢查 Kubernetes CronJob
如果您在 Kubernetes 上部署資料來源同步器,可以檢查 CronJob,並執行下列指令,確保所有變數都已正確設定:
kubectl describe cronjob datasource-syncer
如要查看最初設定 Grafana 的 Job 記錄,請在套用 datasource-syncer.yaml
檔案後立即執行下列指令:
kubectl logs job.batch/datasource-syncer-init
拆解
如要在 Kubernetes 上停用資料來源同步器 Cronjob,請執行下列指令:
kubectl delete -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.15.3/cmd/datasource-syncer/datasource-syncer.yaml
停用資料來源同步器後,系統就不會再以新的驗證憑證更新連結的 Grafana,因此您將無法再查詢 Managed Service for Prometheus。
API 相容性
Managed Service for Prometheus 支援下列 Prometheus HTTP API 端點,網址前置字元為 https://monitoring.googleapis.com/v1/projects/PROJECT_ID/location/global/prometheus/api/v1/
。
如需完整說明文件,請參閱 Cloud Monitoring API 參考說明文件。Cloud Monitoring 語言專屬用戶端程式庫不提供 Prometheus HTTP 端點。
如要瞭解 PromQL 相容性,請參閱 PromQL 支援。
系統完全支援下列端點:
/api/v1/query
/api/v1/query_range
/api/v1/metadata
/api/v1/labels
/api/v1/query_exemplars
只有在提供
__name__
標籤時,/api/v1/label/<label_name>/values
端點才會運作,方法是將標籤做為<label_name>
值,或使用序列選取器完全比對標籤。舉例來說,系統完全支援下列呼叫:/api/v1/label/__name__/values
/api/v1/label/__name__/values?match[]={__name__=~".*metricname.*"}
/api/v1/label/labelname/values?match[]={__name__="metricname"}
這項限制會導致 Grafana 中的
label_values($label)
變數查詢失敗。請改用label_values($metric, $label)
。建議使用這類查詢,因為這樣可避免擷取與指定資訊主頁不相關的指標標籤值。/api/v1/series
端點支援GET
,但不支援POST
要求。 使用資料來源同步器或前端 Proxy 時,系統會為您管理這項限制。您也可以在 Grafana 中設定 Prometheus 資料來源,只發出GET
要求。match[]
參數不支援在__name__
標籤上進行規則運算式比對。
後續步驟
- 使用 Cloud Monitoring 中的 PromQL 快訊。
- 設定受管理規則評估。
- 設定常用匯出工具。