開始使用自行部署的收集資料

本文說明如何設定 Google Cloud Managed Service for Prometheus 和自行部署的收集作業。範例應用程式會部署至 Kubernetes 叢集,並由 Prometheus 伺服器監控,該伺服器會將收集到的指標儲存在 Monarch 中。

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

  • 設定環境和指令列工具。
  • 為啟用 GKE 的叢集設定 Workload Identity Federation 服務帳戶。
  • 在 Kubernetes 上執行 Prometheus 二進位檔。
  • 控制要將哪些指標擷取至 Managed Service for Prometheus。
  • 將 Managed Service for Prometheus 與 Prometheus-operator 設定整合。
  • 手動編譯並執行 Prometheus 二進位檔。

透過自行部署的資料收集作業,您可以照常管理 Prometheus 安裝作業。唯一的差異在於,您要執行 Managed Service for Prometheus 的即用型替換二進位檔 gke.gcr.io/prometheus-engine/prometheus:v2.53.4-gmp.0-gke.1,而非上游 Prometheus 二進位檔。

這個即用型二進位檔會提供額外的設定選項,並搭配使用 --export.* 標記。詳情請參閱 --help 選項的輸出內容。本文件將說明最重要的選項。

Prometheus 代管服務不支援從聯邦伺服器或用於遠端寫入接收器的伺服器匯出指標。您可以使用篩選器本機匯總,複製所有聯合伺服器功能,包括在傳送至 Monarch 之前匯總資料,以減少擷取量。

將資料串流至 Managed Service for Prometheus 會消耗額外的資源。如果您是自行部署收集器,建議您將 CPU 和記憶體限制提高 5 倍,並根據實際使用情形進行調整。

如要進一步瞭解 Managed 和自行部署的資料收集作業,請參閱「使用 Managed Service for Prometheus 進行資料收集」。

事前準備

本節說明本文所述工作所需的設定。

設定專案和工具

如要使用 Google Cloud Managed Service for Prometheus,您需要下列資源:

  • 已啟用 Cloud Monitoring API 的 Google Cloud 專案。

    • 如果您沒有 Google Cloud 專案,請執行下列操作:

      1. 在 Google Cloud 控制台中,前往「New Project」(新增專案)

        建立新專案

      2. 在「Project Name」欄位中輸入專案名稱,然後按一下「Create」

      3. 前往「帳單」

        前往「帳單」頁面

      4. 如果頁面頂端沒有顯示已選取的專案,請選取您剛建立的專案。

      5. 系統會提示您選擇現有的付款資料或是建立新的付款資料。

      新專案預設會啟用 Monitoring API。

    • 如果您已擁有 Google Cloud 專案,請確認 Monitoring API 已啟用:

      1. 前往「API 和服務」

        前往「API 和服務」

      2. 選取專案。

      3. 點選「啟用 API 和服務」

      4. 搜尋「監控」。

      5. 在搜尋結果中,點選「Cloud Monitoring API」。

      6. 如果畫面未顯示「API 已啟用」,請按一下「啟用」按鈕。

  • Kubernetes 叢集。如果您沒有 Kubernetes 叢集,請按照 GKE 快速入門中的操作說明進行。

您也需要下列指令列工具:

  • gcloud
  • kubectl

gcloudkubectl 工具是 Google Cloud CLI 的一部分。如要瞭解如何安裝這些元件,請參閱「管理 Google Cloud CLI 元件」。如要查看已安裝的 gcloud CLI 元件,請執行下列指令:

gcloud components list

設定環境

為避免重複輸入專案 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.metricWritermonitoring.viewer。如果您未為 GKE 使用 Workload Identity Federation,且先前已從預設節點服務帳戶移除其中任一角色,則必須重新加入缺少的權限,才能繼續操作。

設定 Workload Identity Federation for GKE 的服務帳戶

如果 Kubernetes 叢集未啟用 Workload Identity Federation for GKE,您可以略過本節。

Managed Service for Prometheus 會使用 Cloud Monitoring API 擷取指標資料。如果叢集使用 GKE 適用的工作負載身分聯盟,您必須將 Monitoring API 的權限授予 Kubernetes 服務帳戶。本節說明下列事項:

建立及繫結服務帳戶

這個步驟會出現在 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服務帳戶。如要進一步瞭解監控角色,請參閱「存取權控管」。

下列指令會授予 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.metricWriter

對 GKE 適用的工作負載身分聯盟設定進行偵錯

如果您無法順利使用 Workload Identity Federation for GKE,請參閱相關文件,瞭解如何驗證 Workload Identity Federation for GKE 設定,以及Workload Identity Federation for GKE 疑難排解指南

由於輸入錯誤和部分複製貼上作業是設定 GKE 工作負載身分識別聯邦的常見錯誤來源,因此我們強烈建議您使用這些操作說明中程式碼範例內建的可編輯變數和可點選的複製貼上圖示。

在實際工作環境中使用 Workload Identity Federation for GKE

本文所述範例會將 Google Cloud 服務帳戶繫結至預設 Kubernetes 服務帳戶,並授予 Google Cloud服務帳戶使用 Monitoring API 所需的所有權限。

在正式環境中,您可能會想採用更精細的方法,為每個元件建立服務帳戶,並為每個服務帳戶授予最基本的權限。如要進一步瞭解如何設定服務帳戶以管理工作負載身分,請參閱「使用 GKE 適用的工作負載身分聯盟」。

設定自行部署的收集資料

本節說明如何設定及執行使用自行部署集合的範例應用程式。

部署範例應用程式

範例應用程式會在其 metrics 通訊埠上,發出 example_requests_total 計數器指標和 example_random_numbers 直方圖指標 (以及其他指標)。應用程式的資訊清單定義了三個備用資源。

如要部署範例應用程式,請執行下列指令:

kubectl -n NAMESPACE_NAME apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.15.3/examples/example-app.yaml

執行 Prometheus 替換二進位檔

為了擷取範例應用程式產生的指標資料,您必須部署 Google 分支版本的 Prometheus 伺服器,並將其設定為擷取工作負載的指標以及自己的指標端點。

  1. 如要部署分支伺服器,請執行下列指令:

    kubectl -n NAMESPACE_NAME apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.15.3/examples/prometheus.yaml
    

    這個已部署的 Prometheus 伺服器是上游 Prometheus 二進位檔的輕量分支。它的運作方式與標準 Prometheus 伺服器相同,但也會將資料攝入 Managed Service for Prometheus。

    上述資訊清單提供基本運作範例,可將資料傳送至全球資料儲存庫 Monarch。不會持續儲存資料的本機副本。如要瞭解這項預先定義設定的運作方式和擴充方式,請參閱開放原始碼 Prometheus 設定說明文件

    預先建構的映像檔僅適用於 Linux 節點。如要擷取在 Windows 節點上執行的目標,請在 Linux 節點上部署伺服器,並將其設為擷取 Windows 節點上的端點,或是自行建構 Windows 的二進位檔

  2. 確認 Prometheus 伺服器和範例應用程式的 pod 是否已成功部署:

    kubectl -n NAMESPACE_NAME get pod
    

    如果部署成功,您會看到類似以下的輸出內容:

    NAME                            READY   STATUS    RESTARTS   AGE
    prom-example-84c6f547f5-fglbr   1/1     Running   0          5m
    prom-example-84c6f547f5-jnjp4   1/1     Running   0          5m
    prom-example-84c6f547f5-sqdww   1/1     Running   0          5m
    prometheus-test-0               2/2     Running   1          3m
    

如果您在 GKE 上執行,可以執行下列操作:

如果您是在 GKE 以外執行,則需要建立服務帳戶並授權該帳戶寫入指標資料,如以下章節所述。

明確提供憑證

在 GKE 上執行時,收集 Prometheus 伺服器會根據節點的服務帳戶或 GKE 設定的工作負載身分聯盟,自動從環境中擷取憑證。在非 GKE Kubernetes 叢集中,您必須使用標記或 GOOGLE_APPLICATION_CREDENTIALS 環境變數,明確向收集 Prometheus 伺服器提供憑證。

  1. 將內容設定為目標專案:

    gcloud config set project PROJECT_ID
    
  2. 建立服務帳戶:

    gcloud iam service-accounts create gmp-test-sa
    

    這個步驟會建立服務帳戶,您可能已在 Workload Identity Federation for GKE 操作說明中建立此帳戶。

  3. 將必要權限授予服務帳戶:

    gcloud projects add-iam-policy-binding PROJECT_ID\
      --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \
      --role=roles/monitoring.metricWriter
    

  4. 建立並下載服務帳戶金鑰:

    gcloud iam service-accounts keys create gmp-test-sa-key.json \
      --iam-account=gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com
    
  5. 將金鑰檔案新增為非 GKE 叢集的密鑰:

    kubectl -n NAMESPACE_NAME create secret generic gmp-test-sa \
      --from-file=key.json=gmp-test-sa-key.json
    

  6. 開啟 Prometheus StatefulSet 資源進行編輯:

    kubectl -n NAMESPACE_NAME edit statefulset prometheus-test
    
    1. 將粗體文字新增至資源:

      apiVersion: apps/v1
      kind: StatefulSet
      metadata:
        namespace: NAMESPACE_NAME
        name: example
      spec:
        template
          containers:
          - name: prometheus
            args:
            - --export.credentials-file=/gmp/key.json
      ...
            volumeMounts:
            - name: gmp-sa
              mountPath: /gmp
              readOnly: true
      ...
          volumes:
          - name: gmp-sa
            secret:
              secretName: gmp-test-sa
      ...
      

    2. 儲存檔案並關閉編輯器。套用變更後,系統會重新建立 Pod,並開始使用指定的服務帳戶對指標後端進行驗證。

    或者,您可以使用 GOOGLE_APPLICATION_CREDENTIALS 環境變數設定金鑰檔案路徑,而非使用本範例中設定的旗標。

    自行部署的收集器其他主題

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

    • 篩選要匯出至受管理服務的資料。
    • 轉換現有的部署設定。
    • 在高可用性模式下執行 Prometheus 二進位檔。
    • 建構並執行替換的 Prometheus 二進位檔。
    • 在 Google Cloud外執行 Managed Service for Prometheus。

    篩選已匯出的指標

    如果您收集的資料量很大,建議您避免將部分時間序列傳送至 Managed Service for Prometheus,以降低成本。

    您可以在 Prometheus 抓取設定中使用一般指標重新標籤設定。您可以使用重新標籤設定,在擷取時根據標籤比對捨棄指標。

    有時您可能會想要在本機擷取資料,但不匯出至 Managed Service for Prometheus。如要篩選匯出的指標,您可以使用 --export.match 標記。

    這個標記可指定一或多個 PromQL 系列選取器,且可重複使用。如果時間序列符合至少一個旗標中的所有選取器,就會匯出至 Prometheus 的 Managed Service,也就是說,在判斷資格時,單一旗標中的條件會以 AND 運算,而不同旗標中的條件則會以 OR 運算。以下範例使用了兩個旗標例項:

    ./prometheus \
      --export.match='{job="prometheus"}' \
      --export.match='{__name__=~"job:.+"}' \
      ...
    

    這項變更只會導致「prometheus」工作和記錄規則產生的指標匯出,且匯出的指標會匯總至工作層級 (遵循命名最佳做法)。所有其他系列的樣本都會遭到篩除。根據預設,系統不會指定任何選取器,並匯出所有時間序列。

    --export.match 標記的語意與 Prometheus 聯盟的 match[] 參數相同。因此,您可以直接使用聯盟伺服器的選取器,做為聯盟 Prometheus 伺服器所擷取 Prometheus 伺服器上的標記,將聯盟設定遷移至 Managed Service for Prometheus。不支援從聯合伺服器匯出指標至受管理服務

    如要在篩選器中加入 histogram 類型指標,您必須指定 _count_sum_bucket 指標。您也可以使用萬用字元比對器執行這項操作,例如選取器 {__name__=~"histogram_metric_.+"}

    如果您使用的是 prometheus-operator 程式庫,請使用容器的 EXTRA_ARGS 環境變數設定任何 --export.match 旗標。詳情請參閱「與 prometheus-operator 搭配使用」。

    您可以結合篩選旗標和在本機執行的記錄規則,在傳送至 Monarch 之前「匯總」資料,藉此降低基數和成本。詳情請參閱「費用控管和歸因」。

    Cloud Monitoring 的「指標管理」頁面提供的資訊可協助您控制可計費指標的支出金額,且不會影響可觀察性。「指標管理」頁面會回報下列資訊:

    • 以位元組和樣本為基礎的計費作業量,跨指標網域和個別指標。
    • 指標的標籤和基數資料。
    • 每個指標的讀取次數。
    • 在警告政策和自訂資訊主頁中使用指標。
    • 指標寫入錯誤率。

    您也可以使用「指標管理」頁面排除不需要的指標,省下擷取這些指標的成本。 如要進一步瞭解「指標管理」頁面,請參閱「查看及管理指標使用情形」一文。

    搭配 Prometheus-Operator 使用

    Managed Service for Prometheus Prometheus 二進位檔也可以搭配由 prometheus-operator 管理的現有 GKE Prometheus 部署項目使用。

    如要使用受管理服務的二進位檔,請在 Prometheus 資源中替換映像檔規格:

      apiVersion: monitoring.coreos.com/v1
      kind: Prometheus
      metadata:
        name: NAMESPACE_NAME
        namespace: gmp-system
      spec:
        image: gke.gcr.io/prometheus-engine/prometheus:v2.53.4-gmp.0-gke.1
        ...
        replicas: 1
        serviceAccountName: default
        version: v2.35.0
        ...
    

    如果您使用的是 Workload Identity Federation for GKE 叢集,但資源中的命名空間或服務帳戶不同,請針對額外的命名空間和 Kubernetes 服務帳戶組合重複執行 Workload Identity Federation for GKE 操作說明

    在非 GKE Kubernetes 叢集中執行時,您必須手動提供憑證。如要提供憑證,請按照下列步驟操作:

    1. 如「明確提供憑證」一文所述,新增適當的服務帳戶金鑰檔案做為機密。

    2. 修改 Prometheus 資源,以便新增以粗體顯示的文字:

        apiVersion: monitoring.coreos.com/v1
        kind: Prometheus
        metadata:
          namespace: NAMESPACE_NAME
          name: example
        spec:
          ...
          secrets:
          - gmp-test-sa
          containers:
          - name: prometheus
            env:
            - name: GOOGLE_APPLICATION_CREDENTIALS
              value: /gmp/key.json
            volumeMounts:
            - name: secret-gmp-test-sa
              mountPath: /gmp
              readOnly: true
      

    您可以設定容器的 EXTRA_ARGS 環境變數,以便新增其他旗標,例如指標篩選旗標。這是透過環境變數完成,因為容器規格的 args 部分由 Prometheus Operator 管理。

    與 kube-prometheus 搭配使用

    您可以設定使用熱門 kube-prometheus 程式庫建立的部署作業,以便使用 Managed Service for Prometheus。

    Kube-prometheus 對其預設命名空間和服務帳戶有嚴格的內部依附性,因此建議您只變更傳送資料至 Managed Service for Prometheus 所需的欄位最小數量。

    manifests/prometheus-prometheus.yaml 中,將 replicas 減少至 1,藉此取代圖片規格並關閉高可用性收集:

        apiVersion: monitoring.coreos.com/v1
        kind: Prometheus
        ...
        spec:
          image: gke.gcr.io/prometheus-engine/prometheus:v2.53.4-gmp.0-gke.1
          ...
          replicas: 1
          version: v2.35.0
          ...
      

    如果您在 GKE 上執行,且未修改節點上的預設服務帳戶,則套用已修改的資訊清單後,系統應會立即開始將資料傳送至 Managed Service for Prometheus。否則,您可能需要設定及套用服務帳戶。在 GKE 上執行並使用工作負載身分識別資訊時,您可能必須在 monitoring 命名空間中建立及授權 prometheus-k8s 服務帳戶。在非 GKE Kubernetes 叢集中執行時,請按照 prometheus-operator 專節中的操作說明進行。

    請注意,kube-prometheus 預設會收集許多指標,但在 GKE 等代管 Kubernetes 環境中,其中大多數指標通常並非必要。為節省擷取成本,您可以自訂 kube-prometheus,讓它只擷取您關心的指標,並積極篩除匯出的指標。

    如需更多建議,請參閱「費用控管和歸因」。

    高可用性部署

    替換的 Prometheus 二進位檔內建支援功能,可透過選舉領袖來收集高可用性資料。高可用性模式中的複本 Prometheus 伺服器會照常收集指標和評估規則,但只有其中一個會將資料傳送至 Google Cloud Managed Service for Prometheus。

    同一個 Prometheus 伺服器的副本必須一律採用相同的設定,包括相同的 external_labels。這項規定與其他系統不同,後者會依賴特殊的外部標籤 (例如 __replica__),讓副本明確有所差異。

    Kubernetes API 伺服器是支援的領袖選舉後端,只要設定下列標記,即可啟用:

    ./prometheus
      ...
      --export.ha.backend=kube \
      --export.ha.kube.namespace=LEASE_NAMESPACE \
      --export.ha.kube.name=LEASE_NAME
    

    LEASE_NAMESPACELEASE_NAME 值會標示租用資源,透過該資源選出領導節點。所有指向相同資源的 Prometheus 伺服器都屬於相同的複本組合。Prometheus 部署的 Kubernetes 服務帳戶需要具備讀取及寫入相應租用資源的權限。在 Kubernetes 叢集外執行 Prometheus 伺服器時,您可以使用 --export.ha.kube.config 標記提供明確的設定。

    完成後,您可以將 replicas 值提高至 2 以上。

    保留標籤

    Managed Service for Prometheus 會使用六個保留標籤,在 Monarch 中明確識別資源:

    • project_id:與指標相關聯的 Google Cloud 專案 ID。必填。
    • location:資料儲存的實際位置 (Google Cloud region)。這個值通常是 GKE 叢集的區域。如果資料是從 AWS 或內部部署收集,則該值可能是最近的 Google Cloud 區域。必填。
    • cluster:與指標相關聯的 Kubernetes 叢集名稱。如果不是在 Kubernetes 上執行,則可用於任意階層層級,例如執行個體群組。選用,但強烈建議使用。
    • namespace:與指標相關聯的 Kubernetes 命名空間名稱。如果未在 Kubernetes 上執行,則可將其用作任意階層層級,例如執行個體子群組。選用,但強烈建議使用。
    • job:Prometheus 目標的工作標籤 (如已知);規則評估結果可能為空白。這是必要參數,通常會由 Prometheus 自動新增。
    • instance:Prometheus 目標的執行個體標籤 (如果已知);規則評估結果可能為空白。這是必要參數,通常會由 Prometheus 自動新增。如果您手動設定或重新標示,請勿使用 localhost 等硬式編碼值,否則會導致時序衝突。

    在 Google Cloud上執行時,系統會自動將 project_idlocationcluster 標籤新增至每個指標。

    雖然不建議在 Google Cloud上執行,但您可以使用 Prometheus 設定檔的 global.external_labels 部分覆寫 project_idlocationclusternamespace 標籤。詳情請參閱「在Google Cloud外執行自行部署的收集項目」。

    如果您將任何保留標籤設為指標標籤,自部署的收集會將指標標籤設為保留標籤的值。這麼做可提供一定程度的彈性,但如果您使用標籤 location 來參照Google Cloud 區域以外的項目,可能會導致錯誤。

    設定 statsd_exporter 和其他匯出工具,以便集中回報指標

    如果您使用 Prometheus 的 statsd_exporter、Istio 的 Envoy、SNMP 匯出程式、Prometheus Pushgateway、kube-state-metrics,或是有其他類似的匯出程式,可代表在環境中執行的其他資源進行中介並回報指標,則需要進行一些小幅變更,讓匯出程式能夠與 Managed Service for Prometheus 搭配運作。

    如需設定這些匯出工具的操作說明,請參閱疑難排解一節中的這則附註

    二進位檔部署

    如果您想在非容器化環境中執行,可以直接建構替換的 Prometheus 二進位檔。

    建構來源

    如果您已有自行編譯 Prometheus 的程序,可以將我們的 GitHub 存放區透明地替換至程序中。Managed Service for Prometheus 有自己的版本標記擴充功能,可區分其版本與上游版本。

    如要建構純二進位檔,機器上必須安裝 Go 工具鍊和最新版本的 NPM/Yarn。詳情請參閱上游建構操作說明

    1. 複製存放區:

      git clone https://github.com/GoogleCloudPlatform/prometheus &&
      cd prometheus
      
    2. 請查看所需的版本標記:

      git checkout v2.53.4-gmp.0
      
    3. 如要建立 Managed Service for Prometheus 的 tarball,請執行下列指令:

      make build && make tarball
      

    產生的 tarball 和二進位檔在目錄結構和功能方面,與上游變化版本完全相容。

    建立及更新指標和標籤的限制

    Managed Service for Prometheus 會針對建立新指標和在現有指標中新增指標標籤,強制執行每分鐘的速率限制。只有在首次與 Managed Service for Prometheus 整合時,才會觸及這項速率限制,例如在遷移現有的成熟 Prometheus 部署作業,以便使用自行部署的集合時。這不是擷取資料點的速率限制。這項速率限制只會在您建立未曾見過的指標,或在現有指標中新增標籤時生效。

    這個配額是固定的,但只要新指標和指標標籤的建立次數達到每分鐘限制,就會自動解決任何問題。

    詳情請參閱「疑難排解」。

    在 Google Cloud外部執行自行部署的收集作業

    在 Compute Engine 環境、GKE 環境,或是您使用具備充分授權的帳戶執行 gcloud login 的電腦上,您可以執行自行部署的收集作業,無須進一步設定。在 Google Cloud之外,您必須明確提供憑證、用於容納指標的 project_id,以及用於儲存指標的 location (Google Cloud 區域)。即使是在非 Kubernetes 環境中執行,您也應設定 clusternamespace 標籤。

    您可以使用 --export.credentials-file 標記或 GOOGLE_APPLICATION_CREDENTIALS 環境變數提供服務帳戶金鑰,如「明確提供憑證」一節所述。

    建議您根據讀取內容的預期租用模式,選擇 project_id。請根據您日後打算如何使用指標範圍來組織讀取項目,選擇儲存指標的專案。如果您不介意,可以將所有內容都放入一個專案。

    針對 location,建議您選擇與部署位置最近的 Google Cloud 區域。所選 Google Cloud 區域離部署位置越遠,寫入延遲就會越長,且可能受到網路問題的影響。您可以參考這份跨多個雲端的地區清單。如果您不介意,可以將所有內容都放在同一個 Google Cloud 區域。您無法將 global 設為位置。

    如果是在 Kubernetes 環境中執行,請將 clusternamespace 值設為本機叢集和命名空間。如果是在 Kubernetes 外執行,請將這些值設為有意義的階層值。舉例來說,在 AWS 上執行的 VM 環境中,請將 cluster 值設為 __aws__,並將 namespace 值設為執行個體 ID。您可以使用呼叫本機中繼資料伺服器的重新命名規則,動態填入執行個體 ID。

    如要查看最簡單的運作範例,您可以使用下列指令,執行本機的 Prometheus 自我監控二進位檔:

    ./prometheus \
      --config.file=documentation/examples/prometheus.yaml \
      --export.label.project-id=PROJECT_ID \
      --export.label.location=REGION \
      --export.label.cluster=CLUSTER_NAME \
    

    這個範例假設您已將 REGION 變數設為 us-central1 等值。

    不過,建議您在 Prometheus 設定的 global.external_labels 部分,為受管理服務設定 export 目標標籤。舉例來說,在 Kubernetes 環境中,您可以使用下列設定:

    global:
      external_labels:
        project_id: PROJECT_ID
        location: REGION
        cluster: CLUSTER_NAME
        namespace: local-testing
    
    scrape_configs:
      ...
    

    在 Google Cloud 以外執行 Managed Service for Prometheus 會產生資料傳輸費用。將資料轉移至 Google Cloud會產生費用,從其他雲端轉移資料也可能會產生費用。您可以使用 --export.compression=gzip 旗標啟用壓縮功能,將這筆費用降到最低。

    後續步驟