Mulai menggunakan koleksi terkelola

Dokumen ini menjelaskan cara menyiapkan Google Cloud Managed Service for Prometheus dengan koleksi terkelola. Penyiapan ini adalah contoh minimal dari proses transfer yang berfungsi, menggunakan deployment Prometheus yang memantau aplikasi contoh dan menyimpan metrik yang dikumpulkan di Monarch.

Dokumen ini menunjukkan cara melakukan hal berikut:

  • Siapkan lingkungan dan alat command line Anda.
  • Siapkan koleksi terkelola untuk cluster Anda.
  • Konfigurasikan resource untuk pengambilan metrik dan scraping target.
  • Memigrasikan resource kustom prometheus-operator yang ada.

Sebaiknya gunakan koleksi terkelola; hal ini akan mengurangi kompleksitas deployment, penskalaan, sharding, konfigurasi, dan pemeliharaan kolektor. Pengumpulan terkelola didukung untuk GKE dan semua lingkungan Kubernetes lainnya.

Pengumpulan terkelola menjalankan kolektor berbasis Prometheus sebagai Daemonset dan memastikan skalabilitas dengan hanya mengambil target di node yang ditempatkan bersama. Anda mengonfigurasi pengumpul dengan resource kustom ringan untuk meng-scrape eksportir menggunakan pengumpulan pull, lalu pengumpul akan mendorong data yang di-scrape ke datastore pusat Monarch. Google Cloud tidak pernah mengakses cluster Anda secara langsung untuk mengambil atau mengambil data metrik; kolektor Anda akan mengirimkan data ke Google Cloud. Untuk informasi selengkapnya tentang pengumpulan data terkelola dan yang di-deploy sendiri, lihat Pengumpulan data dengan Managed Service for Prometheus dan Penyerapan dan pembuatan kueri dengan pengumpulan terkelola dan yang di-deploy sendiri.

Sebelum memulai

Bagian ini menjelaskan konfigurasi yang diperlukan untuk tugas yang dijelaskan dalam dokumen ini.

Menyiapkan project dan alat

Untuk menggunakan Google Cloud Managed Service for Prometheus, Anda memerlukan resource berikut:

  • Project Google Cloud dengan Cloud Monitoring API diaktifkan.

    • Jika Anda tidak memiliki project Google Cloud, lakukan hal berikut:

      1. Di konsol Google Cloud, buka New Project:

        Membuat Project Baru

      2. Di kolom Project Name, masukkan nama untuk project Anda, lalu klik Create.

      3. Buka Penagihan:

        Buka Penagihan

      4. Pilih project yang baru saja Anda buat jika belum dipilih di bagian atas halaman.

      5. Anda akan diminta untuk memilih profil pembayaran yang sudah ada atau membuat profil baru.

      Monitoring API diaktifkan secara default untuk project baru.

    • Jika Anda sudah memiliki project Google Cloud, pastikan Monitoring API diaktifkan:

      1. Buka API & layanan:

        Buka API & layanan

      2. Pilih project Anda.

      3. Klik Aktifkan API dan Layanan.

      4. Telusuri "Pemantauan".

      5. Di hasil penelusuran, klik "Cloud Monitoring API".

      6. Jika "API enabled" tidak ditampilkan, klik tombol Enable.

  • Cluster Kubernetes. Jika Anda tidak memiliki cluster Kubernetes, ikuti petunjuk di Memulai cepat untuk GKE.

Anda juga memerlukan alat command line berikut:

  • gcloud
  • kubectl

Alat gcloud dan kubectl adalah bagian dari Google Cloud CLI. Untuk mengetahui informasi tentang cara menginstalnya, lihat Mengelola komponen Google Cloud CLI. Untuk melihat komponen gcloud CLI yang telah Anda instal, jalankan perintah berikut:

gcloud components list

Mengonfigurasi lingkungan Anda

Agar tidak perlu memasukkan project ID atau nama cluster berulang kali, lakukan konfigurasi berikut:

  • Konfigurasikan alat command line sebagai berikut:

    • Konfigurasikan gcloud CLI untuk merujuk ke ID project Google Cloud Anda:

      gcloud config set project PROJECT_ID
      
    • Konfigurasikan kubectl CLI untuk menggunakan cluster Anda:

      kubectl config set-cluster CLUSTER_NAME
      

    Untuk informasi selengkapnya tentang alat ini, lihat referensi berikut:

Menyiapkan namespace

Buat namespace Kubernetes NAMESPACE_NAME untuk resource yang Anda buat sebagai bagian dari aplikasi contoh:

kubectl create ns NAMESPACE_NAME

Menyiapkan pengumpulan terkelola

Anda dapat menggunakan pengumpulan terkelola di cluster Kubernetes GKE dan non-GKE.

Setelah pengumpulan terkelola diaktifkan, komponen dalam cluster akan berjalan, tetapi belum ada metrik yang dihasilkan. Resource PodMonitoring atau ClusterPodMonitoring diperlukan oleh komponen ini untuk mengambil endpoint metrik dengan benar. Anda harus men-deploy resource ini dengan endpoint metrik yang valid atau mengaktifkan salah satu paket metrik terkelola, misalnya, Metrik status Kube, yang di-build ke dalam GKE. Untuk informasi pemecahan masalah, lihat Masalah sisi proses transfer.

Mengaktifkan koleksi terkelola akan menginstal komponen berikut di cluster Anda:

Untuk dokumentasi referensi tentang operator Managed Service for Prometheus, lihat halaman manifes.

Mengaktifkan pengumpulan terkelola: GKE

Pengumpulan terkelola diaktifkan secara default untuk hal berikut:

Jika Anda menjalankan di lingkungan GKE yang tidak mengaktifkan pengumpulan terkelola secara default, lihat Mengaktifkan pengumpulan terkelola secara manual.

Kumpulan terkelola di GKE akan otomatis diupgrade saat versi komponen dalam cluster baru dirilis.

Pengumpulan terkelola di GKE menggunakan izin yang diberikan ke akun layanan Compute Engine default. Jika memiliki kebijakan yang mengubah izin standar di akun layanan node default, Anda mungkin perlu menambahkan peran Monitoring Metric Writer untuk melanjutkan.

Mengaktifkan koleksi terkelola secara manual

Jika Anda menjalankan di lingkungan GKE yang tidak mengaktifkan pengumpulan terkelola secara default, Anda dapat mengaktifkan pengumpulan terkelola menggunakan hal berikut:

  • Dasbor Cluster GKE di Cloud Monitoring.
  • Halaman Kubernetes Engine di Konsol Google Cloud.
  • Google Cloud CLI. Untuk menggunakan gcloud CLI, Anda harus menjalankan GKE versi 1.21.4-gke.300 atau yang lebih baru.
  • Terraform untuk Google Kubernetes Engine. Untuk menggunakan Terraform guna mengaktifkan Managed Service untuk Prometheus, Anda harus menjalankan GKE versi 1.21.4-gke.300 atau yang lebih baru.

Dasbor Cluster GKE

Anda dapat melakukan hal berikut dengan menggunakan dasbor Cluster GKE di Cloud Monitoring.

  • Tentukan apakah Managed Service for Prometheus diaktifkan di cluster Anda dan apakah Anda menggunakan koleksi terkelola atau yang di-deploy sendiri.
  • Aktifkan pengumpulan terkelola di cluster dalam project Anda.
  • Lihat informasi lain tentang cluster Anda.

Untuk melihat dasbor Cluster GKE, lakukan tindakan berikut:

  1. Di konsol Google Cloud, buka halaman  Dasbor:

    Buka Dasbor

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

  2. Pilih kategori dasbor G​C​P, lalu pilih Cluster GKE.

Dasbor Cluster GKE di Cloud Monitoring.

Untuk mengaktifkan pengumpulan terkelola di satu atau beberapa cluster GKE dengan menggunakan dasbor Cluster GKE, lakukan langkah-langkah berikut:

  1. Centang kotak untuk setiap cluster GKE tempat Anda ingin mengaktifkan pengumpulan terkelola.

  2. Pilih Aktifkan yang Dipilih.

UI Kubernetes Engine

Anda dapat melakukan hal berikut menggunakan konsol Google Cloud:

  • Mengaktifkan pengumpulan terkelola di cluster GKE yang ada.
  • Buat cluster GKE baru dengan pengumpulan terkelola yang diaktifkan.

Untuk mengupdate cluster yang ada, lakukan hal berikut:

  1. Di konsol Google Cloud, buka halaman Kubernetes clusters:

    Buka Cluster Kubernetes

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Kubernetes Engine.

  2. Klik nama cluster.

  3. Dalam daftar Fitur, cari opsi Managed Service for Prometheus. Jika tercantum sebagai dinonaktifkan, klik Edit, lalu pilih Aktifkan Managed Service for Prometheus.

  4. Klik Simpan perubahan.

Untuk membuat cluster dengan pengumpulan terkelola yang diaktifkan, lakukan hal berikut:

  1. Di konsol Google Cloud, buka halaman Kubernetes clusters:

    Buka Cluster Kubernetes

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Kubernetes Engine.

  2. Klik Create.

  3. Klik Konfigurasi untuk opsi Standar.

  4. Di panel navigasi, klik Fitur.

  5. Di bagian Operations, pilih Enable Managed Service for Prometheus.

  6. Klik Simpan.

gcloud CLI

Anda dapat melakukan hal berikut menggunakan gcloud CLI:

  • Mengaktifkan pengumpulan terkelola di cluster GKE yang ada.
  • Buat cluster GKE baru dengan pengumpulan terkelola yang diaktifkan.

Pemrosesan perintah ini mungkin memerlukan waktu hingga 5 menit.

Pertama, tetapkan project Anda:

gcloud config set project PROJECT_ID

Untuk mengupdate cluster yang ada, jalankan salah satu perintah update berikut berdasarkan apakah cluster Anda bersifat zonal atau regional:

  • gcloud container clusters update CLUSTER_NAME --enable-managed-prometheus --zone ZONE
    
  • gcloud container clusters update CLUSTER_NAME --enable-managed-prometheus --region REGION
    

Untuk membuat cluster dengan pengumpulan terkelola yang diaktifkan, jalankan perintah berikut:

gcloud container clusters create CLUSTER_NAME --zone ZONE --enable-managed-prometheus

Autopilot GKE

Pengumpulan terkelola aktif secara default di cluster GKE Autopilot yang menjalankan GKE versi 1.25 atau yang lebih baru. Anda tidak dapat menonaktifkan koleksi terkelola.

Jika cluster Anda gagal mengaktifkan pengumpulan terkelola secara otomatis saat mengupgrade ke versi 1.25, Anda dapat mengaktifkannya secara manual dengan menjalankan perintah update di bagian gcloud CLI.

Terraform

Untuk petunjuk cara mengonfigurasi koleksi terkelola menggunakan Terraform, lihat registry Terraform untuk google_container_cluster.

Untuk informasi umum tentang penggunaan Google Cloud dengan Terraform, lihat Terraform dengan Google Cloud.

Menonaktifkan koleksi terkelola

Jika ingin menonaktifkan pengumpulan terkelola di cluster, Anda dapat menggunakan salah satu metode berikut:

UI Kubernetes Engine

Anda dapat melakukan hal berikut menggunakan konsol Google Cloud:

  • Menonaktifkan pengumpulan terkelola di cluster GKE yang ada.
  • Ganti pengaktifan otomatis pengumpulan terkelola saat membuat cluster GKE Standard baru yang menjalankan GKE versi 1.27 atau yang lebih baru.

Untuk mengupdate cluster yang ada, lakukan hal berikut:

  1. Di konsol Google Cloud, buka halaman Kubernetes clusters:

    Buka Cluster Kubernetes

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Kubernetes Engine.

  2. Klik nama cluster.

  3. Di bagian Fitur, temukan opsi Managed Service for Prometheus. Klik  Edit, dan hapus centang Enable Managed Service for Prometheus.

  4. Klik Simpan perubahan.

Untuk mengganti pengaktifan otomatis pengumpulan terkelola saat membuat cluster GKE Standard baru (versi 1.27 atau yang lebih baru), lakukan tindakan berikut:

  1. Di konsol Google Cloud, buka halaman Kubernetes clusters:

    Buka Cluster Kubernetes

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Kubernetes Engine.

  2. Klik Create.

  3. Klik Konfigurasi untuk opsi Standar.

  4. Di panel navigasi, klik Fitur.

  5. Di bagian Operations, hapus centang Enable Managed Service for Prometheus.

  6. Klik Simpan.

gcloud CLI

Anda dapat melakukan hal berikut menggunakan gcloud CLI:

  • Menonaktifkan pengumpulan terkelola di cluster GKE yang ada.
  • Ganti pengaktifan otomatis pengumpulan terkelola saat membuat cluster GKE Standard baru yang menjalankan GKE versi 1.27 atau yang lebih baru.

Pemrosesan perintah ini mungkin memerlukan waktu hingga 5 menit.

Pertama, tetapkan project Anda:

gcloud config set project PROJECT_ID

Untuk menonaktifkan pengumpulan terkelola di cluster yang ada, jalankan salah satu perintah update berikut berdasarkan apakah cluster Anda bersifat zonal atau regional:

  • gcloud container clusters update CLUSTER_NAME --disable-managed-prometheus --zone ZONE
    
  • gcloud container clusters update CLUSTER_NAME --disable-managed-prometheus --region REGION
    

Untuk mengganti pengaktifan otomatis pengumpulan terkelola saat membuat cluster GKE Standar baru (versi 1.27 atau yang lebih baru), jalankan perintah berikut:

gcloud container clusters create CLUSTER_NAME --zone ZONE --no-enable-managed-prometheus

Autopilot GKE

Anda tidak dapat menonaktifkan pengumpulan terkelola di cluster GKE Autopilot yang menjalankan GKE versi 1.25 atau yang lebih baru.

Terraform

Untuk menonaktifkan pengumpulan terkelola, tetapkan atribut enabled di blok konfigurasi managed_prometheus ke false. Untuk informasi selengkapnya tentang blok konfigurasi ini, lihat registry Terraform untuk google_container_cluster.

Untuk informasi umum tentang penggunaan Google Cloud dengan Terraform, lihat Terraform dengan Google Cloud.

Mengaktifkan pengumpulan terkelola: Kubernetes non-GKE

Jika Anda menjalankannya di lingkungan non-GKE, Anda dapat mengaktifkan pengumpulan terkelola menggunakan hal berikut:

  • kubectl CLI.
  • Solusi paket yang disertakan dalam deployment GKE Enterprise yang menjalankan versi 1.12 atau yang lebih baru.

kubectl CLI

Untuk menginstal kolektor terkelola saat Anda menggunakan cluster Kubernetes non-GKE, jalankan perintah berikut untuk menginstal penyiapan dan manifes operator:

kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.13.0/manifests/setup.yaml

kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.13.0/manifests/operator.yaml

GKE Enterprise

Untuk informasi tentang cara mengonfigurasi pengumpulan terkelola untuk cluster GKE Enterprise, lihat dokumentasi untuk distribusi Anda:

Men-deploy aplikasi contoh

Aplikasi contoh memunculkan metrik penghitung example_requests_total dan metrik histogram example_random_numbers (di antara yang lainnya) di port metrics-nya. Manifes untuk aplikasi menentukan tiga replika.

Untuk men-deploy aplikasi contoh, jalankan perintah berikut:

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

Mengonfigurasi resource PodMonitoring

Untuk menyerap data metrik yang dikeluarkan oleh aplikasi contoh, Managed Service for Prometheus menggunakan scraping target. Scraping target dan penyerapan metrik dikonfigurasi menggunakan resource kustom Kubernetes. Layanan terkelola menggunakan resource kustom (CR) PodMonitoring.

CR PodMonitoring hanya meng-scrape target di namespace tempat CR di-deploy. Untuk meng-scrape target di beberapa namespace, deploy CR PodMonitoring yang sama di setiap namespace. Anda dapat memverifikasi bahwa resource PodMonitoring diinstal di namespace yang diinginkan dengan menjalankan kubectl get podmonitoring -A.

Untuk dokumentasi referensi tentang semua CR Managed Service for Prometheus, lihat referensi prometheus-engine/doc/api.

Manifes berikut menentukan resource PodMonitoring, prom-example, di namespace NAMESPACE_NAME. Resource ini menggunakan pemilih label Kubernetes untuk menemukan semua pod di namespace yang memiliki label app.kubernetes.io/name dengan nilai prom-example. Pod yang cocok akan di-scrap di port bernama metrics, setiap 30 detik, di jalur HTTP /metrics.

apiVersion: monitoring.googleapis.com/v1
kind: PodMonitoring
metadata:
  name: prom-example
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: prom-example
  endpoints:
  - port: metrics
    interval: 30s

Untuk menerapkan resource ini, jalankan perintah berikut:

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

Pengumpul terkelola Anda kini meng-scrape pod yang cocok. Anda dapat melihat status target pengambilan dengan mengaktifkan fitur status target.

Untuk mengonfigurasi pengumpulan horizontal yang berlaku untuk berbagai pod di semua namespace, gunakan resource ClusterPodMonitoring. Resource ClusterPodMonitoring menyediakan antarmuka yang sama dengan resource PodMonitoring, tetapi tidak membatasi pod yang ditemukan ke namespace tertentu.

Jika Anda menjalankannya di GKE, Anda dapat melakukan hal berikut:

Jika Anda menjalankannya di luar GKE, Anda perlu membuat akun layanan dan memberi otorisasi untuk menulis data metrik, seperti yang dijelaskan di bagian berikut.

Memberikan kredensial secara eksplisit

Saat berjalan di GKE, server Prometheus pengumpulan akan otomatis mengambil kredensial dari lingkungan berdasarkan akun layanan node. Di cluster Kubernetes non-GKE, kredensial harus disediakan secara eksplisit melalui resource OperatorConfig di namespace gmp-public.

  1. Tetapkan konteks ke project target Anda:

    gcloud config set project PROJECT_ID
    
  2. Buat akun layanan:

    gcloud iam service-accounts create gmp-test-sa
    

  3. Berikan izin yang diperlukan ke akun layanan:

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

  4. Buat dan download kunci untuk akun layanan:

    gcloud iam service-accounts keys create gmp-test-sa-key.json \
      --iam-account=gmp-test-sa@PROJECT_ID.
    
  5. Tambahkan file kunci sebagai secret ke cluster non-GKE Anda:

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

  6. Buka resource OperatorConfig untuk mengedit:

    kubectl -n gmp-public edit operatorconfig config
    
    1. Tambahkan teks yang ditampilkan dalam cetak tebal ke resource:

      apiVersion: monitoring.googleapis.com/v1
      kind: OperatorConfig
      metadata:
        namespace: gmp-public
        name: config
      collection:
        credentials:
          name: gmp-test-sa
          key: key.json
      
      Pastikan Anda juga menambahkan kredensial ini ke bagian rules agar evaluasi aturan terkelola berfungsi.

    2. Simpan file dan tutup editor. Setelah perubahan diterapkan, pod akan dibuat ulang dan mulai mengautentikasi ke backend metrik dengan akun layanan yang diberikan.

    Topik tambahan untuk koleksi terkelola

    Bagian ini menjelaskan cara melakukan hal berikut:

    • Aktifkan fitur status target untuk memudahkan proses debug.
    • Konfigurasikan scraping target menggunakan Terraform.
    • Memfilter data yang Anda ekspor ke layanan terkelola.
    • Mengambil metrik Kubelet dan cAdvisor.
    • Konversikan resource prom-operator yang ada untuk digunakan dengan layanan terkelola.
    • Menjalankan pengumpulan terkelola di luar GKE.

    Mengaktifkan fitur status target

    Managed Service for Prometheus menyediakan cara untuk memeriksa apakah target Anda ditemukan dan diambil dengan benar oleh kolektor. Laporan status target ini dimaksudkan sebagai alat untuk men-debug masalah akut. Sebaiknya aktifkan fitur ini hanya untuk menyelidiki masalah yang mendesak. Membiarkan pelaporan status target di cluster besar dapat menyebabkan operator kehabisan memori dan loop error.

    Anda dapat memeriksa status target di resource PodMonitoring atau ClusterPodMonitoring dengan menetapkan nilai features.targetStatus.enabled dalam resource OperatorConfig ke true, seperti yang ditunjukkan dalam contoh berikut:

        apiVersion: monitoring.googleapis.com/v1
        kind: OperatorConfig
        metadata:
          namespace: gmp-public
          name: config
        features:
          targetStatus:
            enabled: true
    

    Setelah beberapa detik, kolom Status.Endpoint Statuses akan muncul di setiap resource PodMonitoring atau ClusterPodMonitoring yang valid, saat dikonfigurasi.

    Jika memiliki resource PodMonitoring dengan nama prom-example di namespace NAMESPACE_NAME, Anda dapat memeriksa statusnya dengan menjalankan perintah berikut:

    kubectl -n NAMESPACE_NAME describe podmonitorings/prom-example
    

    Outputnya akan terlihat seperti berikut:

    API Version:  monitoring.googleapis.com/v1
    Kind:         PodMonitoring
    ...
    Status:
      Conditions:
        ...
        Status:                True
        Type:                  ConfigurationCreateSuccess
      Endpoint Statuses:
        Active Targets:       3
        Collectors Fraction:  1
        Last Update Time:     2023-08-02T12:24:26Z
        Name:                 PodMonitoring/custom/prom-example/metrics
        Sample Groups:
          Count:  3
          Sample Targets:
            Health:  up
            Labels:
              Cluster:                     CLUSTER_NAME
              Container:                   prom-example
              Instance:                    prom-example-589ddf7f7f-hcnpt:metrics
              Job:                         prom-example
              Location:                    REGION
              Namespace:                   NAMESPACE_NAME
              Pod:                         prom-example-589ddf7f7f-hcnpt
              project_id:                  PROJECT_ID
            Last Scrape Duration Seconds:  0.020206416
            Health:                        up
            Labels:
              ...
            Last Scrape Duration Seconds:  0.054189485
            Health:                        up
            Labels:
              ...
            Last Scrape Duration Seconds:  0.006224887
    

    Outputnya mencakup kolom status berikut:

    • Status.Conditions.Status bernilai benar saat Managed Service for Prometheus mengonfirmasi dan memproses PodMonitoring atau ClusterPodMonitoring.
    • Status.Endpoint Statuses.Active Targets menunjukkan jumlah target scrape yang dihitung Managed Service for Prometheus di semua kolektor untuk resource PodMonitoring ini. Dalam contoh aplikasi, deployment prom-example memiliki tiga replika dengan satu target metrik, sehingga nilainya adalah 3. Jika ada target yang tidak responsif, kolom Status.Endpoint Statuses.Unhealthy Targets akan muncul.
    • Status.Endpoint Statuses.Collectors Fraction menampilkan nilai 1 (yang berarti 100%) jika semua kolektor terkelola dapat dijangkau oleh Managed Service for Prometheus.
    • Status.Endpoint Statuses.Last Update Time menampilkan waktu terakhir diperbarui. Jika waktu pembaruan terakhir jauh lebih lama dari waktu interval scrape yang diinginkan, perbedaan tersebut mungkin menunjukkan masalah pada target atau cluster Anda.
    • Kolom Status.Endpoint Statuses.Sample Groups menampilkan contoh target yang dikelompokkan berdasarkan label target umum yang dimasukkan oleh kolektor. Nilai ini berguna untuk men-debug situasi saat target Anda tidak ditemukan. Jika semua target responsif dan sedang dikumpulkan, nilai yang diharapkan untuk kolom Health adalah up dan nilai untuk kolom Last Scrape Duration Seconds adalah durasi biasa untuk target standar.

    Untuk mengetahui informasi selengkapnya tentang kolom ini, lihat dokumen Managed Service for Prometheus API.

    Salah satu hal berikut mungkin menunjukkan masalah pada konfigurasi Anda:

    • Tidak ada kolom Status.Endpoint Statuses di resource PodMonitoring Anda.
    • Nilai kolom Last Scrape Duration Seconds terlalu lama.
    • Anda melihat terlalu sedikit target.
    • Nilai kolom Health menunjukkan bahwa targetnya adalah down.

    Untuk mengetahui informasi selengkapnya tentang proses debug masalah penemuan target, lihat Masalah sisi proses transfer dalam dokumentasi pemecahan masalah.

    Mengonfigurasi endpoint scrape yang diotorisasi

    Jika target scraping memerlukan otorisasi, Anda dapat menyiapkan kolektor untuk menggunakan jenis otorisasi yang benar dan memberikan secret yang relevan.

    Google Cloud Managed Service for Prometheus mendukung jenis otorisasi berikut:

    mTLS

    mTLS biasanya dikonfigurasi dalam lingkungan zero trust, seperti mesh layanan Istio atau Cloud Service Mesh.

    Untuk mengaktifkan endpoint scraping yang diamankan menggunakan mTLS, tetapkan kolom Spec.Endpoints[].Scheme di resource PodMonitoring ke https. Meskipun tidak direkomendasikan, Anda dapat menetapkan kolom Spec.Endpoints[].insecureSkipVerify di resource PodMonitoring ke true untuk melewati verifikasi otoritas sertifikat. Atau, Anda dapat mengonfigurasi Managed Service for Prometheus untuk memuat sertifikat dan kunci dari resource secret.

    Misalnya, resource Secret berikut berisi kunci untuk sertifikat klien (cert), kunci pribadi (key), dan certificate authority (ca):

    kind: Secret
    metadata:
      name: secret-example
    stringData:
      cert: ********
      key: ********
      ca: ********
    

    Berikan izin kolektor Managed Service for Prometheus untuk mengakses resource Secret tersebut:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: secret-example-read
    rules:
    - resources:
      - secrets
      apiGroups: [""]
      verbs: ["get", "list", "watch"]
      resourceNames: ["secret-example"]
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: gmp-system:collector:secret-example-read
      namespace: default
    roleRef:
      name: secret-example-read
      kind: Role
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - name: collector
      namespace: gmp-system
      kind: ServiceAccount
    

    Di cluster GKE Autopilot, tampilannya seperti ini:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: secret-example-read
    rules:
    - resources:
      - secrets
      apiGroups: [""]
      verbs: ["get", "list", "watch"]
      resourceNames: ["secret-example"]
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: gmp-system:collector:secret-example-read
      namespace: default
    roleRef:
      name: secret-example-read
      kind: Role
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - name: collector
      namespace: gke-gmp-system
      kind: ServiceAccount
    

    Untuk mengonfigurasi resource PodMonitoring yang menggunakan resource Secret sebelumnya, ubah resource Anda untuk menambahkan bagian scheme dan tls:

    apiVersion: monitoring.googleapis.com/v1
    kind: PodMonitoring
    metadata:
      name: prom-example
    spec:
      selector:
        matchLabels:
          app.kubernetes.io/name: prom-example
      endpoints:
      - port: metrics
        interval: 30s
        scheme: https
        tls:
          ca:
            secret:
              name: secret-example
              key: ca
          cert:
            secret:
              name: secret-example
              key: cert
          key:
            secret:
              name: secret-example
              key: key
    

    Untuk dokumentasi referensi tentang semua opsi mTLS Layanan Terkelola untuk Prometheus, lihat dokumentasi referensi API.

    BasicAuth

    Untuk mengaktifkan endpoint scraping yang diamankan menggunakan BasicAuth, tetapkan kolom Spec.Endpoints[].BasicAuth di resource PodMonitoring dengan nama pengguna dan sandi Anda. Untuk jenis Header Otorisasi HTTP lainnya, lihat Header Otorisasi HTTP.

    Misalnya, resource Secret berikut berisi kunci untuk menyimpan sandi:

    kind: Secret
    metadata:
      name: secret-example
    stringData:
      password: ********
    

    Berikan izin kolektor Managed Service for Prometheus untuk mengakses resource Secret tersebut:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: secret-example-read
    rules:
    - resources:
      - secrets
      apiGroups: [""]
      verbs: ["get", "list", "watch"]
      resourceNames: ["secret-example"]
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: gmp-system:collector:secret-example-read
      namespace: default
    roleRef:
      name: secret-example-read
      kind: Role
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - name: collector
      namespace: gmp-system
      kind: ServiceAccount
    

    Di cluster GKE Autopilot, tampilannya akan seperti ini:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: secret-example-read
    rules:
    - resources:
      - secrets
      apiGroups: [""]
      verbs: ["get", "list", "watch"]
      resourceNames: ["secret-example"]
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: gmp-system:collector:secret-example-read
      namespace: default
    roleRef:
      name: secret-example-read
      kind: Role
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - name: collector
      namespace: gke-gmp-system
      kind: ServiceAccount
    

    Untuk mengonfigurasi resource PodMonitoring yang menggunakan resource Secret sebelumnya dan nama pengguna foo, ubah resource Anda untuk menambahkan bagian basicAuth:

    apiVersion: monitoring.googleapis.com/v1
    kind: PodMonitoring
    metadata:
      name: prom-example
    spec:
      selector:
        matchLabels:
          app.kubernetes.io/name: prom-example
      endpoints:
      - port: metrics
        interval: 30s
        basicAuth:
          username: foo
          password:
            secret:
              name: secret-example
              key: password
    

    Untuk dokumentasi referensi tentang semua opsi BasicAuth Managed Service for Prometheus, lihat dokumentasi referensi API.

    Header Otorisasi HTTP

    Untuk mengaktifkan endpoint scraping yang diamankan menggunakan Header Otorisasi HTTP, tetapkan kolom Spec.Endpoints[].Authorization di resource PodMonitoring dengan jenis dan kredensial. Untuk endpoint BasicAuth, gunakan konfigurasi BasicAuth.

    Misalnya, resource Secret berikut berisi kunci untuk menyimpan kredensial:

    kind: Secret
    metadata:
      name: secret-example
    stringData:
      credentials: ********
    

    Berikan izin kolektor Managed Service for Prometheus untuk mengakses resource Secret tersebut:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: secret-example-read
    rules:
    - resources:
      - secrets
      apiGroups: [""]
      verbs: ["get", "list", "watch"]
      resourceNames: ["secret-example"]
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: gmp-system:collector:secret-example-read
      namespace: default
    roleRef:
      name: secret-example-read
      kind: Role
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - name: collector
      namespace: gmp-system
      kind: ServiceAccount
    

    Di cluster GKE Autopilot, tampilannya seperti ini:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: secret-example-read
    rules:
    - resources:
      - secrets
      apiGroups: [""]
      verbs: ["get", "list", "watch"]
      resourceNames: ["secret-example"]
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: gmp-system:collector:secret-example-read
      namespace: default
    roleRef:
      name: secret-example-read
      kind: Role
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - name: collector
      namespace: gke-gmp-system
      kind: ServiceAccount
    

    Untuk mengonfigurasi resource PodMonitoring yang menggunakan resource Secret sebelumnya dan jenis Bearer, ubah resource Anda untuk menambahkan bagian authorization:

    apiVersion: monitoring.googleapis.com/v1
    kind: PodMonitoring
    metadata:
      name: prom-example
    spec:
      selector:
        matchLabels:
          app.kubernetes.io/name: prom-example
      endpoints:
      - port: metrics
        interval: 30s
        authorization:
          type: Bearer
          credentials:
            secret:
              name: secret-example
              key: credentials
    

    Untuk dokumentasi referensi tentang semua opsi Header Otorisasi HTTP Layanan Terkelola untuk Prometheus, lihat dokumentasi referensi API.

    OAuth 2

    Untuk mengaktifkan endpoint scraping yang diamankan menggunakan OAuth 2, Anda harus menetapkan kolom Spec.Endpoints[].OAuth2 di resource PodMonitoring.

    Misalnya, resource Secret berikut berisi kunci untuk menyimpan secret klien:

    kind: Secret
    metadata:
      name: secret-example
    stringData:
      clientSecret: ********
    

    Berikan izin kolektor Managed Service for Prometheus untuk mengakses resource Secret tersebut:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: secret-example-read
    rules:
    - resources:
      - secrets
      apiGroups: [""]
      verbs: ["get", "list", "watch"]
      resourceNames: ["secret-example"]
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: gmp-system:collector:secret-example-read
      namespace: default
    roleRef:
      name: secret-example-read
      kind: Role
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - name: collector
      namespace: gmp-system
      kind: ServiceAccount
    

    Di cluster GKE Autopilot, tampilannya seperti ini:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: secret-example-read
    rules:
    - resources:
      - secrets
      apiGroups: [""]
      verbs: ["get", "list", "watch"]
      resourceNames: ["secret-example"]
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: gmp-system:collector:secret-example-read
      namespace: default
    roleRef:
      name: secret-example-read
      kind: Role
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - name: collector
      namespace: gke-gmp-system
      kind: ServiceAccount
    

    Untuk mengonfigurasi resource PodMonitoring yang menggunakan resource Secret sebelumnya dengan ID klien foo dan URL token example.com/token, ubah resource Anda untuk menambahkan bagian oauth2:

    apiVersion: monitoring.googleapis.com/v1
    kind: PodMonitoring
    metadata:
      name: prom-example
    spec:
      selector:
        matchLabels:
          app.kubernetes.io/name: prom-example
      endpoints:
      - port: metrics
        interval: 30s
        oauth2:
          clientID: foo
          clientSecret:
            secret:
              name: secret-example
              key: password
          tokenURL: example.com/token
    

    Untuk dokumentasi referensi tentang semua opsi OAuth 2 Layanan Terkelola untuk Prometheus, lihat dokumentasi referensi API.

    Mengonfigurasi scraping target menggunakan Terraform

    Anda dapat mengotomatiskan pembuatan dan pengelolaan resource PodMonitoring dan ClusterPodMonitoring menggunakan jenis resource Terraform kubernetes_manifest atau jenis resource Terraform kubectl_manifest, yang memungkinkan Anda menentukan resource kustom arbitrer.

    Untuk informasi umum tentang penggunaan Google Cloud dengan Terraform, lihat Terraform dengan Google Cloud.

    Memfilter metrik yang diekspor

    Jika Anda mengumpulkan banyak data, sebaiknya hindari pengiriman beberapa deret waktu ke Managed Service for Prometheus untuk menekan biaya. Anda dapat melakukannya dengan menggunakan aturan pemberian label ulang Prometheus dengan tindakan keep untuk daftar yang diizinkan atau tindakan drop untuk daftar yang ditolak. Untuk koleksi terkelola, aturan ini berada di bagian metricRelabeling dari resource PodMonitoring atau ClusterPodMonitoring.

    Misalnya, aturan pemberian label ulang metrik berikut akan memfilter metrik apa pun yang diawali dengan foo_bar_, foo_baz_, atau foo_qux_:

      metricRelabeling:
      - action: drop
        regex: foo_(bar|baz|qux)_.+
        sourceLabels: [__name__]
    

    Halaman Pengelolaan Metrik Cloud Monitoring memberikan informasi yang dapat membantu Anda mengontrol jumlah yang Anda belanjakan untuk metrik yang dapat ditagih tanpa memengaruhi visibilitas. Halaman Metrics Management melaporkan informasi berikut:

    • Volume transfer untuk penagihan berbasis byte dan sampel, di seluruh domain metrik dan untuk setiap metrik.
    • Data tentang label dan kardinalitas metrik.
    • Jumlah operasi baca untuk setiap metrik.
    • Penggunaan metrik dalam kebijakan pemberitahuan dan dasbor kustom.
    • Rasio error penulisan metrik.

    Anda juga dapat menggunakan Pengelolaan Metrik untuk mengecualikan metrik yang tidak diperlukan, sehingga menghilangkan biaya penyerapannya. Untuk informasi selengkapnya tentang halaman Pengelolaan Metrik, lihat Melihat dan mengelola penggunaan metrik.

    Untuk saran tambahan tentang cara menurunkan biaya, lihat Kontrol biaya dan atribusi.

    Mengambil metrik Kubelet dan cAdvisor

    Kubelet mengekspos metrik tentang dirinya sendiri serta metrik cAdvisor tentang penampung yang berjalan di node-nya. Anda dapat mengonfigurasi pengumpulan terkelola untuk mengambil metrik Kubelet dan cAdvisor dengan mengedit resource OperatorConfig. Untuk mengetahui petunjuknya, lihat dokumentasi eksportir untuk Kubelet dan cAdvisor.

    Mengonversi resource prometheus-operator yang ada

    Anda biasanya dapat mengonversi resource prometheus-operator yang ada menjadi resource PodMonitoring dan ClusterPodMonitoring koleksi terkelola Managed Service for Prometheus.

    Misalnya, resource ServiceMonitor menentukan pemantauan untuk serangkaian layanan. Resource PodMonitoring menayangkan subkumpulan kolom yang ditayangkan oleh resource ServiceMonitor. Anda dapat mengonversi CR ServiceMonitor menjadi CR PodMonitoring dengan memetakan kolom seperti yang dijelaskan dalam tabel berikut:

    monitoring.coreos.com/v1
    ServiceMonitor
    Kompatibilitas
     
    monitoring.googleapis.com/v1
    PodMonitoring
    .ServiceMonitorSpec.Selector Sama .PodMonitoringSpec.Selector
    .ServiceMonitorSpec.Endpoints[] .TargetPort dipetakan ke .Port
    .Path: compatible
    .Interval: compatible
    .Timeout: compatible
    .PodMonitoringSpec.Endpoints[]
    .ServiceMonitorSpec.TargetLabels PodMonitor harus menentukan:
    .FromPod[].From label pod
    .FromPod[].To label target
    .PodMonitoringSpec.TargetLabels

    Berikut adalah contoh CR ServiceMonitor; konten dalam huruf tebal diganti dalam konversi, dan konten dalam huruf miring dipetakan secara langsung:

    apiVersion: monitoring.coreos.com/v1
    kind: ServiceMonitor
    metadata:
      name: example-app
    spec:
      selector:
        matchLabels:
          app: example-app
      endpoints:
      - targetPort: web
        path: /stats
        interval: 30s
      targetLabels:
      - foo
    

    Berikut adalah CR PodMonitoring yang analog, dengan asumsi bahwa layanan Anda dan pod-nya diberi label dengan app=example-app. Jika asumsi ini tidak berlaku, Anda harus menggunakan pemilih label dari resource Layanan yang mendasarinya.

    Konten dalam huruf tebal telah diganti dalam konversi:

    apiVersion: monitoring.googleapis.com/v1
    kind: PodMonitoring
    metadata:
      name: example-app
    spec:
      selector:
        matchLabels:
          app: example-app
      endpoints:
      - port: web
        path: /stats
        interval: 30s
      targetLabels:
        fromPod:
        - from: foo # pod label from example-app Service pods.
          to: foo
    

    Anda dapat terus menggunakan resource prometheus-operator dan konfigurasi deployment yang ada dengan menggunakan kolektor yang di-deploy sendiri, bukan kolektor terkelola. Anda dapat membuat kueri metrik yang dikirim dari kedua jenis kolektor, sehingga Anda mungkin ingin menggunakan kolektor yang di-deploy sendiri untuk deployment Prometheus yang ada sekaligus menggunakan kolektor terkelola untuk deployment Prometheus baru.

    Label yang dicadangkan

    Managed Service for Prometheus secara otomatis menambahkan label berikut ke semua metrik yang dikumpulkan. Label ini digunakan untuk mengidentifikasi resource secara unik di Monarch:

    • project_id: ID project Google Cloud yang terkait dengan metrik Anda.
    • location: Lokasi fisik (region Google Cloud) tempat data disimpan. Nilai ini biasanya merupakan region cluster GKE Anda. Jika data dikumpulkan dari deployment AWS atau lokal, nilainya mungkin region Google Cloud terdekat.
    • cluster: Nama cluster Kubernetes yang terkait dengan metrik Anda.
    • namespace: Nama namespace Kubernetes yang terkait dengan metrik Anda.
    • job: Label tugas target Prometheus, jika diketahui; mungkin kosong untuk hasil evaluasi aturan.
    • instance: Label instance target Prometheus, jika diketahui; mungkin kosong untuk hasil evaluasi aturan.

    Meskipun tidak direkomendasikan saat berjalan di Google Kubernetes Engine, Anda dapat mengganti label project_id, location, dan cluster dengan menambahkannya sebagai args ke resource Deployment dalam operator.yaml. Jika Anda menggunakan label yang dicadangkan sebagai label metrik, Managed Service for Prometheus akan otomatis memberi label ulang dengan menambahkan awalan exported_. Perilaku ini cocok dengan cara Prometheus upstream menangani konflik dengan label yang dicadangkan.

    Mengompresi konfigurasi

    Jika memiliki banyak resource PodMonitoring, Anda mungkin kehabisan ruang ConfigMap. Untuk memperbaikinya, aktifkan kompresi gzip di resource OperatorConfig:

      apiVersion: monitoring.googleapis.com/v1
      kind: OperatorConfig
      metadata:
        namespace: gmp-public
        name: config
      features:
        config:
          compression: gzip
    

    Mengaktifkan penskalaan otomatis pod vertikal (VPA) untuk pengumpulan terkelola

    Jika Anda mengalami error Kehabisan Memori (OOM) untuk pod kolektor di cluster atau jika permintaan dan batas resource default untuk kolektor tidak memenuhi kebutuhan Anda, Anda dapat menggunakan penskalaan otomatis pod vertikal untuk mengalokasikan resource secara dinamis.

    Saat Anda menetapkan kolom scaling.vpa.enabled: true pada resource OperatorConfig, operator akan men-deploy manifes VerticalPodAutoscaling di cluster yang memungkinkan permintaan dan batas resource pod kolektor ditetapkan secara otomatis, berdasarkan penggunaan.

    Untuk mengaktifkan VPA untuk pod kolektor di Managed Service for Prometheus, jalankan perintah berikut:

    kubectl -n gmp-public patch operatorconfig/config -p '{"scaling":{"vpa":{"enabled":true}}}' --type=merge
    

    Jika perintah berhasil diselesaikan, operator akan menyiapkan penskalaan otomatis pod vertikal untuk pod kolektor. Error Kehabisan Memori akan mengakibatkan peningkatan batas resource secara langsung. Jika tidak ada error OOM, penyesuaian pertama pada permintaan resource dan batas pod kolektor biasanya terjadi dalam waktu 24 jam.

    Anda mungkin menerima error ini saat mencoba mengaktifkan VPA:

    vertical pod autoscaling is not available - install vpa support and restart the operator

    Untuk mengatasi error ini, Anda harus mengaktifkan penskalaan otomatis pod vertikal terlebih dahulu di tingkat cluster:

    1. Buka halaman Kubernetes Engine - Clusters di Konsol Google Cloud.

      Di konsol Google Cloud, buka halaman Kubernetes clusters:

      Buka Cluster Kubernetes

      Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Kubernetes Engine.

    2. Pilih cluster yang ingin Anda ubah.

    3. Di bagian Automation, edit nilai opsi Vertical Pod Autoscaling.

    4. Centang kotak Enable Vertical Pod Autoscaling, lalu klik Save changes. Perubahan ini akan memulai ulang cluster Anda. Operator akan dimulai ulang sebagai bagian dari proses ini.

    5. Coba lagi perintah berikut: kubectl -n gmp-public patch operatorconfig/config -p '{"scaling":{"vpa":{"enabled":true}}}' --type=merge untuk mengaktifkan VPA untuk Managed Service for Prometheus.

    Untuk mengonfirmasi bahwa resource OperatorConfig berhasil diedit, buka resource tersebut menggunakan perintah kubectl -n gmp-public edit operatorconfig config. Jika berhasil, OperatorConfig Anda akan menyertakan bagian berikut dalam huruf tebal:

    apiVersion: monitoring.googleapis.com/v1
    kind: OperatorConfig
    metadata:
      namespace: gmp-public
      name: config
    scaling:
      vpa:
        enabled: true
    

    Penskalaan otomatis pod vertikal berfungsi paling optimal saat menyerap jumlah sampel yang stabil, yang dibagi secara merata di seluruh node. Jika beban metrik tidak teratur atau berfluktuasi, atau jika beban metrik sangat bervariasi di antara node, VPA mungkin bukan solusi yang efisien.

    Untuk informasi selengkapnya, lihat penskalaan otomatis pod vertikal di GKE.

    Teardown

    Untuk menonaktifkan pengumpulan terkelola yang di-deploy menggunakan gcloud atau UI GKE, Anda dapat melakukan salah satu tindakan berikut:

    • Jalankan perintah berikut:

      gcloud container clusters update CLUSTER_NAME --disable-managed-prometheus
      
    • Gunakan UI GKE:

      1. Pilih Kubernetes Engine di Konsol Google Cloud, lalu pilih Clusters.

      2. Temukan cluster yang koleksi terkelolanya ingin Anda nonaktifkan, lalu klik namanya.

      3. Di tab Details, scroll ke bawah ke Features dan ubah statusnya menjadi Disabled menggunakan tombol edit.

    Untuk menonaktifkan koleksi terkelola yang di-deploy menggunakan Terraform, tentukan enabled = false di bagian managed_prometheus dari resource google_container_cluster.

    Untuk menonaktifkan koleksi terkelola yang di-deploy menggunakan kubectl, jalankan perintah berikut:

    kubectl delete -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.13.0/manifests/operator.yaml
    

    Menonaktifkan pengumpulan terkelola akan menyebabkan cluster Anda berhenti mengirim data baru ke Managed Service for Prometheus. Tindakan ini tidak akan menghapus data metrik yang ada dan telah disimpan di sistem.

    Menonaktifkan pengumpulan terkelola juga akan menghapus namespace gmp-public dan resource apa pun di dalamnya, termasuk eksportir yang diinstal di namespace tersebut.

    Menjalankan pengumpulan terkelola di luar GKE

    Di lingkungan GKE, Anda dapat menjalankan pengumpulan terkelola tanpa konfigurasi lebih lanjut. Di lingkungan Kubernetes lainnya, Anda harus memberikan kredensial secara eksplisit, nilai project-id untuk memuat metrik, nilai location (region Google Cloud) tempat metrik akan disimpan, dan nilai cluster untuk menyimpan nama cluster tempat pengumpul berjalan.

    Karena gcloud tidak berfungsi di luar lingkungan Google Cloud, Anda harus men-deploy menggunakan kubectl. Tidak seperti gcloud, deployment koleksi terkelola menggunakan kubectl tidak otomatis mengupgrade cluster Anda saat versi baru tersedia. Jangan lupa untuk melihat halaman rilis untuk mengetahui versi baru dan mengupgrade secara manual dengan menjalankan kembali perintah kubectl dengan versi baru.

    Anda dapat memberikan kunci akun layanan dengan mengubah resource OperatorConfig dalam operator.yaml seperti yang dijelaskan dalam Memberikan kredensial secara eksplisit. Anda dapat memberikan nilai project-id, location, dan cluster dengan menambahkannya sebagai args ke resource Deployment dalam operator.yaml.

    Sebaiknya pilih project-id berdasarkan model kepemilikan yang Anda rencanakan untuk pembacaan. Pilih project untuk menyimpan metrik berdasarkan cara Anda mengatur pembacaan nantinya dengan cakupan metrik. Jika tidak peduli, Anda dapat memasukkan semuanya ke dalam satu project.

    Untuk location, sebaiknya pilih region Google Cloud terdekat dengan deployment Anda. Makin jauh region Google Cloud yang dipilih dari deployment Anda, makin besar latensi tulis yang akan Anda miliki dan makin besar kemungkinan Anda terpengaruh oleh masalah jaringan. Anda dapat melihat daftar region di beberapa cloud ini. Jika tidak masalah, Anda dapat menempatkan semuanya ke dalam satu region Google Cloud. Anda tidak dapat menggunakan global sebagai lokasi.

    Untuk cluster, sebaiknya pilih nama cluster tempat operator di-deploy.

    Jika dikonfigurasi dengan benar, OperatorConfig Anda akan terlihat seperti ini:

        apiVersion: monitoring.googleapis.com/v1
        kind: OperatorConfig
        metadata:
          namespace: gmp-public
          name: config
        collection:
          credentials:
            name: gmp-test-sa
            key: key.json
        rules:
          credentials:
            name: gmp-test-sa
            key: key.json
    

    Dan resource Deployment Anda akan terlihat seperti ini:

    apiVersion: apps/v1
    kind: Deployment
    ...
    spec:
      ...
      template:
        ...
        spec:
          ...
          containers:
          - name: operator
            ...
            args:
            - ...
            - "--project-id=PROJECT_ID"
            - "--cluster=CLUSTER_NAME"
            - "--location=REGION"
    

    Contoh ini mengasumsikan bahwa Anda telah menetapkan variabel REGION ke nilai seperti us-central1, misalnya.

    Menjalankan Managed Service for Prometheus di luar Google Cloud akan dikenai biaya transfer data. Ada biaya untuk mentransfer data ke Google Cloud, dan Anda mungkin dikenai biaya untuk mentransfer data keluar dari cloud lain. Anda dapat meminimalkan biaya ini dengan mengaktifkan kompresi gzip melalui jaringan melalui OperatorConfig. Tambahkan teks yang ditampilkan dalam cetak tebal ke resource:

        apiVersion: monitoring.googleapis.com/v1
        kind: OperatorConfig
        metadata:
          namespace: gmp-public
          name: config
        collection:
          compression: gzip
          ...
    

    Bacaan lebih lanjut tentang resource kustom koleksi terkelola

    Untuk dokumentasi referensi tentang semua resource kustom Managed Service for Prometheus, lihat referensi prometheus-engine/doc/api.

    Langkah selanjutnya