Setelah mengumpulkan metrik dari workload yang di-deploy di Google Distributed Cloud (GDC) dengan air gap, Anda dapat mulai menganalisisnya. Untuk menganalisis metrik, Anda dapat memvisualisasikan dan memfilternya di dasbor Grafana yang informatif atau mengaksesnya langsung dari Cortex menggunakan alat curl untuk pembuatan skrip dan otomatisasi yang fleksibel.
Halaman ini memberikan petunjuk mendetail tentang cara membuat kueri dan memvisualisasikan metrik Anda menggunakan antarmuka pengguna Grafana dan alat curl untuk endpoint Cortex guna mendapatkan insight tentang performa workload Anda.
Anda dapat mengakses metrik dengan salah satu dari dua metode berikut:
- Dasbor Grafana: Pelajari tren dan identifikasi anomali dengan visualisasi intuitif metrik utama seperti pemakaian CPU, konsumsi penyimpanan, dan aktivitas jaringan. Grafana menyediakan antarmuka yang mudah digunakan untuk memfilter dan menganalisis data workload Anda di dasbor.
- Endpoint Cortex: Untuk kasus penggunaan yang lebih lanjut, buat kueri instance Cortex project Anda secara langsung menggunakan alat
curldi command line. Cortex menyimpan metrik Prometheus project Anda dan menyediakan endpoint HTTP untuk akses terprogram. Akses ini memungkinkan Anda mengekspor data, mengotomatiskan tugas, dan membangun integrasi kustom.
Sebelum memulai
Untuk mendapatkan izin yang diperlukan untuk membuat kueri dan memvisualisasikan metrik di dasbor Grafana, minta Admin Org IAM atau Admin Project IAM untuk memberi Anda salah satu peran Organization Grafana Viewer atau Project Grafana Viewer yang telah ditetapkan. Bergantung pada tingkat akses dan izin yang Anda perlukan, Anda mungkin mendapatkan peran Grafana di organisasi atau project.
Atau, untuk mendapatkan izin yang Anda perlukan untuk mengkueri metrik dari endpoint Cortex, minta Admin Project IAM Anda untuk memberi Anda peran Project Cortex Prometheus Viewer di namespace project Anda.
Tabel berikut merangkum persyaratan Role untuk persona PA dan AO.
| Persona | Objek | Cluster | Peran | Namespace | Grup/Pengguna | Konfigurasi |
|---|---|---|---|---|---|---|
| PA | grafana | org-admin | project-grafana-viewer |
platform-obs | Grup | 1 |
| PA | cortex | org-admin | project-cortex-prometheus-viewer |
platform-obs | Grup | 2 |
| PA | grafana | org-admin | project-grafana-viewer |
platform-obs | Pengguna | 3 |
| PA | cortex | org-admin | project-cortex-prometheus-viewer |
platform-obs | Pengguna | 4 |
| AO | grafana | org-admin | project-grafana-viewer |
PROJECT_NAMESPACE | Grup | 1 |
| AO | cortex | org-admin | project-cortex-prometheus-viewer |
PROJECT_NAMESPACE | Grup | 2 |
| AO | grafana | org-admin | project-grafana-viewer |
PROJECT_NAMESPACE | Pengguna | 3 |
| AO | cortex | org-admin | project-cortex-prometheus-viewer |
PROJECT_NAMESPACE | Pengguna | 4 |
Ganti variabel berikut dengan tepat:
| Variabel | Deskripsi |
|---|---|
KUBECONFIG |
Anda memerlukan kubeconfig untuk cluster tertentu yang berisi NAMESPACE tempat RoleBinding ini akan diterapkan. |
RULE_NAME |
Nama unik untuk resource RoleBinding ini dalam namespace. Contoh, io-root-cortex-prometheus-viewer. |
NAMESPACE |
Namespace Kubernetes tempat RoleBinding ini akan dibuat dan diterapkan. Cari kolom Namespace di tabel sebelumnya. |
EMAIL_ADDRESS |
ID untuk pengguna yang diberi peran. ID ini sering kali berupa alamat email. Misalnya, infrastructure-operator@example.com. |
ROLE |
Nama Role yang berisi izin yang ingin Anda berikan kepada pengguna. Cari peran yang tersedia di tabel sebelumnya |
GROUP_NAME |
Nama Group yang mencakup pengguna PA/AO. Contoh, pa-group. |
ZONE |
Nama Zona |
Konfigurasi 1
Konfigurasi ini memberikan izin kepada grup pengguna untuk mengakses PA/AO Grafana di cluster org. Setelah menyiapkan konfigurasi ini, lihat bagian dasbor grafana dalam dokumen ini untuk melihat metrik di Grafana.
Perintah Kubectl
Berikut adalah format perintah umum:
kubectl --kubeconfig `KUBECONFIG` create rolebinding `RULE_NAME` -n platform-obs --group=`GROUP_NAME` --role=project-grafana-viewerContoh:
kubectl --kubeconfig <path-to-kubeconfig> create rolebinding project-grafana-viewers-binding --role=project-grafana-viewer --group=my-team --namespace=platform-obsJalur File IAC
/infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`GROUP_NAME`/<YAML_FILE>File Yaml
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: RULE_NAME namespace: platform-obs subjects: - kind: Group name: GROUP_NAME apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: project-grafana-viewer apiGroup: rbac.authorization.k8s.io
Konfigurasi 2
Konfigurasi ini memberikan izin kepada grup pengguna untuk dapat mengakses metrik PA/AO secara terprogram di cluster org. Setelah menyiapkan konfigurasi ini, lihat bagian endpoint cortex dalam dokumen ini untuk mengkueri metrik secara terprogram.
Perintah Kubectl
Berikut adalah format perintah umum:
kubectl --kubeconfig `KUBECONFIG` create rolebinding `RULE_NAME` -n platform-obs --group=`GROUP_NAME` --role=project-cortex-prometheus-viewerContoh:
kubectl --kubeconfig <path-to-kubeconfig> create rolebinding project-cortex-prometheus-viewer-binding --role=project-cortex-prometheus-viewer --group=my-team --namespace=platform-obsJalur File IAC
/infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`GROUP_NAME`/<YAML_FILE>File Yaml
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: RULE_NAME namespace: platform-obs subjects: - kind: Group name: GROUP_NAME apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: project-cortex-prometheus-viewer apiGroup: rbac.authorization.k8s.io
Konfigurasi 3
Konfigurasi ini memberikan izin kepada pengguna untuk mengakses PA/AO Grafana di cluster org. Setelah menyiapkan konfigurasi ini, lihat bagian dasbor grafana dalam dokumen ini untuk melihat metrik di Grafana.
Perintah Kubectl
Berikut adalah format perintah umum:
kubectl --kubeconfig `KUBECONFIG` create rolebinding `RULE_NAME` -n platform-obs --user=`EMAIL_ADDRESS` --role=project-grafana-viewerContoh:
kubectl --kubeconfig <path-to-kubeconfig> create rolebinding project-grafana-viewers-binding --role=project-grafana-viewer --user=my-email@example.com --namespace=platform-obsJalur File IAC
/infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`EMAIL_ADDRESS`/<YAML_FILE>File Yaml
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: RULE_NAME namespace: platform-obs subjects: - kind: User name: EMAIL_ADDRESS apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: project-grafana-viewer apiGroup: rbac.authorization.k8s.io
Config 4
Konfigurasi ini memberikan izin kepada pengguna untuk dapat mengakses metrik PA/AO secara terprogram di cluster org. Setelah menyiapkan konfigurasi ini, lihat bagian endpoint cortex dalam dokumen ini untuk mengkueri metrik secara terprogram.
Perintah Kubectl
Berikut adalah format perintah umum:
kubectl --kubeconfig `KUBECONFIG` create rolebinding `RULE_NAME` -n platform-obs --user=`EMAIL_ADDRESS` --role=project-cortex-prometheus-viewerContoh:
kubectl --kubeconfig <path-to-kubeconfig> create rolebinding project-cortex-prometheus-viewer-binding --role=project-cortex-prometheus-viewer --user=my-email@example.com --namespace=platform-obsJalur File IAC
/infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`EMAIL_ADDRESS`/<YAML_FILE>File Yaml
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: RULE_NAME namespace: platform-obs subjects: - kind: User name: EMAIL_ADDRESS apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: project-cortex-prometheus-viewer apiGroup: rbac.authorization.k8s.io
Untuk mengetahui informasi selengkapnya tentang peran ini, lihat Menyiapkan izin IAM.
Mendapatkan dan memfilter metrik
Pilih salah satu metode berikut untuk membuat kueri, memvisualisasikan tren, dan memfilter metrik dari workload project Anda:
Dasbor Grafana
Bagian ini menjelaskan cara mengakses metrik Anda menggunakan dasbor Grafana.
Mengidentifikasi endpoint Grafana Anda
URL berikut adalah endpoint instance Grafana project Anda:
https://GDC_URL/PROJECT_NAMESPACE/grafana
Ganti kode berikut:
GDC_URL: URL organisasi Anda di GDC.PROJECT_NAMESPACE: namespace project Anda.Misalnya, endpoint Grafana untuk project
platform-obsdi organisasiorg-1adalahhttps://org-1/platform-obs/grafana.
Melihat metrik di antarmuka pengguna Grafana
Ambil metrik di antarmuka pengguna Grafana:
- Di konsol GDC, pilih project Anda.
- Di menu navigasi, pilih Operations > Monitoring.
Klik View all in Grafana.
Halaman baru akan membuka endpoint Grafana dan menampilkan antarmuka pengguna.
Di antarmuka pengguna, klik explore Explore dari menu navigasi untuk membuka halaman Explore.
Dari menu di panel Explore, pilih sumber data untuk mengambil metrik, sesuai dengan jenis universe Anda:
Universe zona tunggal: Pilih prometheus untuk menampilkan metrik dari zona tunggal universe Anda.
Universe multi-zona: Grafana dapat terhubung ke berbagai zona dan menampilkan data lintas zona. Pilih Metrics ZONE_NAME untuk menampilkan metrik dari zona mana pun di universe Anda, terlepas dari zona tempat Anda login.
Selain itu, untuk memiliki visualisasi data lintas zona dalam satu dasbor dan menambahkan beberapa zona ke kueri Anda, pilih Mixed sebagai sumber data.
Masukkan kueri untuk menelusuri metrik menggunakan ekspresi PromQL (Prometheus Query Language). Anda dapat melakukan langkah ini dengan salah satu cara berikut:
- Pilih metrik dan label untuk kueri Anda dari menu Metric dan Label filters. Klik add Add untuk menambahkan lebih banyak label ke kueri Anda. Kemudian, klik Run query.
- Masukkan kueri Anda langsung di kolom teks Metrics, lalu tekan Shift+Enter untuk menjalankan kueri.
Halaman ini menampilkan metrik yang cocok dengan kueri Anda.

Gambar 1. Opsi menu untuk membuat kueri metrik dari antarmuka pengguna Grafana.
Pada gambar 1, opsi prometheus menampilkan antarmuka yang memungkinkan Anda membuat kueri dari Grafana untuk mengambil metrik.
Untuk contoh nilai label yang dapat Anda gunakan untuk mengkueri metrik, lihat Contoh kueri dan label.
Endpoint Cortex - zona tunggal
Bagian ini menjelaskan cara mengakses metrik menggunakan Cortex.
Mengidentifikasi endpoint Cortex Anda
URL berikut adalah endpoint instance Cortex project Anda:
https://GDC_URL/PROJECT_NAMESPACE/cortex/prometheus/
Ganti kode berikut:
GDC_URL: URL organisasi Anda di GDC.PROJECT_NAMESPACE: namespace project Anda.Misalnya, endpoint Cortex untuk project
platform-obsdi organisasiorg-1adalahhttps://org-1/platform-obs/cortex/prometheus/.
Mengautentikasi permintaan curl
- Download dan instal gdcloud CLI.
Tetapkan properti gdcloud
core/organization_console_url:gdcloud config set core/organization_console_url https://GDC_URLLogin dengan penyedia identitas yang dikonfigurasi:
gdcloud auth loginGunakan nama pengguna dan sandi Anda untuk melakukan autentikasi dan login.
Jika login berhasil, Anda dapat menggunakan header otorisasi dalam permintaan curl melalui perintah
gdcloud auth print-identity-token. Untuk mengetahui informasi selengkapnya, lihat gdcloud auth.
Memanggil endpoint Cortex
Selesaikan langkah-langkah berikut untuk menjangkau endpoint Cortex menggunakan alat curl:
- Autentikasi permintaan
curl. Gunakan
curluntuk memanggil endpoint Cortex dan perluas URL menggunakan Format API HTTP Kueri untuk membuat kueri metrik.Berikut adalah contoh permintaan
curl:curl https://GDC_URL/PROJECT_NAME/cortex/prometheus/api/v1/query?query=my_metric{cluster="my-cluster"}&time=2015-07-01T20:10:51.781Z \ -H "Authorization: Bearer $(gdcloud auth print-identity-token \ --audiences=https://GDC_URL)"Anda akan mendapatkan output setelah menjalankan perintah. Respons API dalam format JSON.
Endpoint Cortex - multizona
Bagian ini menjelaskan cara mengakses metrik menggunakan Cortex.
Mengidentifikasi endpoint Cortex Anda
URL berikut adalah endpoint instance Cortex project Anda untuk kueri multizona:
https://GDC_URL/PROJECT_NAMESPACE/cortex/metrics
Ganti kode berikut:
GDC_URL: URL organisasi Anda di GDC.- Contoh untuk org-1, zone1:
console.org-1.zone1.google.gdch.test - Ganti organisasi dan zona untuk aplikasi Anda.
- Contoh untuk org-1, zone1:
PROJECT_NAMESPACE: namespace project Anda.Misalnya, endpoint Cortex untuk project
project-1di organisasiorg-1adalahhttps://console.org-1.zone1.google.gdch.test/project-1/cortex/metrics..
Mengautentikasi permintaan curl
- Download dan instal gdcloud CLI.
Tetapkan properti gdcloud
core/organization_console_url:gdcloud config set core/organization_console_url https://GDC_URLLogin dengan penyedia identitas yang dikonfigurasi:
gdcloud auth loginGunakan nama pengguna dan sandi Anda untuk melakukan autentikasi dan login.
Jika login berhasil, Anda dapat menggunakan header otorisasi dalam permintaan curl melalui perintah
gdcloud auth print-identity-token. Untuk mengetahui informasi selengkapnya, lihat gdcloud auth.
Memanggil endpoint Cortex
Selesaikan langkah-langkah berikut untuk menjangkau endpoint Cortex menggunakan alat curl:
- Autentikasi permintaan
curl. - Gunakan
curluntuk memanggil endpoint Cortex dan perluas URL menggunakan Format API HTTP Kueri untuk membuat kueri metrik. Selain parameter kueri URL Prometheus, sertakan parameter lokasi untuk memberikan daftar zona yang akan dikueri. - location={string}: daftar zona yang dipisahkan oleh
|- Jika tidak diberikan, kueri akan dijalankan di semua zona yang tersedia.Berikut adalah contoh permintaan
curl POST:curl POST \ https://GDC_URL/PROJECT_NAME/cortex/metrics/api/v1/query_range" \ -H 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'query=pod_cpu_usage_total' \ --data-urlencode 'start=2025-07-21T16:00:00Z' \ --data-urlencode 'end=2025-07-21T16:15:00Z' \ --data-urlencode 'step=60s' \ --data-urlencode 'location=zone1|zone2' \ -H "Authorization: Bearer $(gdcloud auth print-identity-token \ --audiences=https://GDC_URL)"Berikut adalah contoh permintaan
curl GET:curl -X GET \ https://GDC_URL/PROJECT_NAME/cortex/metrics/api/v1/query_range?query=pod_cpu_usage_total&start=2025-07-21T16:00:00Z&end=2025-07-21T16:15:00Z&step=1s&location=zone1|zone2" \ -H "Authorization: Bearer $(gdcloud auth print-identity-token \ --audiences=https://GDC_URL)"Anda akan mendapatkan output setelah menjalankan perintah. Respons API dalam format JSON.
Contoh kueri dan label
Anda dapat mengkueri metrik menggunakan nama metrik dan key-value pair untuk label. Kueri PromQL memiliki sintaksis berikut:
metric_name{label_one="value", label_two="value"}
Label memungkinkan Anda membedakan karakteristik metrik. Dengan cara ini, pembuat container membuat workload mereka menghasilkan metrik dan menambahkan tag untuk memfilter metrik tersebut.
Misalnya, Anda dapat memiliki metrik api_http_requests_total untuk menghitung jumlah permintaan HTTP yang diterima. Kemudian, Anda dapat menambahkan label request_method pada metrik ini, yang menggunakan nilai POST, GET, atau PUT. Oleh karena itu, Anda
membuat tiga aliran metrik untuk setiap jenis permintaan yang mungkin Anda terima. Dalam hal ini, untuk menemukan jumlah permintaan GET HTTP, jalankan kueri berikut:
api_http_requests_total{request_method="GET"}
Lihat Penamaan Metrik dan Label untuk mengetahui informasi selengkapnya tentang metrik dan label.
Berikut adalah beberapa label default yang ditambahkan oleh resource kustom MonitoringTarget. Anda dapat menggunakan label default ini untuk membuat kueri metrik:
_gdch_service: nama pendek layanan.cluster: nama cluster.container_name: nama container dalam pod.namespace_name: namespace project Anda.pod_name: awalan nama pod.
Tabel berikut menjelaskan label yang ditambahkan Prometheus secara otomatis:
| Label metrik | Deskripsi |
|---|---|
job |
Nama internal tugas scrape yang digunakan untuk mengumpulkan metrik. Tugas yang dibuat oleh resource kustom MonitoringTarget memiliki nama dengan pola berikut:obs-system/OBS_SHADOW_PROJECT_NAME/MONITORINGTARGET_NAME.MONITORINGTARGET_NAMESPACE/I/JI dan J adalah angka unik yang ditentukan secara internal untuk menghindari konflik nama. |
instance |
$IP:$PORT layanan yang dihapus. Jika resource workload
memiliki beberapa replika, gunakan kolom ini untuk membedakannya. |
Contoh kode berikut menunjukkan penggunaan key-value pair untuk label guna mengkueri berbagai metrik untuk melihat penggunaan CPU yang dikumpulkan dalam cluster Kubernetes:
pod_cpu_usage_total{cluster="CLUSTER_NAME"}
Gunakan alat pelabelan ulang metrik untuk menambahkan label yang awalnya tidak ditampilkan oleh container yang di-scrap dan mengganti nama metrik yang dihasilkan. Anda harus mengonfigurasi resource kustom MonitoringTarget untuk menambahkan label pada metrik yang dikumpulkannya.
Tentukan label tersebut di kolom metricsRelabelings resource kustom.
Untuk mengetahui informasi selengkapnya, lihat
Metrik label.
Berikut adalah contoh respons yang diterima dari endpoint metrik cortex:
{
"zone1": {
"status": "success",
"data": {
"resultType": "matrix",
"result": [
{
"metric": {
"__name__": "pod_cpu_usage_total",
"_gdch_project": "project-1",
"cluster": "root-admin",
"container_name": "otel-collector",
"exported_instance": "localhost:2112",
"exported_job": "workload-0",
"ha_cluster": "root-admin-shard1",
"instance": "172.192.1.74:3113",
"job": "metrics-server-exporter.mon-system",
"namespace": "mon-system",
"namespace_name": "mon-system",
"pod": "cortex-0",
"pod_name": "metrics-server-exporter-695c9f848b-swzgq",
"zone_id": "zone1"
},
"values": [
[
1753261200,
"2.258621991"
],
[
1753261800,
"1.029301454"
]
]
}
]
}
},
"zone2": {
"status": "success",
"data": {
"resultType": "matrix",
"result": [
{
"metric": {
"__name__": "pod_cpu_usage_total",
"_gdch_project": "project-1",
"cluster": "root-admin",
"container_name": "otel-collector",
"exported_instance": "localhost:2112",
"exported_job": "workload-0",
"ha_cluster": "root-admin-shard1",
"instance": "172.196.3.208:3113",
"job": "metrics-server-exporter.mon-system",
"namespace": "mon-system",
"namespace_name": "mon-system",
"pod": "cortex-0",
"pod_name": "metrics-server-exporter-695c9f848b-kchfv",
"zone_id": "zone2"
},
"values": [
[
1753261200,
"1.814027424"
],
[
1753261800,
"2.7767060260000003"
]
]
}
]
}
}
}
Membuat kueri HTTP API
Ringkasan format
Respons API diformat secara konsisten dalam JSON. Permintaan yang berhasil akan selalu menerima kode status 2xx.
Untuk permintaan yang tidak valid, pengendali API akan menampilkan objek error JSON beserta salah satu kode status HTTP berikut:
- 400 Bad Request: Jika parameter penting tidak ada atau salah diberikan.
- 503 Service Unavailable: Jika kueri melebihi batas waktu atau dibatalkan.
Setiap data yang berhasil dikumpulkan akan disertakan dalam kolom "data" pada respons.
Format amplop respons JSON adalah sebagai berikut:
{
"status": "success" | "error",
"data": <data>,
// Only set if status is "error". The data field may still hold
// additional data.
"errorType": "<string>",
"error": "<string>",
// Only set if there were warnings while executing the request.
// There will still be data in the data field.
"warnings": ["<string>"],
// Only set if there were info-level annotations while executing the request.
"infos": ["<string>"]
}
Kueri instan
Endpoint berikut mengevaluasi kueri instan pada satu titik waktu:
GET /api/v1/query
POST /api/v1/query
Parameter kueri URL berikut tersedia untuk kueri ekspresi Prometheus:
query=<string>: String kueri ekspresi Prometheus.time=<rfc3339 | unix_timestamp>: Stempel waktu evaluasi opsional, yang ditentukan sebagai string RFC 3339 atau stempel waktu Unix. Jika dihilangkan, waktu server saat ini akan digunakan.timeout=<duration>: Waktu tunggu evaluasi opsional. Nilai default dan dibatasi oleh nilai flag query.timeout.limit=<number>: Jumlah maksimum opsional deret yang akan ditampilkan. Tindakan ini akan memotong deret untuk matriks dan vektor, tetapi tidak memengaruhi skalar atau string. Nilai 0 akan menonaktifkan batas ini.lookback_delta=<number>: Parameter opsional untuk mengganti periode lihat balik khusus untuk kueri ini.
Waktu server saat ini digunakan jika parameter waktu dihilangkan.
Untuk kueri yang lebih besar yang mungkin melebihi batas karakter URL, Anda dapat mengirimkan parameter ini menggunakan metode POST. Pastikan isi permintaan dienkode ke URL dan header Content-Type ditetapkan ke application/x-www-form-urlencoded.
Bagian data dari hasil kueri memiliki format berikut:
{
"resultType": "matrix" | "vector" | "scalar" | "string",
"result": <value>
}
<value> mengacu pada data hasil kueri, yang memiliki berbagai format bergantung pada resultType.
Contoh berikut mengevaluasi ekspresi up pada waktu 2015-07-01T20:10:51.781Z:
curl 'http://localhost:9090/api/v1/query?query=up&time=2015-07-01T20:10:51.781Z'
{
"status" : "success",
"data" : {
"resultType" : "vector",
"result" : [
{
"metric" : {
"__name__" : "up",
"job" : "prometheus",
"instance" : "localhost:9090"
},
"value": [ 1435781451.781, "1" ]
},
{
"metric" : {
"__name__" : "up",
"job" : "node",
"instance" : "localhost:9100"
},
"value" : [ 1435781451.781, "0" ]
}
]
}
}
Kueri rentang
Endpoint berikut mengevaluasi kueri ekspresi selama rentang waktu tertentu:
GET /api/v1/query_range
POST /api/v1/query_range
Parameter kueri URL berikut tersedia untuk kueri ekspresi Prometheus:
query=<string>: String kueri ekspresi Prometheus.start=<rfc3339 | unix_timestamp>: Stempel waktu mulai, inklusif.end=<rfc3339 | unix_timestamp>: Stempel waktu akhir, inklusif.step=<duration | float>: Lebar langkah resolusi kueri dalam format durasi atau angka float detik.timeout=<duration>: Waktu tunggu evaluasi opsional. Nilai default dan dibatasi oleh nilai flag query.timeout.limit=<number>: Jumlah maksimum opsional deret yang akan ditampilkan. Tindakan ini akan memotong deret untuk matriks dan vektor, tetapi tidak memengaruhi skalar atau string. Nilai 0 akan menonaktifkan batas ini.lookback_delta=<number>: Parameter opsional untuk mengganti periode lihat balik khusus untuk kueri ini.
Untuk kueri yang lebih besar yang mungkin melebihi batas karakter URL, Anda dapat mengirimkan parameter ini menggunakan metode POST. Pastikan isi permintaan dienkode ke URL dan header Content-Type ditetapkan ke application/x-www-form-urlencoded.
Bagian data dari hasil kueri memiliki format berikut:
{
"resultType": "matrix",
"result": <value>
}
Contoh berikut mengevaluasi ekspresi up dalam rentang 30 detik dengan resolusi kueri 15 detik.
curl 'http://localhost:9090/api/v1/query_range?query=up&start=2015-07-01T20:10:30.781Z&end=2015-07-01T20:11:00.781Z&step=15s'
{
"status" : "success",
"data" : {
"resultType" : "matrix",
"result" : [
{
"metric" : {
"__name__" : "up",
"job" : "prometheus",
"instance" : "localhost:9090"
},
"values" : [
[ 1435781430.781, "1" ],
[ 1435781445.781, "1" ],
[ 1435781460.781, "1" ]
]
},
{
"metric" : {
"__name__" : "up",
"job" : "node",
"instance" : "localhost:9091"
},
"values" : [
[ 1435781430.781, "0" ],
[ 1435781445.781, "0" ],
[ 1435781460.781, "1" ]
]
}
]
}
}
Penamaan Metrik dan Label
Panduan Penamaan Metrik
Saat menentukan nama metrik, pertimbangkan prinsip berikut:
Nama metrik HARUS menyertakan awalan aplikasi satu kata, yang terkadang disebut sebagai "namespace" oleh library klien. Awalan ini mengidentifikasi domain tempat metrik berada. Untuk metrik khusus aplikasi, nama aplikasi biasanya digunakan sebagai awalan.
Contoh:
- prometheus_notifications_total (khusus untuk server Prometheus)
- process_cpu_seconds_total (diekspor oleh banyak library klien)
- http_request_duration_seconds (untuk semua permintaan HTTP)
Nama metrik HARUS mewakili satu unit (misalnya, hindari mencampur detik dengan milidetik, atau detik dengan byte).
Nama metrik HARUS menggunakan unit dasar (misalnya, detik, byte, meter), bukan unit turunan (misalnya, milidetik, megabyte, kilometer).
Nama metrik HARUS menyertakan akhiran unit jamak. Untuk mengakumulasi jumlah, akhiran "total" harus digunakan selain akhiran unit jika berlaku.
Contoh:
- http_request_duration_seconds
- node_memory_usage_bytes
- http_requests_total (untuk jumlah akumulasi tanpa unit)
- process_cpu_seconds_total (untuk jumlah akumulasi dengan unit)
- foobar_build_info (untuk pseudo-metrik yang menyediakan metadata tentang biner yang berjalan)
Nama metrik DAPAT mengurutkan komponennya untuk memfasilitasi pengelompokan yang mudah saat diurutkan secara leksikografis, asalkan semua aturan lainnya diikuti. Metrik terkait sering kali memiliki komponen nama umum yang ditempatkan di awal untuk memastikan metrik tersebut diurutkan bersama.
Contoh:
- prometheus_tsdb_head_truncations_closed_total
- prometheus_tsdb_head_truncations_established_total
- prometheus_tsdb_head_truncations_failed_total
- prometheus_tsdb_head_truncations_total
Nama metrik HARUS secara konsisten mewakili "hal yang diukur" logis yang sama di semua dimensi label.
Contoh:
- durasi permintaan
- byte transfer data
- penggunaan resource instan dalam persentase
Panduan Penamaan Label
Saat mengukur sesuatu, gunakan label untuk membedakan karakteristiknya. Contoh:
- Untuk total permintaan HTTP API (
api_http_requests_total), bedakan berdasarkan jenis operasi, misalnyacreate,update,delete(jenis permintaan:operation="create|update|delete"). - Untuk durasi permintaan API dalam detik (
api_request_duration_seconds), bedakan berdasarkan tahap permintaan, misalnyaextract,transform,load(tahap permintaan:stage="extract|transform|load").
Hindari menyertakan nama label dalam nama metrik itu sendiri, karena hal ini akan menimbulkan redundansi dan dapat menyebabkan kebingungan jika label tersebut nantinya digabungkan.