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 buat kuerinya, 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 mengkueri Monarch, bukan mengkueri data dari server Prometheus lokal, Anda mendapatkan pemantauan global dalam skala besar.
Sebelum memulai
Jika Anda belum men-deploy layanan terkelola, siapkan pengumpulan terkelola atau pengumpulan 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:
Konfigurasikan alat command line sebagai berikut:
Konfigurasikan gcloud CLI untuk merujuk ke ID project Google Cloud Anda:
gcloud config set project PROJECT_ID
Konfigurasikan
kubectl
CLI untuk menggunakan cluster Anda:kubectl config set-cluster CLUSTER_NAME
Untuk informasi selengkapnya tentang alat ini, lihat referensi berikut:
Menyiapkan namespace
Buat namespace Kubernetes NAMESPACE_NAME
untuk resource yang Anda buat
sebagai bagian dari aplikasi contoh:
kubectl create ns NAMESPACE_NAME
Memverifikasi kredensial akun layanan
Anda dapat melewati bagian ini jika cluster Kubernetes Anda telah mengaktifkan Workload Identity Federation for GKE.
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.
Jika Anda tidak menjalankannya di GKE, lihat Memberikan kredensial secara eksplisit.
Mengonfigurasi akun layanan untuk Workload Identity Federation for GKE
Anda dapat melewati bagian ini jika cluster Kubernetes Anda tidak mengaktifkan Workload Identity Federation untuk GKE.
Managed Service for Prometheus mengambil data metrik menggunakan Cloud Monitoring API. Jika cluster Anda menggunakan Workload Identity Federation untuk GKE, Anda harus memberikan izin 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 di 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 Anda telah melakukan langkah ini sebagai bagian dari tugas sebelumnya, Anda tidak perlu mengulanginya. Langsung ke Memberikan otorisasi ke 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 ke 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 telah memberikan peran tertentu kepada akun layanan Google Cloud 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 membuat Workload Identity Federation for GKE berfungsi, 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 error paling umum saat mengonfigurasi Workload Identity Federation untuk GKE, sebaiknya gunakan 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 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 informasi selengkapnya tentang cara mengonfigurasi akun layanan untuk pengelolaan identitas beban kerja, lihat Menggunakan Workload Identity Federation untuk GKE.
Cakupan kueri dan metrik
Data yang dapat Anda buat kuerinya ditentukan oleh cakupan metrik konstruk Cloud Monitoring, 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 cakupan dapat memiliki lebih dari satu project yang dipantau dalam cakupan metriknya, dan metrik serta konfigurasi dari semua project yang dipantau dalam cakupan metrik dapat dilihat oleh project cakupan. Project yang dipantau juga dapat termasuk dalam lebih dari satu cakupan metrik.
Saat membuat kueri metrik dalam project cakupan, dan jika project cakupan tersebut menghosting cakupan metrik multi-project, Anda dapat mengambil data dari beberapa project. Jika cakupan metrik Anda berisi semua project, kueri dan aturan akan dievaluasi secara global.
Untuk informasi selengkapnya tentang cakupan project dan cakupan metrik, lihat Cakupan metrik. Untuk informasi tentang cara mengonfigurasi cakupan metrik multi-project, lihat Melihat metrik untuk beberapa project.
Data Managed Service for Prometheus di Cloud Monitoring
Cara termudah untuk memverifikasi bahwa data Prometheus Anda diekspor adalah dengan menggunakan halaman Cloud Monitoring Metrics Explorer 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. Hal ini memungkinkan Anda terus menggunakan dasbor Grafana pribadi atau buatan komunitas tanpa harus mengonfigurasi atau men-deploy instance Grafana.
Grafana
Layanan Terkelola untuk 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.
Men-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, 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.13.0/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 berjalan, perintah ini melaporkan akses ke URL.
Anda dapat mengakses Grafana di browser pada URL
http://localhost:3000
dengan nama pengguna:sandiadmin:admin
.
Kemudian, tambahkan sumber data Prometheus baru ke Grafana dengan melakukan tindakan berikut:
Buka deployment Grafana Anda, misalnya, dengan membuka URL
http://localhost:3000
untuk membuka halaman sambutan Grafana.Pilih Connections dari menu utama Grafana, lalu pilih Data Sources.
Pilih Add data source, 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 apa pun 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
Semua Google Cloud 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 untuk akun layanan dan menyinkronkannya ke Grafana melalui API sumber data Grafana.
Anda harus menggunakan sinkroniser sumber data untuk mengonfigurasi dan memberi otorisasi kepada Grafana untuk mengkueri data secara global. Jika Anda tidak mengikuti langkah-langkah ini, Grafana hanya akan mengeksekusi kueri terhadap data di server Prometheus lokal.
Pengsinkron sumber data adalah alat antarmuka command line yang menggunakan tugas cron untuk menyinkronkan nilai konfigurasi dari jarak jauh ke sumber data Prometheus Grafana tertentu. Tindakan ini memastikan bahwa sumber data Grafana Anda telah dikonfigurasi dengan benar:
- Autentikasi, dilakukan dengan memuat ulang token akses OAuth2 secara berkala
- Cloud Monitoring API ditetapkan sebagai URL server Prometheus
- Metode HTTP ditetapkan ke GET
- Jenis dan versi Prometheus ditetapkan ke minimum 2.40.x
- Nilai waktu tunggu HTTP dan Kueri ditetapkan ke 2 menit
Pengsinkron sumber data menggunakan akun layanan Google Cloud untuk secara berkala membuat token akses Google Cloud API dengan izin IAM yang diperlukan untuk mengkueri data Cloud Monitoring. Karena token akses Google Cloud API memiliki masa aktif satu jam, sinkronisasi sumber data berjalan setiap 30 menit untuk memastikan Anda memiliki koneksi autentikasi yang tidak terganggu antara Grafana dan Cloud Monitoring API.
Anda dapat memilih untuk menjalankan sinkroniser sumber data menggunakan CronJob Kubernetes atau menggunakan Cloud Run dan Cloud Scheduler untuk pengalaman sepenuhnya serverless. Jika Anda men-deploy Grafana secara lokal seperti dengan Grafana open source atau Grafana Enterprise, sebaiknya jalankan sinkroniser sumber data di cluster yang sama dengan tempat Grafana berjalan. Jika Anda menggunakan Grafana Cloud, sebaiknya pilih opsi tanpa server sepenuhnya.
Menggunakan Serverless
Untuk men-deploy dan menjalankan sinkroniser sumber data serverless menggunakan Cloud Run dan Cloud Scheduler, lakukan hal berikut:
Pilih project tempat Anda akan men-deploy sinkronisasi sumber data. Sebaiknya pilih project cakupan cakupan metrik multi-project. Pengsinkron sumber data menggunakan project Google Cloud yang dikonfigurasi sebagai project cakupan.
Selanjutnya, konfigurasikan dan beri otorisasi akun layanan untuk sinkroniser sumber data. Urutan perintah berikut membuat akun layanan dan memberikan beberapa peran IAM. 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 Prometheus Grafana yang akan digunakan untuk Managed Service for Prometheus, yang dapat berupa sumber data Prometheus baru atau yang sudah ada, lalu temukan dan tuliskan UID sumber data. UID sumber data dapat ditemukan di bagian akhir URL saat menjelajahi atau mengonfigurasi sumber data, misalnya
https://yourcompanyname.grafana.net/connections/datasources/edit/GRAFANA_DATASOURCE_UID
. Jangan menyalin seluruh URL sumber data. Hanya salin ID unik di URL.Siapkan akun layanan Grafana dengan membuat akun layanan dan membuat token untuk digunakan akun:
Di sidebar navigasi Grafana, klik Administration > Users and Access > Service Accounts.
Buat akun layanan di Grafana dengan mengklik Tambahkan akun layanan, beri nama, dan berikan peran "Sumber Data > Penulis". Pastikan Anda menekan tombol Apply untuk menetapkan peran. Di Grafana versi lama, Anda dapat menggunakan peran "Admin".
Klik Tambahkan token akun layanan.
Tetapkan masa berlaku token ke "Tidak ada masa berlaku" dan klik Buat token, lalu salin token yang dihasilkan ke papan klip untuk digunakan sebagai GRAFANA_SERVICE_ACCOUNT_TOKEN di langkah berikutnya:
Tetapkan variabel dokumentasi berikut menggunakan hasil dari langkah sebelumnya. Anda tidak perlu menempelkan kode 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.14.0-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, paksa jalankan penjadwal yang baru saja Anda buat:
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 pastikan 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 dikonfigurasi dengan benar. Anda harus memilih Simpan & uji setidaknya satu kali untuk memastikan pelengkapan otomatis label di Grafana berfungsi.
Menggunakan Kubernetes
Untuk men-deploy dan menjalankan sinkroniser sumber data di cluster Kubernetes, lakukan hal berikut:
Pilih project, cluster, dan namespace tempat Anda akan men-deploy sinkronisasi sumber data. Sebaiknya deploy sinkronisasi sumber data di cluster yang termasuk dalam project cakupan cakupan metrik multi-project. Pengsinkron sumber data menggunakan project Google Cloud yang dikonfigurasi sebagai project cakupan.
Selanjutnya, pastikan Anda mengonfigurasi dan memberikan otorisasi sinkronisasi sumber data dengan benar:
- Jika Anda menggunakan Workload Identity Federation untuk GKE, ikuti petunjuk untuk membuat dan memberikan otorisasi ke 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 belum mengubah akun layanan Compute Engine default.
- Jika Anda tidak menjalankannya di GKE, lihat Menjalankan sinkronisasi sumber data di luar GKE.
Kemudian, tentukan apakah Anda harus memberikan otorisasi lebih lanjut ke sinkronisasi 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, kueri multi-project akan berfungsi tanpa konfigurasi lebih lanjut.
- Jika project lokal Anda bukan project cakupan, Anda harus memberi otorisasi sinkronisasi sumber data untuk menjalankan kueri terhadap project cakupan. Untuk mengetahui petunjuknya, lihat memberi otorisasi sinkronisasi 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 Prometheus Grafana yang akan digunakan untuk Managed Service for Prometheus, yang dapat berupa sumber data Prometheus baru atau yang sudah ada, lalu temukan dan tuliskan UID sumber data. UID sumber data dapat ditemukan di bagian akhir URL saat menjelajahi atau mengonfigurasi sumber data, misalnya
https://yourcompanyname.grafana.net/connections/datasources/edit/GRAFANA_DATASOURCE_UID
. Jangan menyalin seluruh URL sumber data. Hanya salin ID unik di URL.Siapkan akun layanan Grafana dengan membuat akun layanan dan membuat token untuk digunakan akun:
Di sidebar navigasi Grafana, klik Administration > Users and Access > Service Accounts.
Buat akun layanan di Grafana dengan mengklik Tambahkan akun layanan, beri nama, dan berikan peran "Sumber Data > Penulis". Di Grafana versi lama, Anda dapat menggunakan peran "Admin".
Klik Tambahkan token akun layanan.
Tetapkan masa berlaku token ke "Tidak ada masa berlaku" dan klik Buat token, lalu salin token yang dihasilkan ke papan klip untuk digunakan sebagai GRAFANA_SERVICE_ACCOUNT_TOKEN di langkah berikutnya:
Siapkan variabel lingkungan berikut menggunakan hasil dari langkah sebelumnya:
# These values are required. PROJECT_ID=PROJECT_ID # The Project ID from Step 1. GRAFANA_API_ENDPOINT=GRAFANA_INSTANCE_URL # The Grafana instance URL from step 2. This is a URL. Include "http://" or "https://". DATASOURCE_UIDS=GRAFANA_DATASOURCE_UID # The Grafana data source UID from step 3. This is not a URL. GRAFANA_API_TOKEN=GRAFANA_SERVICE_ACCOUNT_TOKEN # The Grafana service account token from step 4.
Jalankan perintah berikut untuk membuat CronJob yang memuat ulang sumber data saat inisialisasi, lalu setiap 30 menit. Jika Anda menggunakan Workload Identity Federation untuk GKE, nilai NAMESPACE_NAME harus berupa namespace yang sama dengan yang sebelumnya Anda tautkan ke akun layanan.
curl https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/0ca68f91fedb8ab9fc5bc6871c3b100dd602e32b/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 pastikan 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 informasi tentang membuat kueri metrik sistem Google Cloud menggunakan PromQL, lihat PromQL untuk metrik Cloud Monitoring.
Menjalankan sinkronisasi sumber data di luar GKE
Anda dapat melewati bagian ini jika menjalankan sinkroniser sumber data di cluster Google Kubernetes Engine atau jika menggunakan opsi serverless. Jika Anda mengalami masalah autentikasi di GKE, lihat Memverifikasi kredensial akun layanan.
Saat berjalan di GKE, sinkroniser 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 sinkroniser 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 akan membuat akun layanan yang mungkin sudah 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
.
Memberi otorisasi sinkronisasi sumber data untuk mendapatkan pemantauan multi-project
Managed Service for Prometheus mendukung pemantauan multi-project menggunakan cakupan metrik.
Untuk pengguna yang menggunakan opsi serverless, Anda akan mendapatkan kueri multi-project jika project yang dipilih adalah project cakupan dari cakupan metrik multi-project.
Untuk pengguna 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, kueri multi-project akan berfungsi tanpa konfigurasi lebih lanjut.
Jika project lokal bukan project cakupan, Anda harus memberikan otorisasi
ke akun layanan komputasi default project lokal atau
Workload Identity Federation untuk akun layanan GKE agar memiliki
akses monitoring.viewer
ke project cakupan. Kemudian, teruskan ID project cakupan sebagai nilai variabel lingkungan PROJECT_ID.
Jika 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 untuk cluster Anda dan ikuti langkah-langkah konfigurasi.
Berikan kunci akun layanan eksplisit.
Untuk memberikan izin yang diperlukan kepada akun layanan agar dapat mengakses project Google Cloud yang berbeda, lakukan hal berikut:
Beri izin akun layanan untuk membaca dari project target yang ingin Anda jadikan kueri:
gcloud projects add-iam-policy-binding SCOPING_PROJECT_ID \ --member=serviceAccount:gmp-test-sa@PROJECT_ID. \ --role=roles/monitoring.viewer
Saat mengonfigurasi sinkronisasi sumber data, teruskan ID project cakupan sebagai nilai variabel lingkungan
PROJECT_ID
.
Memeriksa CronJob Kubernetes
Jika men-deploy sinkronisasi sumber data di Kubernetes, Anda dapat memeriksa CronJob dan memastikan bahwa semua variabel ditetapkan 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
Teardown
Untuk menonaktifkan Cronjob sinkronisasi sumber data di Kubernetes, jalankan perintah berikut:
kubectl delete -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/main/cmd/datasource-syncer/datasource-syncer.yaml
Menonaktifkan sinkronisasi sumber data akan menghentikan pembaruan Grafana tertaut dengan kredensial autentikasi baru, dan sebagai akibatnya, kueri Managed Service for Prometheus tidak lagi berfungsi.
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 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__
disediakan dengan menggunakannya sebagai nilai<label_name>
atau dengan mencocokkan secara tepat menggunakan pemilih seri. 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 menghindari pengambilan nilai untuk label pada metrik yang tidak relevan dengan dasbor tertentu.Endpoint
/api/v1/series
didukung untuk permintaanGET
, tetapi tidak untuk permintaanPOST
. Saat 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 selanjutnya
- Gunakan pemberitahuan PromQL di Cloud Monitoring.
- Menyiapkan evaluasi aturan terkelola.
- Siapkan eksportir yang umum digunakan.