Dokumen ini menjelaskan cara menyiapkan Google Cloud Managed Service for Prometheus dengan koleksi terkelola. Penyiapan ini adalah contoh minimal penyerapan yang berfungsi, menggunakan deployment Prometheus yang memantau contoh aplikasi 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.
- Mengonfigurasi resource untuk scraping target dan penyerapan metrik.
- Migrasikan resource kustom prometheus-operator yang ada.
Sebaiknya gunakan koleksi terkelola; hal ini mengurangi kerumitan dalam men-deploy, menskalakan, membagi, mengonfigurasi, dan memelihara pengumpul. Pengumpulan terkelola didukung untuk GKE dan semua lingkungan Kubernetes lainnya.
Koleksi terkelola menjalankan pengumpul berbasis Prometheus sebagai Daemonset dan memastikan skalabilitas dengan hanya meng-scrap target di node yang ditempatkan bersama. Anda mengonfigurasi pengumpul dengan resource kustom ringan untuk meng-scrape eksportir menggunakan pengumpulan tarik, lalu pengumpul akan mengirimkan data yang di-scrape ke Monarch, penyimpanan data pusat. Google Cloud tidak pernah mengakses cluster Anda secara langsung untuk menarik atau meng-scrape data metrik; pengumpul Anda mengirimkan data ke Google Cloud. Untuk mengetahui 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 Google Cloud project, lakukan hal berikut:
Di Google Cloud console, buka New Project:
Di kolom Project Name, masukkan nama project Anda, lalu klik Create.
Buka Penagihan:
Pilih project yang baru saja Anda buat jika belum dipilih di bagian atas halaman.
Anda akan diminta untuk memilih profil pembayaran yang sudah ada atau membuat profil pembayaran baru.
Monitoring API diaktifkan secara default untuk project baru.
Jika Anda sudah memiliki Google Cloud project, pastikan Monitoring API diaktifkan:
Buka APIs & services:
Pilih project Anda.
Klik Aktifkan API dan Layanan.
Telusuri "Monitoring".
Di hasil penelusuran, klik "Cloud Monitoring API".
Jika "API enabled" tidak ditampilkan, klik tombol Enable.
Cluster Kubernetes. Jika Anda tidak memiliki cluster Kubernetes, ikuti petunjuk di Mulai 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:
Konfigurasi alat command line sebagai berikut:
Konfigurasi gcloud CLI untuk merujuk ke ID projectGoogle Cloud Anda:
gcloud config set project PROJECT_ID
Konfigurasi CLI
kubectl
untuk menggunakan cluster Anda:kubectl config set-cluster CLUSTER_NAME
Untuk mengetahui informasi selengkapnya tentang alat ini, lihat artikel 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 meng-scrape endpoint metrik dengan benar. Anda harus men-deploy resource ini dengan endpoint metrik yang valid atau mengaktifkan salah satu paket metrik terkelola, misalnya, Kube state metrics, yang sudah ada di GKE. Untuk mengetahui informasi pemecahan masalah, lihat Masalah sisi penyerapan.
Mengaktifkan koleksi terkelola akan menginstal komponen berikut di cluster Anda:
- Deployment
gmp-operator
, yang men-deploy operator Kubernetes untuk Managed Service for Prometheus. - Deployment
rule-evaluator
, yang digunakan untuk mengonfigurasi dan menjalankan aturan perekaman dan pemberitahuan. - DaemonSet
collector
, yang menskalakan pengumpulan secara horizontal dengan meng-scrape metrik hanya dari pod yang berjalan di node yang sama dengan setiap pengumpul. - StatefulSet
alertmanager
, yang dikonfigurasi untuk mengirimkan pemberitahuan yang dipicu ke saluran notifikasi pilihan Anda.
Untuk dokumentasi referensi tentang operator Managed Service for Prometheus, lihat halaman manifes.
Mengaktifkan pengumpulan terkelola: GKE
Pengumpulan terkelola diaktifkan secara default untuk berikut ini:
Cluster GKE Autopilot yang menjalankan GKE versi 1.25 atau yang lebih baru.
Cluster GKE Standard yang menjalankan GKE versi 1.27 atau yang lebih baru. Anda dapat mengganti default ini saat membuat cluster; lihat Menonaktifkan koleksi terkelola.
Jika Anda menjalankan di lingkungan GKE yang tidak mengaktifkan pengumpulan terkelola secara default, lihat Mengaktifkan pengumpulan terkelola secara manual.
Koleksi terkelola di GKE akan otomatis diupgrade saat versi komponen dalam cluster baru dirilis.
Koleksi terkelola di GKE menggunakan izin yang diberikan ke akun layanan Compute Engine default. Jika Anda memiliki kebijakan yang mengubah
izin standar pada 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 cara berikut:
- Dasbor Managed Prometheus Bulk Cluster Enablement 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 for Prometheus, Anda harus menjalankan GKE versi 1.21.4-gke.300 atau yang lebih baru.
Dasbor Managed Prometheus Bulk Cluster Enablement
Anda dapat melakukan hal berikut menggunakan dasbor Managed Prometheus Bulk Cluster Enablement di Cloud Monitoring.
- Tentukan apakah Managed Service for Prometheus diaktifkan di cluster Anda dan apakah Anda menggunakan pengumpulan terkelola atau yang di-deploy sendiri.
- Aktifkan pengumpulan terkelola di cluster dalam project Anda.
- Lihat informasi lain tentang cluster Anda.
Untuk melihat dasbor Managed Prometheus Bulk Cluster Enablement, lakukan hal berikut:
-
Di konsol Google Cloud , buka halaman
Dashboards:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
Gunakan panel filter untuk menelusuri entri Managed Prometheus Bulk Cluster Enablement, lalu pilih entri tersebut.
Untuk mengaktifkan pengumpulan terkelola di satu atau beberapa cluster GKE dengan menggunakan dasbor Pengaktifan Massal Prometheus Terkelola untuk Cluster, lakukan hal berikut:
Centang kotak untuk setiap cluster GKE tempat Anda ingin mengaktifkan pengumpulan terkelola.
Pilih Aktifkan yang Dipilih.
UI Kubernetes Engine
Anda dapat melakukan hal berikut dengan menggunakan konsol Google Cloud :
- Aktifkan pengumpulan terkelola di cluster GKE yang ada.
- Buat cluster GKE baru dengan koleksi terkelola yang diaktifkan.
Untuk mengupdate cluster yang ada, lakukan hal berikut:
-
Di konsol Google Cloud , buka halaman Kubernetes clusters:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Kubernetes Engine.
Klik nama cluster.
Dalam daftar Fitur, cari opsi Managed Service for Prometheus. Jika tercantum sebagai dinonaktifkan, klik edit Edit, lalu pilih Aktifkan Managed Service for Prometheus.
Klik Simpan perubahan.
Untuk membuat cluster dengan koleksi terkelola yang diaktifkan, lakukan hal berikut:
-
Di konsol Google Cloud , buka halaman Kubernetes clusters:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Kubernetes Engine.
Klik Buat.
Klik Konfigurasi untuk opsi Standard.
Di panel navigasi, klik Fitur.
Di bagian Operations, pilih Enable Managed Service for Prometheus.
Klik Simpan.
gcloud CLI
Anda dapat melakukan hal berikut menggunakan gcloud CLI:
- Aktifkan pengumpulan terkelola di cluster GKE yang ada.
- Buat cluster GKE baru dengan koleksi terkelola yang diaktifkan.
Pemrosesan perintah ini dapat 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 diaktifkan secara default di cluster Autopilot GKE 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 1.25, Anda dapat mengaktifkannya secara manual dengan menjalankan perintah update di bagian gcloud CLI.
Terraform
Untuk mengetahui petunjuk tentang 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 dengan 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:
-
Di konsol Google Cloud , buka halaman Kubernetes clusters:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Kubernetes Engine.
Klik nama cluster.
Di bagian Fitur, temukan opsi Managed Service for Prometheus. Klik edit Edit, dan hapus Aktifkan Managed Service for Prometheus.
Klik Simpan perubahan.
Untuk mengganti pengaktifan otomatis pengumpulan terkelola saat membuat cluster GKE Standard baru (versi 1.27 atau yang lebih baru), lakukan langkah-langkah berikut:
-
Di konsol Google Cloud , buka halaman Kubernetes clusters:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Kubernetes Engine.
Klik Buat.
Klik Konfigurasi untuk opsi Standard.
Di panel navigasi, klik Fitur.
Di bagian Operations, hapus centang Enable Managed Service for Prometheus.
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 dapat 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 koleksi terkelola, tetapkan atribut enabled
di
blok konfigurasi managed_prometheus
ke false
. Untuk mengetahui 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 menjalankan di lingkungan non-GKE, Anda dapat mengaktifkan pengumpulan terkelola menggunakan perintah berikut:
kubectl
CLI.Solusi gabungan yang disertakan dalam deployment GKE Enterprise yang menjalankan versi 1.12 atau yang lebih baru.
kubectl
CLI
Untuk menginstal pengumpul terkelola saat Anda menggunakan cluster Kubernetes non-GKE, jalankan perintah berikut untuk menginstal manifes penyiapan dan operator:
kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.15.3/manifests/setup.yaml kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.15.3/manifests/operator.yaml
GKE Enterprise
Untuk mengetahui informasi tentang cara mengonfigurasi pengumpulan terkelola untuk cluster GKE Enterprise, lihat dokumentasi untuk distribusi Anda:
Men-deploy aplikasi contoh
Aplikasi contoh memancarkan
metrik penghitung example_requests_total
dan metrik histogram example_random_numbers
(di antara metrik lainnya) di port metrics
. 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.15.3/examples/example-app.yaml
Mengonfigurasi resource PodMonitoring
Untuk menyerap data metrik yang dikeluarkan oleh aplikasi contoh, Managed Service for Prometheus menggunakan scraping target. Penargetan scraping 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 dimaksud dengan menjalankan kubectl get podmonitoring -A
.
Untuk dokumentasi referensi tentang semua CR Managed Service for Prometheus, lihat prometheus-engine/doc/api reference.
Manifes berikut menentukan resource PodMonitoring,
prom-example
, di namespace NAMESPACE_NAME
. Resource menggunakan pemilih label Kubernetes untuk menemukan semua pod di namespace yang memiliki label app.kubernetes.io/name
dengan nilai prom-example
.
Pod yang cocok di-scrape 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.15.3/examples/pod-monitoring.yaml
Pengumpul terkelola Anda kini meng-scraping pod yang cocok. Anda dapat melihat status target scraping dengan mengaktifkan fitur status target.
Untuk mengonfigurasi pengumpulan horizontal yang berlaku untuk serangkaian 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 berjalan di GKE, Anda dapat melakukan hal berikut:
- Untuk membuat kueri metrik yang diserap oleh aplikasi contoh menggunakan PromQL di Cloud Monitoring, lihat Membuat kueri menggunakan Cloud Monitoring.
- Untuk membuat kueri metrik yang diserap oleh aplikasi contoh menggunakan Grafana, lihat Membuat kueri menggunakan Grafana atau konsumen Prometheus API.
- Untuk mempelajari cara memfilter metrik yang diekspor dan menyesuaikan resource prom-operator, lihat Topik tambahan untuk pengumpulan terkelola.
Jika Anda menjalankan di luar GKE, Anda perlu membuat akun layanan dan memberi otorisasi untuk menulis data metrik Anda, seperti yang dijelaskan di bagian berikut.
Memberikan kredensial secara eksplisit
Saat berjalan di GKE, server Prometheus pengumpul akan otomatis mengambil kredensial dari lingkungan berdasarkan akun layanan node. Di cluster Kubernetes non-GKE, kredensial harus diberikan secara eksplisit melalui resource OperatorConfig di namespace gmp-public.
Tetapkan konteks ke project target Anda:
gcloud config set project PROJECT_ID
Buat akun layanan:
gcloud iam service-accounts create gmp-test-sa
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
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.
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
Buka resource OperatorConfig untuk mengedit:
kubectl -n gmp-public edit operatorconfig config
Tambahkan teks yang ditampilkan dalam huruf tebal ke resource:
Pastikan Anda juga menambahkan kredensial ini ke bagianapiVersion: monitoring.googleapis.com/v1 kind: OperatorConfig metadata: namespace: gmp-public name: config collection: credentials: name: gmp-test-sa key: key.json
rules
agar evaluasi aturan terkelola berfungsi.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.
- Konfigurasi scraping target menggunakan Terraform.
- Memfilter data yang Anda ekspor ke layanan terkelola.
- Scrape metrik Kubelet dan cAdvisor.
- Konversi 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 di-scrap 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 aktif di cluster besar dapat menyebabkan operator kehabisan memori dan mengalami loop error.
Anda dapat memeriksa status target di resource PodMonitoring atau ClusterPodMonitoring dengan menyetel nilai
features.targetStatus.enabled
dalam resource OperatorConfig ketrue
, seperti yang ditunjukkan 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, jika dikonfigurasi.Jika Anda memiliki resource PodMonitoring dengan nama
prom-example
di namespaceNAMESPACE_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
Output mencakup kolom status berikut:
Status.Conditions.Status
bernilai benar (true) saat Managed Service for Prometheus mengonfirmasi dan memproses PodMonitoring atau ClusterPodMonitoring.Status.Endpoint Statuses.Active Targets
menunjukkan jumlah target pengambilan data yang diandalkan Managed Service for Prometheus di semua pengumpul data untuk resource PodMonitoring ini. Dalam aplikasi contoh, deploymentprom-example
memiliki tiga replika dengan satu target metrik, sehingga nilainya adalah3
. Jika ada target yang tidak responsif, kolomStatus.Endpoint Statuses.Unhealthy Targets
akan muncul.Status.Endpoint Statuses.Collectors Fraction
menunjukkan nilai1
(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 update terakhir jauh lebih lama daripada waktu interval scraping yang Anda inginkan, perbedaan tersebut mungkin menunjukkan masalah pada target atau cluster Anda.- Kolom
Status.Endpoint Statuses.Sample Groups
menampilkan target sampel yang dikelompokkan berdasarkan label target umum yang dimasukkan oleh pengumpul. Nilai ini berguna untuk men-debug situasi saat target Anda tidak ditemukan. Jika semua target berfungsi dengan baik dan dikumpulkan, nilai yang diharapkan untuk kolomHealth
adalahup
dan nilai untuk kolomLast Scrape Duration Seconds
adalah durasi normal untuk target umum.
Untuk mengetahui informasi selengkapnya tentang kolom ini, lihat dokumen Managed Service for Prometheus API.
Salah satu hal berikut dapat 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 adalahdown
.
Untuk mengetahui informasi selengkapnya tentang masalah penemuan target saat proses debug, lihat Masalah sisi penyerapan dalam dokumentasi pemecahan masalah.
Mengonfigurasi endpoint pengambilan data yang diizinkan
Jika target pengambilan data Anda memerlukan otorisasi, Anda dapat menyiapkan pengumpul data untuk menggunakan jenis otorisasi yang benar dan memberikan rahasia 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 Anda kehttps
. Meskipun tidak direkomendasikan, Anda dapat menyetel kolomSpec.Endpoints[].tls.insecureSkipVerify
di resource PodMonitoring ketrue
untuk melewati verifikasi otoritas sertifikat. Atau, Anda dapat mengonfigurasi Managed Service for Prometheus untuk memuat sertifikat dan kunci dari resource rahasia.Misalnya, resource Secret berikut berisi kunci untuk sertifikat klien (
cert
), kunci pribadi (key
), dan otoritas sertifikat (ca
):kind: Secret metadata: name: secret-example stringData: cert: ******** key: ******** ca: ********
Beri izin pengumpul 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, ini akan terlihat seperti:
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
dantls
: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 Managed Service for 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: ********
Beri izin pengumpul 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, ini akan terlihat seperti:
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 bagianbasicAuth
: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 Managed Service for Prometheus BasicAuth, 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 Anda 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: ********
Beri izin pengumpul 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, ini akan terlihat seperti:
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 bagianauthorization
: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 Managed Service for Prometheus HTTP Authorization Header, 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 rahasia klien:
kind: Secret metadata: name: secret-example stringData: clientSecret: ********
Beri izin pengumpul 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, ini akan terlihat seperti:
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 tokenexample.com/token
, ubah resource Anda untuk menambahkan bagianoauth2
: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 Managed Service for 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 Terraformkubectl_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, Anda mungkin ingin mencegah beberapa deret waktu dikirim ke Managed Service for Prometheus untuk menekan biaya. Anda dapat melakukannya dengan menggunakan aturan pelabelan ulang Prometheus dengan tindakan
keep
untuk daftar yang diizinkan atau tindakandrop
untuk daftar yang ditolak. Untuk koleksi terkelola, aturan ini masuk ke bagianmetricRelabeling
dari resource PodMonitoring atau ClusterPodMonitoring Anda.Misalnya, aturan pelabelan ulang metrik berikut akan memfilter metrik apa pun yang dimulai dengan
foo_bar_
,foo_baz_
, ataufoo_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 kemampuan pengamatan. Halaman Pengelolaan Metrik melaporkan informasi berikut:
- Volume penyerapan untuk penagihan berbasis byte dan sampel, di seluruh domain metrik dan untuk setiap metrik.
- Data tentang label dan kardinalitas metrik.
- Jumlah pembacaan untuk setiap metrik.
- Penggunaan metrik dalam kebijakan pemberitahuan dan dasbor kustom.
- Rasio error penulisan metrik.
Anda juga dapat menggunakan halaman Pengelolaan Metrik untuk mengecualikan metrik yang tidak diperlukan, sehingga menghilangkan biaya penyerapan metrik tersebut. Untuk mengetahui informasi selengkapnya tentang halaman Pengelolaan Metrik, lihat Melihat dan mengelola penggunaan metrik.
Untuk saran tambahan tentang cara menurunkan biaya, lihat Kontrol biaya dan atribusi.
Melakukan scraping metrik Kubelet dan cAdvisor
Kubelet mengekspos metrik tentang dirinya sendiri serta metrik cAdvisor tentang container yang berjalan di nodenya. Anda dapat mengonfigurasi pengumpulan terkelola untuk meng-scrape metrik Kubelet dan cAdvisor dengan mengedit resource OperatorConfig. Untuk mengetahui petunjuknya, lihat dokumentasi eksportir untuk Kubelet dan cAdvisor.
Mengonversi resource prometheus-operator yang ada
Biasanya Anda dapat mengonversi resource prometheus-operator yang ada ke resource PodMonitoring dan ClusterPodMonitoring pengumpulan data terkelola Managed Service for Prometheus.
Misalnya, resource ServiceMonitor menentukan pemantauan untuk serangkaian layanan. Resource PodMonitoring menyediakan subset kolom yang disediakan oleh resource ServiceMonitor. Anda dapat mengonversi CR ServiceMonitor menjadi CR PodMonitoring dengan memetakan kolom seperti yang dijelaskan dalam tabel berikut:
monitoring.coreos.com/v1
ServiceMonitorKompatibilitas
monitoring.googleapis.com/v1
PodMonitoring.ServiceMonitorSpec.Selector
Identik .PodMonitoringSpec.Selector
.ServiceMonitorSpec.Endpoints[]
.TargetPort
dipetakan ke.Port
.Path
: kompatibel
.Interval
: kompatibel
.Timeout
: kompatibel.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 dan pod-nya diberi label
app=example-app
. Jika asumsi ini tidak berlaku, Anda harus menggunakan pemilih label resource Service 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 pengumpul, sehingga Anda mungkin ingin menggunakan pengumpul yang di-deploy sendiri untuk deployment Prometheus yang ada, sekaligus menggunakan pengumpul 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 Google Cloud project yang terkait dengan metrik Anda.location
: Lokasi fisik (regionGoogle Cloud ) tempat data disimpan. Nilai ini biasanya adalah region cluster GKE Anda. Jika data dikumpulkan dari deployment AWS atau lokal, maka nilainya mungkin merupakan 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
, dancluster
dengan menambahkannya sebagaiargs
ke resource Deployment dalamoperator.yaml
. Jika Anda menggunakan label yang dicadangkan sebagai label metrik, Managed Service for Prometheus akan otomatis memberi label ulang dengan menambahkan awalanexported_
. Perilaku ini sesuai dengan cara Prometheus upstream menangani konflik dengan label yang dicadangkan.Konfigurasi kompresi
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 koleksi terkelola
Jika Anda mengalami error Kehabisan Memori (OOM) untuk pod pengumpul di cluster Anda atau jika permintaan dan batas resource default untuk pengumpul tidak memenuhi kebutuhan Anda, Anda dapat menggunakan penskalaan otomatis pod vertikal untuk mengalokasikan resource secara dinamis.
Saat Anda menyetel kolom
scaling.vpa.enabled: true
pada resourceOperatorConfig
, operator akan men-deploy manifesVerticalPodAutoscaler
di cluster yang memungkinkan permintaan dan batas resource pod pengumpul ditetapkan secara otomatis, berdasarkan penggunaan.Untuk mengaktifkan VPA untuk pod pengumpul 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 pengumpul. Error Out Of Memory akan langsung meningkatkan batas resource. Jika tidak ada error OOM, penyesuaian pertama pada permintaan dan batas resource pod pengumpul 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 di tingkat cluster terlebih dahulu:
Buka halaman Kubernetes Engine - Clusters di konsolGoogle Cloud .
Di konsol Google Cloud , buka halaman Kubernetes clusters:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Kubernetes Engine.
Pilih cluster yang ingin Anda ubah.
Di bagian Automation, edit nilai opsi Vertical Pod Autoscaling.
Centang kotak Enable Vertical Pod Autoscaling, lalu klik Save changes. Perubahan ini akan memulai ulang cluster Anda. Operator dimulai ulang sebagai bagian dari proses ini.
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 perintahkubectl -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
Jika Anda telah mengaktifkan penskalaan otomatis pod vertikal di tingkat cluster dan masih melihat error
vertical pod autoscaling is not available - install vpa support and restart the operator
, podgmp-operator
mungkin perlu mengevaluasi ulang konfigurasi cluster. Jika Anda menjalankan cluster Standard, jalankan perintah berikut untuk membuat ulang pod:kubectl -n gmp-system rollout restart deployment/gmp-operator
Setelah pod
gmp-operator
dimulai ulang, ikuti langkah-langkah di atas untuk menambalOperatorConfig
sekali lagi.Jika Anda menjalankan cluster Autopilot, hubungi dukungan untuk mendapatkan bantuan dalam memulai ulang cluster.
Penskalaan otomatis pod vertikal berfungsi paling baik saat menyerap sejumlah sampel yang stabil, yang dibagi secara merata di seluruh node. Jika pemuatan metrik tidak teratur atau berfluktuasi, atau jika pemuatan metrik sangat bervariasi antar-node, VPA mungkin bukan solusi yang efisien.
Untuk mengetahui informasi selengkapnya, lihat penskalaan otomatis pod vertikal di GKE.
Mengonfigurasi statsd_exporter dan pengekspor lain yang melaporkan metrik secara terpusat
Jika Anda menggunakan statsd_exporter untuk Prometheus, Envoy untuk Istio, SNMP exporter, Prometheus Pushgateway, kube-state-metrics, atau Anda memiliki pengekspor serupa yang memediasi dan melaporkan metrik atas nama resource lain yang berjalan di lingkungan Anda, maka Anda perlu melakukan beberapa perubahan kecil agar pengekspor Anda dapat berfungsi dengan Managed Service for Prometheus.
Untuk mengetahui petunjuk tentang cara mengonfigurasi eksportir ini, lihat catatan ini di bagian Pemecahan masalah.
Pembongkaran
Untuk menonaktifkan pengumpulan terkelola yang di-deploy menggunakan
gcloud
atau UI GKE, Anda dapat melakukan salah satu hal berikut:Jalankan perintah berikut:
gcloud container clusters update CLUSTER_NAME --disable-managed-prometheus
Menggunakan UI GKE:
Pilih Kubernetes Engine di konsol, lalu pilih Clusters. Google Cloud
Temukan cluster yang ingin Anda nonaktifkan koleksi terkelolanya, lalu klik namanya.
Di tab Detail, scroll ke bawah ke Fitur dan ubah status menjadi Dinonaktifkan menggunakan tombol edit.
Untuk menonaktifkan koleksi terkelola yang di-deploy menggunakan Terraform, tentukan
enabled = false
di bagianmanaged_prometheus
dari resourcegoogle_container_cluster
.Untuk menonaktifkan pengumpulan terkelola yang di-deploy menggunakan
kubectl
, jalankan perintah berikut:kubectl delete -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.15.3/manifests/operator.yaml
Menonaktifkan pengumpulan terkelola akan menyebabkan cluster Anda berhenti mengirimkan data baru ke Managed Service for Prometheus. Tindakan ini tidak akan menghapus data metrik yang ada yang sudah disimpan dalam sistem.
Menonaktifkan koleksi terkelola juga akan menghapus namespace
gmp-public
dan semua resource di dalamnya, termasuk pengekspor 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, nilailocation
(Google Cloud region) tempat metrik akan disimpan, dan nilaicluster
untuk menyimpan nama cluster tempat pengumpul berjalan.Karena
gcloud
tidak berfungsi di luar lingkungan Google Cloud , Anda harus men-deploy menggunakan kubectl. Tidak sepertigcloud
, men-deploy koleksi terkelola menggunakankubectl
tidak akan otomatis mengupgrade cluster Anda saat versi baru tersedia. Jangan lupa untuk memantau halaman rilis untuk mengetahui versi baru dan mengupgrade secara manual dengan menjalankan kembali perintahkubectl
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 nilaiproject-id
,location
, dancluster
dengan menambahkannya sebagaiargs
ke resource Deployment dalamoperator.yaml
.Sebaiknya pilih
project-id
berdasarkan model sewa yang Anda rencanakan untuk bacaan. Pilih project untuk menyimpan metrik berdasarkan cara Anda berencana mengatur pembacaan nanti 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. Semakin jauh Google Cloud wilayah yang dipilih dari deployment Anda, semakin besar latensi penulisan yang akan Anda alami dan semakin besar pula pengaruh yang akan Anda rasakan akibat potensi masalah jaringan. Anda mungkin ingin melihat daftar region di beberapa cloud ini. Jika tidak masalah, Anda dapat menempatkan semuanya ke dalam satu Google Cloud region. Anda tidak dapat menggunakanglobal
sebagai lokasi Anda.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 sepertius-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 kabel melalui OperatorConfig. Tambahkan teks yang ditampilkan dalam huruf 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 prometheus-engine/doc/api reference.
Langkah berikutnya