Dokumen ini menjelaskan cara menyiapkan Google Cloud Managed Service for Prometheus dengan koleksi yang di-deploy sendiri. Aplikasi contoh di-deploy ke cluster Kubernetes dan dipantau oleh server Prometheus yang menyimpan metrik yang dikumpulkan di Monarch.
Dokumen ini menunjukkan cara melakukan hal berikut:
- Menyiapkan lingkungan dan alat command line.
- Konfigurasikan akun layanan untuk cluster yang mendukung Workload Identity.
- Jalankan biner Prometheus siap pakai di Kubernetes.
- Mengontrol metrik mana yang diserap ke Managed Service for Prometheus.
- Integrasikan Google Cloud Managed Service for Prometheus dengan penyiapan operator prometheus.
- Kompilasi dan jalankan biner Prometheus secara manual.
Dengan pengumpulan data yang di-deploy sendiri, Anda dapat mengelola penginstalan Prometheus seperti biasa. Satu-satunya perbedaan adalah Anda menjalankan biner pengganti drop-in Managed Service for Prometheus, gke.gcr.io/prometheus-engine/prometheus:v2.41.0-gmp.9-gke.0
, bukan biner Prometheus upstream.
Biner drop-in memberikan opsi konfigurasi tambahan dengan flag --export.*
. Untuk mengetahui informasi
selengkapnya, lihat output opsi
--help
. Dokumen ini menunjukkan
opsi yang paling penting.
Managed Service for Prometheus tidak mendukung ekspor metrik dari server gabungan atau dari server yang digunakan sebagai penerima penulisan jarak jauh. Anda dapat mereplikasi semua fungsi server federasi, termasuk mengurangi volume penyerapan dengan menggabungkan data sebelum mengirim ke Monarch, menggunakan filter dan agregasi lokal.
Streaming data ke Google Cloud Managed Service for Prometheus menggunakan resource tambahan. Jika Anda men-deploy kolektor sendiri, sebaiknya tingkatkan batas CPU dan memori sebesar 5x dan sesuaikan berdasarkan penggunaan sebenarnya.
Untuk mengetahui informasi selengkapnya tentang pengumpulan data yang terkelola dan di-deploy sendiri, lihat Pengumpulan data dengan Google Cloud Managed Service for Prometheus.
Sebelum memulai
Bagian ini menjelaskan konfigurasi yang diperlukan untuk tugas-tugas yang dijelaskan dalam dokumen ini.
Menyiapkan project dan alat
Untuk menggunakan Google Cloud Managed Service for Prometheus, Anda memerlukan referensi berikut:
Project Google Cloud dengan Cloud Monitoring API diaktifkan.
Jika Anda tidak memiliki project Google Cloud, lakukan hal berikut:
Di konsol Google Cloud, buka New Project:
Di kolom Project Name, masukkan nama untuk 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 yang baru.
Monitoring API diaktifkan secara default untuk project baru.
Jika Anda sudah memiliki project Google Cloud, 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 dalam Panduan Memulai 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 berulang kali memasukkan project ID atau nama cluster Anda, 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 mengetahui 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
Memverifikasi kredensial akun layanan
Anda dapat melewati bagian ini jika cluster Kubernetes Anda telah mengaktifkan Workload Identity.
Saat berjalan di GKE, Google Cloud Managed Service for Prometheus akan otomatis mengambil kredensial dari lingkungan berdasarkan akun layanan default Compute Engine. Akun layanan default memiliki
izin yang diperlukan, monitoring.metricWriter
dan monitoring.viewer
, secara
default. Jika tidak menggunakan Workload Identity, dan sebelumnya telah menghapus salah satu peran tersebut dari akun layanan node default, Anda harus menambahkan kembali izin yang tidak ada tersebut sebelum melanjutkan.
Jika Anda tidak menjalankan aplikasi di GKE, lihat Memberikan kredensial secara eksplisit.
Mengonfigurasi akun layanan untuk Workload Identity
Anda dapat melewati bagian ini jika cluster Kubernetes Anda tidak mengaktifkan Workload Identity.
Google Cloud Managed Service for Prometheus merekam data metrik menggunakan Cloud Monitoring API. Jika cluster menggunakan Workload Identity, Anda harus memberikan izin ke akun layanan Kubernetes ke Monitoring API. Bagian ini menjelaskan hal berikut:
- Membuat akun layanan Google Cloud khusus,
gmp-test-sa
. - Mengikat akun layanan Google Cloud ke akun layanan Kubernetes default dalam namespace pengujian,
NAMESPACE_NAME
. - Memberikan izin yang diperlukan ke akun layanan Google Cloud.
Membuat dan mengikat akun layanan
Langkah ini muncul di beberapa tempat dalam dokumentasi Managed Service for Prometheus. Jika sudah melakukan langkah ini sebagai bagian dari tugas sebelumnya, Anda tidak perlu mengulanginya. Lanjutkan ke bagian Mengizinkan akun layanan.
Urutan perintah berikut membuat akun layanan gmp-test-sa
dan mengikatnya ke akun layanan Kubernetes default di
namespace NAMESPACE_NAME
:
gcloud config set project PROJECT_ID \ && gcloud iam service-accounts create gmp-test-sa \ && gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[NAMESPACE_NAME/default]" \ gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \ && kubectl annotate serviceaccount \ --namespace NAMESPACE_NAME \ default \ iam.gke.io/gcp-service-account=gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com
Jika Anda menggunakan namespace atau akun layanan GKE yang berbeda, sesuaikan perintah dengan tepat.
Mengizinkan akun layanan
Grup izin terkait dikumpulkan ke dalam peran, dan Anda memberikan peran kepada akun utama, dalam contoh ini, akun layanan Google Cloud. Untuk mengetahui informasi selengkapnya tentang peran Monitoring, lihat Kontrol akses.
Perintah berikut memberikan akun layanan Google Cloud, gmp-test-sa
, peran Monitoring API yang diperlukan untuk menulis data metrik.
Jika sudah memberikan peran tertentu kepada akun layanan Google Cloud sebagai bagian dari tugas sebelumnya, Anda tidak perlu melakukannya lagi.
gcloud projects add-iam-policy-binding PROJECT_ID\ --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/monitoring.metricWriter
Men-debug konfigurasi Workload Identity Anda
Jika Anda mengalami masalah dalam membuat Workload Identity berfungsi, lihat dokumentasi untuk memverifikasi penyiapan Workload Identity Anda dan panduan pemecahan masalah Workload Identity.
Karena salah ketik dan salin-tempel sebagian adalah sumber error yang paling umum saat mengonfigurasi Workload Identity, kami sangat merekomendasikan penggunaan variabel yang dapat diedit dan ikon salin-tempel yang dapat diklik dan disematkan dalam contoh kode dalam petunjuk ini.
Workload Identity di lingkungan produksi
Contoh yang dijelaskan dalam dokumen ini mengikat akun layanan Google Cloud ke akun layanan Kubernetes default dan memberi akun layanan Google Cloud semua izin yang diperlukan untuk menggunakan Monitoring API.
Dalam lingkungan produksi, Anda mungkin ingin menggunakan pendekatan yang lebih terperinci, dengan akun layanan untuk setiap komponen, masing-masing dengan izin minimal. Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi akun layanan untuk pengelolaan workload-identitas, lihat Menggunakan Workload Identity.
Menyiapkan koleksi yang di-deploy sendiri
Bagian ini menjelaskan cara menyiapkan dan menjalankan aplikasi contoh yang menggunakan koleksi yang di-deploy sendiri.
Men-deploy aplikasi contoh
Aplikasi contoh memunculkan
metrik penghitung example_requests_total
dan metrik histogram
example_random_numbers
(antara lain) pada 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.8.2/examples/example-app.yaml
Menjalankan biner Prometheus pengganti
Untuk menyerap data metrik yang dikeluarkan oleh aplikasi contoh, Anda men-deploy server Prometheus versi fork Google, yang dikonfigurasi untuk menghapus metrik beban kerja serta endpoint metriknya sendiri.
Untuk men-deploy server forked, jalankan perintah berikut:
kubectl -n NAMESPACE_NAME apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.8.2/examples/prometheus.yaml
Server Prometheus yang di-deploy ini adalah fork tipis dari biner Prometheus upstream. Perilakunya seperti server Prometheus standar, tetapi juga menyerap data ke Managed Service for Prometheus.
Manifes di atas memberikan contoh kerja dasar yang mengirim data ke penyimpanan data global, Monarch. Library ini tidak menyimpan salinan lokal data secara terus-menerus. Untuk mengetahui informasi tentang cara kerja konfigurasi standar ini dan cara memperluasnya, lihat dokumentasi konfigurasi Prometheus open source.
Image bawaan hanya berfungsi pada node Linux. Untuk melakukan scraping target yang berjalan pada node Windows, deploy server pada node Linux dan konfigurasikan untuk meng-scrap endpoint pada node Windows atau buat biner untuk Windows sendiri.
Pastikan pod untuk server Prometheus dan aplikasi contoh berhasil di-deploy:
kubectl -n NAMESPACE_NAME get pod
Jika deployment berhasil, Anda akan melihat output seperti berikut:
NAME READY STATUS RESTARTS AGE prom-example-84c6f547f5-fglbr 1/1 Running 0 5m prom-example-84c6f547f5-jnjp4 1/1 Running 0 5m prom-example-84c6f547f5-sqdww 1/1 Running 0 5m prometheus-test-0 2/2 Running 1 3m
Jika menjalankan di GKE, Anda dapat melakukan hal berikut:
- Untuk membuat kueri terkait metrik yang diserap oleh aplikasi contoh, baca bagian Membuat kueri menggunakan Cloud Monitoring atau Kueri menggunakan Grafana.
- Untuk mempelajari cara menggunakan prometheus-operator dan kube-prometheus dengan koleksi yang di-deploy sendiri, serta melihat cara membangun dan menjalankan biner untuk layanan terkelola, baca Topik tambahan untuk koleksi yang di-deploy sendiri.
Jika menjalankan di luar GKE, Anda harus membuat akun layanan dan mengizinkannya untuk menulis data metrik, seperti yang dijelaskan di bagian berikut.
Memberikan kredensial secara eksplisit
Saat berjalan di GKE, server pengumpulan Prometheus akan otomatis mengambil kredensial dari lingkungan berdasarkan akun layanan node atau penyiapan Workload Identity.
Dalam cluster Kubernetes non-GKE, kredensial harus diberikan secara eksplisit
ke server Prometheus pengumpul menggunakan flag atau
variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS
.
Tetapkan konteks ke project target Anda:
gcloud config set project PROJECT_ID
Buat akun layanan:
gcloud iam service-accounts create gmp-test-sa
Langkah ini akan membuat akun layanan yang mungkin telah Anda buat di petunjuk Workload Identity.
Berikan izin yang diperlukan ke akun layanan tersebut:
gcloud projects add-iam-policy-binding PROJECT_ID\ --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \ --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.iam.gserviceaccount.com
Tambahkan file kunci sebagai rahasia ke cluster non-GKE Anda:
kubectl -n NAMESPACE_NAME create secret generic gmp-test-sa \ --from-file=key.json=gmp-test-sa-key.json
Buka resource Prometheus StatefulSet untuk mengedit:
kubectl -n NAMESPACE_NAME edit statefulset prometheus-test
Tambahkan teks yang ditampilkan dalam huruf tebal ke referensi:
apiVersion: apps/v1 kind: StatefulSet metadata: namespace: NAMESPACE_NAME name: example spec: template containers: - name: prometheus args: - --export.credentials-file=/gmp/key.json ... volumeMounts: - name: gmp-sa mountPath: /gmp readOnly: true ... volumes: - name: gmp-sa secret: secretName: gmp-test-sa ...
Simpan file dan tutup editor. Setelah perubahan diterapkan, pod dibuat ulang dan mulai mengautentikasi ke backend metrik dengan akun layanan yang diberikan.
GOOGLE_APPLICATION_CREDENTIALS
.Topik tambahan untuk koleksi yang di-deploy sendiri
Bagian ini menjelaskan cara melakukan hal berikut:
- Filter data yang Anda ekspor ke layanan terkelola.
- Mengubah konfigurasi deployment yang ada.
- Jalankan biner Prometheus dalam mode ketersediaan tinggi.
- Bangun dan jalankan biner Prometheus pengganti.
- Jalankan Google Cloud Managed Service for Prometheus di luar Google Cloud.
Memfilter metrik yang diekspor
Jika mengumpulkan banyak data, Anda mungkin ingin mencegah beberapa deret waktu dikirim ke Managed Service for Prometheus untuk menekan biaya.
Anda dapat menggunakan konfigurasi pelabelan ulang metrik reguler dalam konfigurasi pembersihan Prometheus. Dengan pelabelan ulang konfigurasi, Anda dapat menghapus metrik berdasarkan kecocokan label pada waktu penyerapan.
Terkadang, Anda mungkin ingin menyerap data secara lokal, tetapi tidak mengekspornya ke Google Cloud Managed Service for Prometheus. Untuk memfilter metrik yang diekspor, Anda dapat menggunakan tanda
--export.match
.Tanda ini menentukan satu atau beberapa pemilih seri PromQL, dan tanda ini dapat digunakan beberapa kali. Deret waktu diekspor ke Managed Service for Prometheus jika memenuhi semua pemilih dalam setidaknya salah satu flag; yaitu, saat menentukan kelayakan, kondisi dalam satu flag akan diberi AND, sedangkan kondisi dalam flag terpisah diberi OR. Contoh berikut menggunakan dua instance flag:
./prometheus \ --export.match='{job="prometheus"}' \ --export.match='{__name__=~"job:.+"}' \ ...
Perubahan ini hanya menyebabkan metrik untuk tugas "prometheus" serta metrik yang dihasilkan oleh pencatatan aturan yang menggabungkan ke tingkat tugas (saat mengikuti praktik terbaik penamaan) yang akan diekspor. Sampel untuk semua seri lainnya akan difilter. Secara default, tidak ada pemilih yang ditentukan dan semua deret waktu diekspor.
Flag
--export.match
memiliki semantik yang sama dengan parametermatch[]
untuk federasi Prometheus. Oleh karena itu, Anda dapat memigrasikan penyiapan federasi ke Managed Service for Prometheus dengan menggunakan pemilih dari server federasi secara langsung sebagai tanda di server Prometheus yang disalin oleh server federasi Prometheus Anda. Mengekspor metrik dari server gabungan ke layanan terkelola tidak didukung.Untuk menyertakan metrik jenis
histogram
dalam filter, Anda harus menentukan metrik_count
,_sum
, dan_bucket
. Anda juga dapat melakukannya dengan pencocok karakter pengganti, misalnya pemilih{__name__=~"histogram_metric_.+"}
.Jika Anda menggunakan library
prometheus-operator
, tetapkan flag--export.match
menggunakan variabel lingkunganEXTRA_ARGS
dari penampung. Untuk mengetahui informasi selengkapnya, lihat Menggunakan dengan operator prometheus.Anda dapat menggabungkan flag filter dengan aturan perekaman yang dijalankan secara lokal untuk "menggabungkan" data sebelum dikirim ke Monarch, sehingga mengurangi kardinalitas dan biaya Anda. Untuk informasi selengkapnya, lihat Kontrol dan atribusi biaya.
Halaman Metrics Management Cloud Monitoring menyediakan informasi yang dapat membantu Anda mengontrol jumlah biaya yang dikeluarkan untuk metrik yang dapat dikenakan biaya tanpa memengaruhi kemampuan observasi. Halaman Pengelolaan Metrik melaporkan informasi berikut:
- Volume penyerapan untuk penagihan berbasis byte dan sampel, di seluruh domain metrik dan untuk masing-masing metrik.
- Data tentang label dan kardinalitas metrik.
- Penggunaan metrik dalam kebijakan pemberitahuan dan dasbor kustom.
- Rasio error penulisan metrik.
Menggunakan dengan operator prometheus
Biner Managed Service for Prometheus Prometheus juga dapat digunakan dengan deployment GKE Prometheus yang sudah ada dan dikelola oleh prometheus-operator.
Untuk menggunakan biner layanan terkelola, ganti spesifikasi gambar di resource Prometheus:
apiVersion: monitoring.coreos.com/v1 kind: Prometheus metadata: name: NAMESPACE_NAME namespace: gmp-system spec: image: gke.gcr.io/prometheus-engine/prometheus:v2.41.0-gmp.9-gke.0 ... replicas: 1 serviceAccountName: default version: v2.35.0 ...
Jika Anda berada di cluster Workload Identity dan namespace atau akun layanan di resource Anda berbeda, ulangi petunjuk Workload Identity untuk pasangan namespace dan akun layanan Kubernetes tambahan.
Saat menjalankan aplikasi di cluster Kubernetes non-GKE, Anda harus memberikan kredensial secara manual. Untuk memberikan kredensial, lakukan hal berikut:
Tambahkan file kunci akun layanan yang sesuai sebagai rahasia, seperti yang dijelaskan dalam Memberikan kredensial secara eksplisit.
Ubah resource Prometheus untuk menambahkan teks yang ditampilkan dalam huruf tebal:
apiVersion: monitoring.coreos.com/v1 kind: Prometheus metadata: namespace: gmp-test name: example spec: ... secrets: - gmp-test-sa containers: - name: prometheus env: - name: GOOGLE_APPLICATION_CREDENTIALS value: /gmp/key.json volumeMounts: - name: secret-gmp-test-sa mountPath: /gmp readOnly: true
Anda dapat menetapkan variabel lingkungan
EXTRA_ARGS
dalam penampung untuk menambahkan flag lain, seperti flag pemfilteran metrik. Hal ini dilakukan melalui variabel lingkungan karena bagianargs
dalam spesifikasi penampung dikelola oleh Operator Prometheus.Menggunakan dengan kube-prometheus
Anda dapat mengonfigurasi deployment yang dibuat menggunakan library kube-prometheus populer untuk menggunakan Managed Service for Prometheus.
Kube-prometheus memiliki dependensi internal yang ketat pada namespace dan akun layanan default-nya, jadi sebaiknya hanya ubah jumlah minimum kolom yang diperlukan untuk mengirim data ke Google Cloud Managed Service for Prometheus.
Dalam
manifests/prometheus-prometheus.yaml
, ganti spesifikasi gambar dan nonaktifkan pengumpulan ketersediaan tinggi dengan mengurangireplicas
menjadi 1:apiVersion: monitoring.coreos.com/v1 kind: Prometheus ... spec: image: gke.gcr.io/prometheus-engine/prometheus:v2.41.0-gmp.9-gke.0 ... replicas: 1 version: v2.35.0 ...
Jika Anda menjalankan di GKE dan belum mengubah akun layanan default pada node, penerapan manifes yang dimodifikasi akan segera mulai mengirim data ke Managed Service for Prometheus. Jika tidak, Anda mungkin harus mengonfigurasi dan menerapkan akun layanan. Saat menjalankan di GKE dan menggunakan workload identity, Anda mungkin harus membuat dan memberikan otorisasi pada akun layanan
prometheus-k8s
dalam namespacemonitoring
. Saat menjalankan aplikasi di cluster Kubernetes non-GKE, ikuti petunjuk di bagian prometheus-operator.Perhatikan bahwa kube-prometheus mengumpulkan banyak metrik secara default, yang sebagian besar sering kali tidak diperlukan dalam lingkungan Kubernetes terkelola seperti GKE. Untuk menghemat biaya penyerapan, Anda dapat menyesuaikan kube-prometheus agar hanya menyalin metrik yang penting bagi Anda dan memfilter metrik yang diekspor secara agresif.
Untuk saran lainnya, lihat Kontrol dan atribusi biaya.
Deployment ketersediaan tinggi
Biner Prometheus pengganti dilengkapi dengan dukungan bawaan untuk koleksi yang sangat tersedia dengan menggunakan pemilihan pemimpin. Server Prometheus replika dalam mode ketersediaan tinggi mengumpulkan metrik dan mengevaluasi aturan seperti biasa, tetapi hanya salah satunya yang mengirim data ke Google Cloud Managed Service for Prometheus.
Replika dari server Prometheus yang sama harus selalu memiliki konfigurasi yang sama, termasuk
external_labels
yang sama. Persyaratan ini berbeda dari sistem lain, yang mengandalkan label eksternal khusus, seperti__replica__
, untuk membuat replika berbeda secara eksplisit.Server Kubernetes API adalah backend pemilihan pemimpin yang didukung dan dapat diaktifkan dengan menetapkan flag berikut:
./prometheus ... --export.ha.backend=kube \ --export.ha.kube.namespace=LEASE_NAMESPACE \ --export.ha.kube.name=LEASE_NAME
Nilai LEASE_NAMESPACE dan LEASE_NAME mengidentifikasi resource Rental tempat pemilihan pemimpin dilakukan. Semua server Prometheus yang mengarah ke resource yang sama termasuk dalam kumpulan replika yang sama. Akun layanan Kubernetes untuk deployment Prometheus memerlukan izin untuk membaca dan menulis resource Lease masing-masing. Saat menjalankan server Prometheus di luar cluster Kubernetes, Anda dapat memberikan konfigurasi eksplisit menggunakan flag
--export.ha.kube.config
.Setelah melakukannya, Anda dapat meningkatkan nilai
replicas
menjadi 2 atau lebih besar.Deployment biner
Jika ingin berjalan di lingkungan non-container, Anda dapat membuat biner Prometheus pengganti secara langsung.
Membuat sumber
Jika sudah memiliki proses kompilasi Prometheus, Anda dapat mengganti repositori GitHub secara transparan ke proses Anda. Google Cloud Managed Service for Prometheus memiliki ekstensi tag versinya sendiri untuk membedakan rilisnya dari rilis upstream.
Untuk membuat biner biasa, toolchain Go dan versi terbaru NPM/Yarn harus diinstal di komputer. Untuk mengetahui informasi selengkapnya, lihat petunjuk build upstream.
Meng-cloning repository
git clone https://github.com/GoogleCloudPlatform/prometheus && cd prometheus
Periksa tag versi yang diinginkan:
git checkout v2.41.0-gmp.9
Untuk membuat tarball Managed Service for Prometheus, jalankan perintah berikut:
make build && make tarball
Tarball dan biner yang dihasilkan sepenuhnya kompatibel dengan varian upstreamnya dalam hal struktur dan fungsi direktori.
Batasan dalam membuat dan memperbarui metrik dan label
Managed Service for Prometheus memberlakukan batas kapasitas per menit dalam pembuatan metrik baru dan penambahan label metrik baru ke metrik yang ada. Batas kapasitas ini biasanya hanya tercapai saat pertama kali berintegrasi dengan Google Cloud Managed Service for Prometheus, misalnya saat Anda memigrasikan deployment Prometheus yang sudah ada dan sudah matang untuk menggunakan koleksi yang di-deploy sendiri. Ini bukanlah batas kapasitas untuk menyerap titik data. Batas kapasitas ini hanya berlaku saat membuat metrik yang belum pernah dilihat sebelumnya atau saat menambahkan label baru ke metrik yang ada.
Kuota ini telah diperbaiki, tetapi masalah apa pun akan otomatis diselesaikan saat metrik dan label metrik baru dibuat hingga batas per menit.
Untuk informasi selengkapnya, lihat Pemecahan masalah.
Menjalankan koleksi yang di-deploy sendiri di luar Google Cloud
Di lingkungan Compute Engine, lingkungan GKE, atau di mesin tempat Anda menjalankan
gcloud login
dengan akun yang cukup diberi otorisasi, Anda dapat menjalankan koleksi yang di-deploy sendiri tanpa konfigurasi lebih lanjut. Di luar Google Cloud, Anda harus secara eksplisit memberikan kredensial,project_id
untuk memuat metrik, danlocation
(region Google Cloud) untuk menyimpan metrik. Anda juga harus menetapkan labelcluster
dannamespace
, meskipun berjalan di lingkungan non-Kubernetes.Anda dapat memberikan kunci akun layanan menggunakan tanda
--export.credentials-file
atau variabel lingkunganGOOGLE_APPLICATION_CREDENTIALS
seperti yang dijelaskan dalam Memberikan kredensial secara eksplisit.Sebaiknya pilih
project_id
berdasarkan model tenancy yang direncanakan untuk bacaan. Pilih project untuk menyimpan metrik berdasarkan cara Anda berencana mengatur pembacaan nanti dengan cakupan metrik. Jika Anda tidak peduli, Anda bisa menempatkan semuanya ke dalam satu proyek.Untuk
location
, sebaiknya pilih region Google Cloud terdekat dengan deployment Anda. Semakin jauh region Google Cloud yang dipilih dari deployment Anda, semakin banyak latensi tulis yang akan Anda alami, dan semakin besar dampak dari potensi masalah jaringan. Sebaiknya Anda membaca daftar region di beberapa cloud ini. Jika tidak peduli, Anda dapat menempatkan semuanya ke dalam satu region Google Cloud. Anda tidak dapat menggunakanglobal
sebagai lokasi Anda.Jika berjalan di lingkungan Kubernetes, tetapkan nilai
cluster
dannamespace
ke cluster dan namespace lokal. Jika berjalan di luar Kubernetes, tetapkan ke nilai yang masuk akal secara hierarkis. Misalnya, di lingkungan berbasis VM yang berjalan di AWS, tetapkan nilaicluster
ke__aws__
dan nilainamespace
ke ID instance. Anda dapat mengisi ID instance secara dinamis menggunakan aturan pelabelan ulang yang memanggil server metadata lokal.Untuk contoh kerja minimal, Anda dapat menjalankan biner Prometheus lokal yang memantau mandiri dengan perintah berikut:
./prometheus \ --config.file=documentation/examples/prometheus.yaml \ --export.label.project-id=PROJECT_ID \ --export.label.location=REGION \ --export.label.cluster=CLUSTER_NAME \
Contoh ini mengasumsikan bahwa Anda telah menetapkan variabel
REGION
ke nilai sepertius-central1
, misalnya.Namun, sebaiknya tetapkan label target
export
untuk layanan terkelola di bagianglobal.external_labels
dalam konfigurasi Prometheus Anda. Misalnya, di lingkungan Kubernetes, Anda dapat menggunakan konfigurasi berikut:global: external_labels: project_id: PROJECT_ID location: REGION cluster: CLUSTER_NAME namespace: local-testing scrape_configs: ...
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 menggunakan flag
--export.compression=gzip
.Langkah selanjutnya
- Menggunakan PromQL di Cloud Monitoring untuk membuat kueri metrik Prometheus.
- Gunakan Grafana untuk membuat kueri metrik Prometheus.
- Menggunakan pemberitahuan PromQL di Cloud Monitoring.
- Menyiapkan evaluasi aturan terkelola.
- Menyiapkan evaluasi aturan yang di-deploy sendiri.
- Kurangi kardinalitas dan biaya dengan mengonfigurasi agregasi lokal.