Anda dapat menggunakan Prometheus Query Language (PromQL) untuk membuat kueri semua metrik di Cloud Monitoring, termasuk metrik sistem Google Cloud, metrik Kubernetes, metrik kustom, dan metrik berbasis log.
Memetakan nama metrik Cloud Monitoring ke PromQL
Nama metrik Cloud Monitoring mencakup dua komponen, yaitu domain (seperti compute.googleapis.com/
) dan jalur (seperti instance/disk/max_read_ops_count
). Karena PromQL hanya mendukung karakter khusus :
dan _
, Anda harus terlebih dahulu membuat nama metrik Monitoring yang kompatibel dengan PromQL. Untuk memetakan nama metrik Monitoring ke PromQL, terapkan aturan berikut:
- Ganti
/
pertama dengan:
. - Ganti semua karakter khusus lainnya (termasuk
.
dan karakter/
lainnya) dengan_
.
Tabel berikut mencantumkan beberapa nama metrik dan PromQL yang setara:
Nama metrik Cloud Monitoring | Nama metrik PromQL |
---|---|
kubernetes.io/container/cpu/limit_cores |
kubernetes_io:container_cpu_limit_cores |
compute.googleapis.com/instance/cpu/utilization |
compute_googleapis_com:instance_cpu_utilization |
logging.googleapis.com/log_entry_count |
logging_googleapis_com:log_entry_count |
custom.googleapis.com/opencensus/opencensus.io/ |
custom_googleapis_com:opencensus_opencensus_io_ |
agent.googleapis.com/disk/io_time |
agent_googleapis_com:disk_io_time |
Metrik bernilai distribusi Cloud Monitoring dapat dikueri seperti histogram Prometheus, dengan akhiran _count
, _sum
, atau _bucket
yang ditambahkan ke nama metrik:
Nama metrik Cloud Monitoring | Nama metrik PromQL |
---|---|
networking.googleapis.com/vm_flow/rtt |
networking_googleapis_com:vm_flow_rtt_sum networking_googleapis_com:vm_flow_rtt_count networking_googleapis_com:vm_flow_rtt_bucket
|
Menentukan jenis resource yang dipantau
Jika metrik hanya dikaitkan dengan satu jenis resource yang dipantau Cloud Monitoring, kueri PromQL akan berfungsi tanpa menentukan jenis resource secara manual. Namun, beberapa metrik dalam Cloud Monitoring, termasuk beberapa metrik sistem dan banyak di antaranya yang dihasilkan oleh metrik berbasis log, dipetakan ke lebih dari satu jenis resource.
Anda dapat melihat jenis resource yang dimonitor yang dipetakan ke metrik dengan melakukan salah satu tindakan berikut:
- Untuk metrik yang diseleksi Google, Anda dapat melihat daftar metrik yang tersedia, termasuk metrik Google Cloud dan metrik Kubernetes. Setiap entri dalam dokumentasi mencantumkan jenis resource terkait yang dipantau di kolom pertama pada setiap entri di bawah jenis. Jika tidak ada jenis resource yang dipantau yang tercantum, metrik dapat dikaitkan dengan jenis apa pun.
Di Metrics Explorer, Anda dapat melakukan hal berikut:
- Masukkan nama metrik di kolom Pilih metrik, lalu buka menu untuk memilih metrik. Menu resource mencantumkan jenis resource yang valid untuk metrik tersebut, misalnya, "VM Instance".
- Di toolbar panel pembuat kueri, pilih tombol dengan nama code MQL atau code PromQL.
Pastikan MQL dipilih di tombol Language. Tombol bahasa berada di toolbar yang sama yang memungkinkan Anda memformat kueri.
Kueri yang ditampilkan menunjukkan jenis resource. Secara khusus, MQL berguna untuk metrik yang dapat dikaitkan dengan banyak jenis resource yang dimonitor, misalnya metrik berbasis log, metrik kustom, atau metrik apa pun yang ditentukan pengguna.
Jika metrik dikaitkan dengan lebih dari satu jenis resource, Anda harus menentukan jenis resource dalam kueri PromQL. Ada label khusus,
monitored_resource
, yang dapat Anda gunakan untuk memilih jenis resource.
Jenis resource yang dimonitor pada umumnya adalah string pendek,
seperti gce_instance
, tetapi terkadang muncul sebagai URI lengkap, seperti
monitoring.googleapis.com/MetricIngestionAttribution
. Kueri PromQL yang tersusun dengan baik mungkin terlihat seperti berikut:
logging_googleapis_com:byte_count{monitored_resource="k8s_container"}
custom_googleapis_com:opencensus_opencensus_io_http_server_request_count_by_method{monitored_resource="global"}
loadbalancing_googleapis_com:l3_external_egress_bytes_count{monitored_resource="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"}
Nilai ""
untuk label monitored_resource
bersifat khusus dan mengacu pada jenis resource prometheus_target
default yang digunakan untuk metrik Google Cloud Managed Service for Prometheus.
Jika tidak menggunakan label monitored_resource
saat diperlukan, Anda
akan menerima error berikut:
metric is configured to be used with more than one monitored resource type;
series selector must specify a label matcher on monitored resource name
Menggunakan label {i>metadata<i}
Anda dapat menggunakan label metadata di PromQL sama seperti label lainnya, tetapi seperti nama metrik, label metadata juga harus kompatibel dengan PromQL. Sintaksis untuk merujuk ke label sistem metadata version
adalah metadata_system_version
, dan sintaksis untuk label pengguna metadata version
adalah metadata_user_version
. Kueri PromQL yang diformat dengan benar menggunakan label metadata mungkin terlihat seperti berikut:
compute_googleapis_com:instance_cpu_utilization{monitored_resource="gce_instance",metadata_user_env="prod"}
sum(compute_googleapis_com:instance_cpu_utilization) by (metadata_system_region)
Satu-satunya karakter khusus yang dapat Anda gunakan dalam kunci label metadata adalah karakter _
. Agregasi menggunakan label metadata dengan jenis MULTI_STRING
atau
KEY_VALUE
tidak didukung.
Menyelesaikan konflik label
Di Cloud Monitoring, label dapat dimasukkan ke metrik atau resource.
Jika label metrik memiliki nama kunci yang sama dengan label resource, Anda dapat merujuk ke label metrik secara khusus dengan menambahkan awalan metric_
ke nama kunci label dalam kueri.
Misalnya, Anda memiliki label resource dan label metrik dengan nama pod_name
dalam metrik example.googleapis.com/user/widget_count
.
Untuk memfilter nilai label resource, gunakan
example_googleapis_com:user_widget_count{pod_name="RESOURCE_LABEL_VALUE"}
Untuk memfilter nilai label metrik, gunakan
example_googleapis_com:user_widget_count{metric_pod_name="METRIC_LABEL_VALUE"}
Topik tambahan
Aturan dan pemberitahuan
Anda dapat menggunakan metrik Cloud Monitoring dalam aturan perekaman dan pemberitahuan di Managed Service for Prometheus. Untuk mengetahui petunjuknya, lihat Evaluasi dan pemberitahuan aturan terkelola atau Evaluasi dan pemberitahuan aturan yang di-deploy sendiri.
PromQL Pembelajaran
Untuk mempelajari dasar-dasar penggunaan PromQL, sebaiknya baca dokumentasi open source. Beberapa link yang bermanfaat mungkin adalah:
Perbedaan PromQL
Fungsi PromQL untuk Google Cloud Managed Service for Prometheus mungkin sedikit berbeda dari PromQL upstream. Untuk mengetahui daftar perbedaan ini, lihat Perbedaan PromQL.