Setelah men-deploy Google Cloud Managed Service for Prometheus, Anda dapat membuat kueri data yang dikirim ke layanan terkelola dan menampilkan hasilnya dalam diagram dan dasbor.
Dokumen ini menjelaskan cakupan metrik, yang menentukan data yang dapat Anda kueri, dan cara menggunakan Grafana untuk mengambil dan menggunakan data yang telah Anda kumpulkan.
Semua antarmuka kueri untuk Managed Service for Prometheus dikonfigurasi untuk mengambil data dari Monarch menggunakan Cloud Monitoring API. Dengan mengirim kueri ke Monarch, bukan mengirim kueri data dari server Prometheus lokal, Anda akan mendapatkan pemantauan global dalam skala besar.
Sebelum memulai
Jika Anda belum men-deploy layanan terkelola, siapkan koleksi terkelola atau koleksi yang di-deploy sendiri. Anda dapat melewati langkah ini jika hanya tertarik untuk membuat kueri metrik Cloud Monitoring menggunakan PromQL.
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
Memverifikasi kredensial akun layanan
Jika cluster Kubernetes Anda telah mengaktifkan Workload Identity Federation untuk GKE, Anda dapat melewati bagian ini.
Saat berjalan di GKE, 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 Anda tidak menggunakan Workload Identity Federation untuk GKE, dan sebelumnya telah
menghapus salah satu peran tersebut dari akun layanan node default, Anda harus
menambahkan kembali izin yang hilang tersebut sebelum melanjutkan.
Mengonfigurasi akun layanan untuk Workload Identity Federation for GKE
Jika cluster Kubernetes Anda tidak mengaktifkan Workload Identity Federation untuk GKE, Anda dapat melewati bagian ini.
Managed Service for Prometheus merekam data metrik menggunakan Cloud Monitoring API. Jika cluster Anda menggunakan Workload Identity Federation for GKE, Anda harus memberikan izin akun layanan Kubernetes Anda ke Monitoring API. Bagian ini menjelaskan hal berikut:
- Membuat Google Cloud akun layanan khusus,
gmp-test-sa
. - Mengikat Google Cloud akun layanan ke akun layanan
Kubernetes default di namespace pengujian,
NAMESPACE_NAME
. - Memberikan izin yang diperlukan ke akun layanan Google Cloud .
Buat dan ikat akun layanan
Langkah ini muncul di beberapa tempat dalam dokumentasi Managed Service for Prometheus. Jika Anda telah melakukan langkah ini sebagai bagian dari tugas sebelumnya, Anda tidak perlu mengulanginya. Lanjutkan ke Melakukan otorisasi 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. \ && kubectl annotate serviceaccount \ --namespace NAMESPACE_NAME \ default \ iam.gke.io/gcp-service-account=gmp-test-sa@PROJECT_ID.
Jika Anda menggunakan namespace atau akun layanan GKE yang berbeda, sesuaikan perintah dengan tepat.
Memberikan otorisasi akun layanan
Grup izin terkait dikumpulkan ke dalam peran, dan Anda memberikan peran tersebut kepada akun utama, dalam contoh ini, akun layanan Google Cloud. Untuk mengetahui informasi selengkapnya tentang peran Monitoring, lihat Kontrol akses.
Perintah berikut memberikan peran Monitoring API yang diperlukan akun layanan Google Cloud ,gmp-test-sa
, untuk membaca data metrik.
Jika Anda telah memberikan peran tertentu kepada Google Cloud akun layanan sebagai bagian dari tugas sebelumnya, Anda tidak perlu melakukannya lagi.
Untuk memberi otorisasi akun layanan Anda agar dapat membaca dari cakupan metrik multi-project, ikuti petunjuk ini, lalu lihat Mengubah project yang dikueri.gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-test-sa@PROJECT_ID. \ --role=roles/monitoring.viewer \ && \ gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-test-sa@PROJECT_ID. \ --role=roles/iam.serviceAccountTokenCreator
Men-debug konfigurasi Workload Identity Federation for GKE
Jika Anda mengalami masalah saat mengaktifkan Workload Identity Federation for GKE, lihat dokumentasi untuk memverifikasi penyiapan Workload Identity Federation for GKE dan panduan pemecahan masalah Workload Identity Federation for GKE.
Karena kesalahan ketik dan penyalinan sebagian adalah sumber kesalahan paling umum saat mengonfigurasi Workload Identity Federation untuk GKE, kami sangat merekomendasikan penggunaan variabel yang dapat diedit dan ikon salin tempel yang dapat diklik yang disematkan dalam contoh kode dalam petunjuk ini.
Workload Identity Federation for GKE di lingkungan produksi
Contoh yang dijelaskan dalam dokumen ini mengikat akun layanan Google Cloud ke akun layanan Kubernetes default dan memberikan semua izin yang diperlukan kepada akun layanan Google Clouduntuk 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 identity, lihat Menggunakan Workload Identity Federation untuk GKE.
Cakupan kueri dan metrik
Data yang dapat Anda kueri ditentukan oleh konstruksi Cloud Monitoring, yaitu cakupan metrik, terlepas dari metode yang Anda gunakan untuk membuat kueri data. Misalnya, jika Anda menggunakan Grafana untuk mengkueri data Managed Service for Prometheus, setiap cakupan metrik harus dikonfigurasi sebagai sumber data terpisah.
Cakupan metrik Monitoring adalah konstruksi hanya-waktu baca yang memungkinkan Anda membuat kueri data metrik milik beberapa project. Google Cloud Setiap cakupan metrik dihosting oleh project Google Cloud yang ditetapkan, yang disebut project cakupan.
Secara default, project adalah project pencakupan untuk cakupan metriknya sendiri, dan cakupan metrik berisi metrik dan konfigurasi untuk project tersebut. Project pencakupan dapat memiliki lebih dari satu project yang dipantau dalam cakupan metriknya, dan metrik serta konfigurasi dari semua project yang dipantau dalam cakupan metrik terlihat oleh project pencakupan. Project yang dipantau juga dapat menjadi bagian dari lebih dari satu cakupan metrik.
Saat Anda membuat kueri metrik dalam project pencakupan, dan jika project pencakupan tersebut menghosting cakupan metrik multi-project, Anda dapat mengambil data dari beberapa project. Jika cakupan metrik Anda berisi semua project, kueri dan aturan Anda akan dievaluasi secara global.
Untuk mengetahui informasi selengkapnya tentang project cakupan dan cakupan metrik, lihat Cakupan metrik. Untuk mengetahui informasi tentang cara mengonfigurasi cakupan metrik multi-project, lihat Melihat metrik untuk beberapa project.
Data Managed Service for Prometheus di Cloud Monitoring
Cara paling sederhana untuk memverifikasi bahwa data Prometheus Anda diekspor adalah dengan menggunakan halaman Metrics Explorer Cloud Monitoring di konsol Google Cloud , yang mendukung PromQL. Untuk mengetahui petunjuknya, lihat Membuat kueri menggunakan PromQL di Cloud Monitoring.
Anda juga dapat mengimpor dasbor Grafana ke Cloud Monitoring. Dengan begitu, Anda dapat terus menggunakan dasbor Grafana pribadi atau buatan komunitas tanpa harus mengonfigurasi atau men-deploy instance Grafana.
Grafana
Managed Service for Prometheus menggunakan sumber data Prometheus bawaan untuk Grafana, yang berarti Anda dapat terus menggunakan dasbor Grafana pribadi atau yang dibuat komunitas tanpa perubahan apa pun.
Deploy Grafana, jika diperlukan
Jika tidak memiliki deployment Grafana yang berjalan di cluster, Anda dapat membuat deployment pengujian sementara untuk bereksperimen.
Untuk membuat deployment Grafana sementara, terapkan manifes grafana.yaml
Managed Service for Prometheus ke cluster Anda, dan teruskan port layanan grafana
ke mesin lokal Anda. Karena
batasan CORS, Anda tidak dapat mengakses deployment Grafana menggunakan
Cloud Shell.
Terapkan manifes
grafana.yaml
:kubectl -n NAMESPACE_NAME apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.15.3/examples/grafana.yaml
Teruskan port layanan
grafana
ke mesin lokal Anda. Contoh ini meneruskan layanan ke port 3000:kubectl -n NAMESPACE_NAME port-forward svc/grafana 3000
Perintah ini tidak ditampilkan, dan saat dijalankan, perintah ini melaporkan akses ke URL.
Anda dapat mengakses Grafana di browser Anda di URL
http://localhost:3000
dengan username:passwordadmin:admin
.
Kemudian, tambahkan sumber data Prometheus baru ke Grafana dengan melakukan hal berikut:
Buka deployment Grafana Anda, misalnya, dengan menjelajahi URL
http://localhost:3000
untuk membuka halaman selamat datang Grafana.Pilih Connections dari menu utama Grafana, lalu pilih Data Sources.
Pilih Tambahkan sumber data, lalu pilih Prometheus sebagai database deret waktu.
Beri nama sumber data, tetapkan kolom
URL
kehttp://localhost:9090
, lalu pilih Simpan & Uji. Anda dapat mengabaikan error yang menyatakan bahwa sumber data tidak dikonfigurasi dengan benar.Salin URL layanan lokal untuk deployment Anda, yang akan terlihat seperti berikut:
http://grafana.NAMESPACE_NAME.svc:3000
Mengonfigurasi dan mengautentikasi sumber data Grafana
Google Cloud Semua API memerlukan autentikasi menggunakan OAuth2; namun, Grafana tidak mendukung autentikasi OAuth2 untuk akun layanan yang digunakan dengan sumber data Prometheus. Untuk menggunakan Grafana dengan Managed Service for Prometheus, Anda menggunakan penyinkron sumber data untuk membuat kredensial OAuth2 bagi akun layanan Anda dan menyinkronkannya ke Grafana melalui Grafana Data Source API.
Anda harus menggunakan penyinkron sumber data untuk mengonfigurasi dan memberi otorisasi Grafana agar dapat membuat kueri data secara global. Jika Anda tidak mengikuti langkah-langkah ini, Grafana hanya mengeksekusi kueri terhadap data di server Prometheus lokal.
Penyinkron sumber data adalah alat antarmuka command line yang mengirimkan nilai konfigurasi dari jarak jauh ke sumber data Grafana Prometheus tertentu. Hal ini memastikan bahwa sumber data Grafana Anda telah dikonfigurasi dengan benar sebagai berikut:
- Autentikasi, dilakukan dengan menyegarkan token akses OAuth2 secara berkala
- Kumpulan Cloud Monitoring API ditetapkan sebagai URL server Prometheus
- Metode HTTP ditetapkan ke GET
- Jenis dan versi Prometheus ditetapkan minimal ke 2.40.x
- Nilai waktu tunggu HTTP dan Kueri ditetapkan ke 2 menit
Penyinkron sumber data harus dijalankan berulang kali. Karena token akses akun layanan memiliki masa aktif default selama satu jam, menjalankan sinkronisasi sumber data setiap 10 menit akan memastikan Anda memiliki koneksi yang diautentikasi tanpa gangguan antara Grafana dan Cloud Monitoring API.
Anda dapat memilih untuk menjalankan sinkronisasi sumber data menggunakan CronJob Kubernetes atau menggunakan Cloud Run dan Cloud Scheduler untuk pengalaman yang sepenuhnya serverless. Jika Anda men-deploy Grafana secara lokal seperti dengan Grafana open source atau Grafana Enterprise, sebaiknya jalankan penyinkronisasi sumber data di cluster yang sama tempat Grafana berjalan. Jika Anda menggunakan Grafana Cloud, sebaiknya pilih opsi yang sepenuhnya serverless.
Menggunakan Serverless
Untuk men-deploy dan menjalankan sinkronisasi sumber data serverless menggunakan Cloud Run dan Cloud Scheduler, lakukan hal berikut:
Pilih project untuk men-deploy sinkronisasi sumber data. Sebaiknya pilih project cakupan dari cakupan metrik multi-project. Penyinkron sumber data menggunakan project Google Cloud yang dikonfigurasi sebagai project cakupan.
Selanjutnya, konfigurasi dan beri otorisasi akun layanan untuk penyinkron sumber data. Urutan perintah berikut membuat akun layanan dan memberikan beberapa peran IAM kepadanya. Dua peran pertama memungkinkan akun layanan membaca dari Cloud Monitoring API dan membuat token akun layanan. Dua peran terakhir memungkinkan akun layanan membaca token akun layanan Grafana dari Secret Manager dan memanggil Cloud Run:
gcloud config set project PROJECT_ID \ && gcloud iam service-accounts create gmp-ds-syncer-sa \ && gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-ds-syncer-sa@PROJECT_ID. \ --role=roles/monitoring.viewer \ && \ gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-ds-syncer-sa@PROJECT_ID. \ --role=roles/iam.serviceAccountTokenCreator \ && \ gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-ds-syncer-sa@PROJECT_ID. \ --role=roles/secretmanager.secretAccessor && \ gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-ds-syncer-sa@PROJECT_ID. \ --role=roles/run.invoker
Tentukan URL instance Grafana Anda, misalnya
https://yourcompanyname.grafana.net
untuk deployment Grafana Cloud. Instance Grafana Anda harus dapat diakses dari Cloud Run, yang berarti instance tersebut harus dapat diakses dari internet yang lebih luas.Jika instance Grafana Anda tidak dapat diakses dari internet yang lebih luas, sebaiknya deploy sinkronisasi sumber data di Kubernetes.
Pilih sumber data Grafana Prometheus yang akan digunakan untuk Managed Service for Prometheus, yang dapat berupa sumber data Prometheus baru atau yang sudah ada, lalu temukan dan catat UID sumber data. UID sumber data dapat ditemukan di bagian terakhir URL saat menjelajahi atau mengonfigurasi sumber data, misalnya
https://yourcompanyname.grafana.net/connections/datasources/edit/GRAFANA_DATASOURCE_UID
. Jangan menyalin seluruh URL sumber data. Salin hanya ID unik di URL.Siapkan akun layanan Grafana dengan membuat akun layanan dan membuat token untuk digunakan akun tersebut:
Di sidebar navigasi Grafana, klik Administration > Users and Access > Service Accounts.
Buat akun layanan di Grafana dengan mengklik Add service account, beri nama, dan berikan peran "Data Sources > Writer". Pastikan Anda mengklik tombol Terapkan untuk menetapkan peran. Di Grafana versi lama, Anda dapat menggunakan peran "Admin" sebagai gantinya.
Klik Tambahkan token akun layanan.
Tetapkan masa berlaku token ke "Tidak ada masa berlaku", lalu klik Buat token, lalu salin token yang dibuat ke papan klip untuk digunakan sebagai GRAFANA_SERVICE_ACCOUNT_TOKEN di langkah berikutnya:
Tetapkan variabel dokumentasi berikut menggunakan hasil langkah sebelumnya. Anda tidak perlu menempelkan ini ke terminal:
# These values are required. REGION # The Google Cloud region where you want to run your Cloud Run job, such as us-central1. PROJECT_ID # The Project ID from Step 1. GRAFANA_INSTANCE_URL # The Grafana instance URL from step 2. This is a URL. Include "http://" or "https://". GRAFANA_DATASOURCE_UID # The Grafana data source UID from step 3. This is not a URL. GRAFANA_SERVICE_ACCOUNT_TOKEN # The Grafana service account token from step 4.
Buat secret di Secret Manager:
gcloud secrets create datasource-syncer --replication-policy="automatic" && \ echo -n GRAFANA_SERVICE_ACCOUNT_TOKEN | gcloud secrets versions add datasource-syncer --data-file=-
Buat file YAML berikut dan beri nama
cloud-run-datasource-syncer.yaml
:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: datasource-syncer-job spec: template: spec: taskCount: 1 template: spec: containers: - name: datasource-syncer image: gke.gcr.io/prometheus-engine/datasource-syncer:v0.15.3-gke.0 args: - "--datasource-uids=GRAFANA_DATASOURCE_UID" - "--grafana-api-endpoint=GRAFANA_INSTANCE_URL" - "--project-id=PROJECT_ID" env: - name: GRAFANA_SERVICE_ACCOUNT_TOKEN valueFrom: secretKeyRef: key: latest name: datasource-syncer serviceAccountName: gmp-ds-syncer-sa@PROJECT_ID.
Kemudian, jalankan perintah berikut untuk membuat tugas Cloud Run menggunakan file YAML:
gcloud run jobs replace cloud-run-datasource-syncer.yaml --region REGION
Buat jadwal di Cloud Scheduler untuk menjalankan tugas Cloud Run setiap 10 menit:
gcloud scheduler jobs create http datasource-syncer \ --location REGION \ --schedule="*/10 * * * *" \ --uri="https://REGION-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/PROJECT_ID/jobs/datasource-syncer-job:run" \ --http-method POST \ --oauth-service-account-email=gmp-ds-syncer-sa@PROJECT_ID.
Kemudian, jalankan scheduler yang baru saja Anda buat secara paksa:
gcloud scheduler jobs run datasource-syncer --location REGION
Diperlukan waktu hingga 15 detik agar sumber data diperbarui.
Buka sumber data Grafana yang baru dikonfigurasi dan verifikasi bahwa nilai URL server Prometheus dimulai dengan
https://monitoring.googleapis.com
. Anda mungkin harus memuat ulang halaman. Setelah diverifikasi, buka bagian bawah halaman, pilih Simpan & uji, dan pastikan Anda melihat tanda centang hijau yang menyatakan bahwa sumber data telah dikonfigurasi dengan benar. Anda harus memilih Simpan & uji setidaknya sekali untuk memastikan pelengkapan otomatis label di Grafana berfungsi.
Menggunakan Kubernetes
Untuk men-deploy dan menjalankan penyinkron sumber data di cluster Kubernetes, lakukan hal berikut:
Pilih project, cluster, dan namespace untuk men-deploy sinkronisasi sumber data. Sebaiknya deploy sinkronisasi sumber data di cluster yang termasuk dalam project cakupan dari cakupan metrik multi-project. Penyinkron sumber data menggunakan project Google Cloud yang dikonfigurasi sebagai project cakupan.
Selanjutnya, pastikan Anda mengonfigurasi dan mengizinkan penyinkron sumber data dengan benar:
- Jika Anda menggunakan Workload Identity Federation untuk GKE, ikuti petunjuk untuk membuat dan memberi otorisasi akun layanan. Pastikan untuk mengikatnya ke namespace Kubernetes tempat Anda ingin menjalankan sinkronisasi sumber data.
- Jika Anda tidak menggunakan Workload Identity Federation untuk GKE, pastikan Anda tidak mengubah akun layanan Compute Engine default.
- Jika Anda tidak menjalankan di GKE, lihat Menjalankan penyinkron data sumber di luar GKE.
Kemudian, tentukan apakah Anda harus memberikan otorisasi lebih lanjut pada penyinkron sumber data untuk kueri multi-project:
- Jika project lokal Anda adalah project cakupan, dan Anda telah mengikuti petunjuk untuk memverifikasi atau mengonfigurasi akun layanan untuk project lokal, maka kueri multi-project akan berfungsi tanpa konfigurasi lebih lanjut.
- Jika project lokal Anda bukan project cakupan, Anda harus mengizinkan penyinkron sumber data untuk menjalankan kueri terhadap project cakupan. Untuk mengetahui petunjuknya, lihat mengizinkan penyinkron sumber data untuk mendapatkan pemantauan multi-project.
Tentukan URL instance Grafana Anda, misalnya
https://yourcompanyname.grafana.net
untuk deployment Grafana Cloud atauhttp://grafana.NAMESPACE_NAME.svc:3000
untuk instance lokal yang dikonfigurasi menggunakan YAML deployment pengujian.Jika Anda men-deploy Grafana secara lokal dan cluster Anda dikonfigurasi untuk mengamankan semua traffic dalam cluster menggunakan TLS, Anda harus menggunakan
https://
di URL dan melakukan autentikasi menggunakan salah satu opsi autentikasi TLS yang didukung.Pilih sumber data Grafana Prometheus yang ingin Anda gunakan untuk Managed Service for Prometheus, yang dapat berupa sumber data baru atau yang sudah ada, lalu temukan dan catat UID sumber data. UID sumber data dapat ditemukan di bagian terakhir URL saat menjelajahi atau mengonfigurasi sumber data, misalnya
https://yourcompanyname.grafana.net/connections/datasources/edit/GRAFANA_DATASOURCE_UID.
Jangan salin seluruh URL sumber data. Salin hanya ID unik di URL.Siapkan akun layanan Grafana dengan membuat akun layanan dan membuat token untuk digunakan akun tersebut:
- Di sidebar navigasi Grafana, klik Administration > Users and Access > Service Accounts.
Buat akun layanan dengan mengklik Tambahkan akun layanan, beri nama, dan berikan peran "Admin" di Grafana. Jika versi Grafana Anda mengizinkan izin yang lebih terperinci, Anda dapat menggunakan peran Sumber Data > Penulis.
Klik Tambahkan token akun layanan.
Tetapkan masa berlaku token ke "Tidak ada masa berlaku", lalu klik Buat token, lalu salin token yang dibuat ke papan klip untuk digunakan sebagai GRAFANA_SERVICE_ACCOUNT_TOKEN di langkah berikutnya.
Siapkan variabel lingkungan berikut menggunakan hasil langkah-langkah sebelumnya:
# These values are required. PROJECT_ID=SCOPING_PROJECT_ID # The value from Step 1. GRAFANA_API_ENDPOINT=GRAFANA_INSTANCE_URL # The value from step 2. This is a URL. DATASOURCE_UIDS=GRAFANA_DATASOURCE_UID # The value from step 3. This is not a URL. GRAFANA_API_TOKEN=GRAFANA_SERVICE_ACCOUNT_TOKEN # The value from step 4.
Jalankan perintah berikut untuk membuat CronJob yang memuat ulang sumber data saat inisialisasi, lalu setiap 10 menit. Jika Anda menggunakan Workload Identity Federation untuk GKE, nilai NAMESPACE_NAME harus sama dengan namespace yang sebelumnya Anda ikat ke akun layanan.
curl https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.15.3/cmd/datasource-syncer/datasource-syncer.yaml \ | sed 's|$DATASOURCE_UIDS|'"$DATASOURCE_UIDS"'|; s|$GRAFANA_API_ENDPOINT|'"$GRAFANA_API_ENDPOINT"'|; s|$GRAFANA_API_TOKEN|'"$GRAFANA_API_TOKEN"'|; s|$PROJECT_ID|'"$PROJECT_ID"'|;' \ | kubectl -n NAMESPACE_NAME apply -f -
Buka sumber data Grafana yang baru dikonfigurasi dan verifikasi bahwa nilai URL server Prometheus dimulai dengan
https://monitoring.googleapis.com
. Anda mungkin harus memuat ulang halaman. Setelah diverifikasi, buka bagian bawah halaman dan pilih Simpan & uji. Anda harus memilih tombol ini setidaknya sekali untuk memastikan pelengkapan otomatis label di Grafana berfungsi.
Menjalankan kueri menggunakan Grafana
Sekarang Anda dapat membuat dasbor Grafana dan menjalankan kueri menggunakan sumber data yang dikonfigurasi. Screenshot berikut menampilkan diagram Grafana yang menampilkan metrik up
:
Untuk mengetahui informasi tentang membuat kueri Google Cloud metrik sistem menggunakan PromQL, lihat PromQL untuk metrik Cloud Monitoring.
Menjalankan penyinkron sumber data di luar GKE
Jika Anda menjalankan penyinkron sumber data di cluster Google Kubernetes Engine atau jika Anda menggunakan opsi serverless, Anda dapat melewati bagian ini. Jika Anda mengalami masalah autentikasi di GKE, lihat Memverifikasi kredensial akun layanan.
Saat berjalan di GKE, penyinkron data sumber data akan otomatis mengambil kredensial dari lingkungan berdasarkan akun layanan node atau penyiapan Workload Identity Federation untuk GKE.
Di cluster Kubernetes non-GKE, kredensial harus diberikan secara eksplisit ke penyinkron sumber data menggunakan 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 membuat akun layanan yang mungkin telah Anda buat di petunjuk Workload Identity Federation untuk GKE.
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.viewer \ && \ gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-test-sa@PROJECT_ID. \ --role=roles/iam.serviceAccountTokenCreator
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.
Tetapkan jalur file kunci menggunakan variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS
.
Mengizinkan penyinkron sumber data untuk mendapatkan pemantauan multi-project
Managed Service for Prometheus mendukung pemantauan multi-project menggunakan cakupan metrik.
Bagi pengguna yang menggunakan opsi serverless, Anda akan mendapatkan kueri multi-project jika project yang Anda pilih adalah project pencakupan cakupan metrik multi-project.
Bagi yang men-deploy sinkronisasi sumber data di Kubernetes, jika project lokal Anda adalah project cakupan, dan Anda telah mengikuti petunjuk untuk memverifikasi atau mengonfigurasi akun layanan untuk project lokal, maka kueri multi-project akan berfungsi tanpa konfigurasi lebih lanjut.
Jika project lokal Anda bukan project cakupan, Anda harus memberi otorisasi
akun layanan default Compute Engine project lokal atau
akun layanan Workload Identity Federation untuk GKE Anda agar memiliki
akses monitoring.viewer
ke project cakupan. Kemudian, teruskan ID project
pencakupan sebagai nilai variabel lingkungan PROJECT_ID.
Jika Anda menggunakan akun layanan default
Compute Engine, Anda dapat melakukan salah satu hal berikut:
Deploy sinkronisasi sumber data di cluster yang termasuk dalam project cakupan Anda.
Aktifkan Workload Identity Federation untuk GKE bagi cluster Anda dan ikuti langkah-langkah konfigurasi.
Berikan kunci akun layanan eksplisit.
Untuk memberikan izin yang diperlukan akun layanan untuk mengakses project Google Cloud lain, lakukan hal berikut:
Beri izin akun layanan untuk membaca dari project target yang ingin Anda kueri:
gcloud projects add-iam-policy-binding SCOPING_PROJECT_ID \ --member=serviceAccount:gmp-test-sa@PROJECT_ID. \ --role=roles/monitoring.viewer
Saat mengonfigurasi penyinkron sumber data, teruskan ID project cakupan sebagai nilai variabel lingkungan
PROJECT_ID
.
Periksa CronJob Kubernetes
Jika men-deploy sinkronisasi sumber data di Kubernetes, Anda dapat memeriksa CronJob dan memastikan semua variabel disetel dengan benar dengan menjalankan perintah berikut:
kubectl describe cronjob datasource-syncer
Untuk melihat log Tugas yang awalnya mengonfigurasi Grafana, jalankan perintah berikut segera setelah menerapkan file datasource-syncer.yaml
:
kubectl logs job.batch/datasource-syncer-init
Pembongkaran
Untuk menonaktifkan Cronjob sinkronisasi sumber data di Kubernetes, jalankan perintah berikut:
kubectl delete -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.15.3/cmd/datasource-syncer/datasource-syncer.yaml
Menonaktifkan penyinkron sumber data akan menghentikan pembaruan Grafana tertaut dengan kredensial otentikasi baru, dan akibatnya, kueri Managed Service for Prometheus tidak akan berfungsi lagi.
Kompatibilitas API
Endpoint Prometheus HTTP API berikut didukung oleh Managed Service for Prometheus di URL yang diawali dengan https://monitoring.googleapis.com/v1/projects/PROJECT_ID/location/global/prometheus/api/v1/
.
Untuk dokumentasi lengkap, lihat dokumentasi referensi Cloud Monitoring API. Endpoint HTTP Prometheus tidak tersedia di library klien khusus bahasa Cloud Monitoring.
Untuk mengetahui informasi tentang kompatibilitas PromQL, lihat Dukungan PromQL.
Endpoint berikut didukung sepenuhnya:
/api/v1/query
/api/v1/query_range
/api/v1/metadata
/api/v1/labels
/api/v1/query_exemplars
Endpoint
/api/v1/label/<label_name>/values
hanya berfungsi jika label__name__
diberikan dengan menggunakannya sebagai nilai<label_name>
atau dengan mencocokkannya secara persis menggunakan pemilih deret. Misalnya, panggilan berikut didukung sepenuhnya:/api/v1/label/__name__/values
/api/v1/label/__name__/values?match[]={__name__=~".*metricname.*"}
/api/v1/label/labelname/values?match[]={__name__="metricname"}
Batasan ini menyebabkan kueri variabel
label_values($label)
di Grafana gagal. Sebagai gantinya, Anda dapat menggunakanlabel_values($metric, $label)
. Jenis kueri ini direkomendasikan karena tidak mengambil nilai untuk label pada metrik yang tidak relevan dengan dasbor tertentu.Endpoint
/api/v1/series
didukung untuk permintaanGET
, tetapi tidak untuk permintaanPOST
. Jika Anda menggunakan penyinkron sumber data atau proxy frontend, batasan ini akan dikelola untuk Anda. Anda juga dapat mengonfigurasi sumber data Prometheus di Grafana untuk hanya mengeluarkan permintaanGET
. Parametermatch[]
tidak mendukung pencocokan ekspresi reguler pada label__name__
.
Langkah berikutnya
- Gunakan pemberitahuan PromQL di Cloud Monitoring.
- Siapkan evaluasi aturan terkelola.
- Siapkan pengekspor yang umum digunakan.