Membuat kueri dan melihat metrik

Setelah mengumpulkan metrik dari workload yang di-deploy di appliance air-gapped Google Distributed Cloud (GDC), 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.

Anda dapat mengakses metrik dengan salah satu dari dua metode berikut:

  • Dasbor Grafana: Jelajahi tren dan identifikasi anomali dengan visualisasi intuitif dari metrik utama seperti pemakaian CPU, penggunaan penyimpanan, dan aktivitas jaringan. Grafana menyediakan antarmuka yang mudah digunakan untuk memfilter dan menganalisis data beban kerja Anda di dasbor.
  • Endpoint Cortex: Untuk kasus penggunaan yang lebih canggih, kueri instance Cortex project Anda secara langsung menggunakan alat curl di command line. Cortex menyimpan metrik Prometheus project Anda dan menyediakan endpoint HTTP untuk akses terprogram. Akses ini memungkinkan Anda mengekspor data, mengotomatiskan tugas, dan membuat integrasi kustom.

Sebelum memulai

Untuk mendapatkan izin yang diperlukan guna membuat kueri dan memvisualisasikan metrik di dasbor Grafana, minta Admin IAM Organisasi atau Admin IAM Project Anda untuk memberi Anda salah satu peran bawaan Pelihat Grafana Organisasi atau Pelihat Grafana Project. Bergantung pada tingkat akses dan izin yang Anda perlukan, Anda dapat memperoleh peran Grafana di organisasi atau project.

Atau, untuk mendapatkan izin yang diperlukan untuk membuat kueri metrik dari endpoint Cortex, minta Admin IAM Project Anda untuk memberi Anda peran Project Cortex Prometheus Viewer di namespace project Anda.

Untuk mengetahui informasi selengkapnya tentang peran ini, lihat Siapkan 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 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-obs di organisasi org-1 adalah https://org-1/platform-obs/grafana.

Melihat metrik di antarmuka pengguna Grafana

Mengambil metrik di antarmuka pengguna Grafana:

  1. Di konsol GDC, pilih project Anda.
  2. Di menu navigasi, pilih Operations > Monitoring.
  3. Klik Lihat semua di Grafana.

    Halaman baru akan membuka endpoint Grafana dan menampilkan antarmuka pengguna.

  4. Di antarmuka pengguna,klik jelajahi Jelajahi dari menu navigasi untuk membuka halaman Jelajahi.

  5. Dari menu di panel Jelajahi, pilih sumber data untuk mengambil metrik, sesuai dengan jenis semesta Anda:

    • Semesta zona tunggal: Pilih prometheus untuk menampilkan metrik dari zona tunggal semesta Anda.
  6. 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 Metrik dan Filter label. Klik tambahkan Tambahkan untuk menambahkan lebih banyak label ke kueri Anda. Kemudian, klik Run query.
    • Masukkan kueri Anda langsung di kolom teks Metrik, lalu tekan Shift+Enter untuk menjalankan kueri.

    Halaman ini menampilkan metrik yang cocok dengan kueri Anda.

    Opsi prometheus dipilih di halaman Jelajahi untuk mendapatkan metrik.

    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 membuat kueri metrik, lihat Contoh kueri dan label.

Endpoint Cortex

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-obs di organisasi org-1 adalah https://org-1/platform-obs/cortex/prometheus/.

Mengautentikasi permintaan curl

  1. Download dan instal gdcloud CLI.
  2. Tetapkan properti gdcloud core/organization_console_url:

    gdcloud config set core/organization_console_url
    https://GDC_URL
    
  3. Login dengan penyedia identitas yang dikonfigurasi:

    gdcloud auth login
    
  4. Gunakan nama pengguna dan sandi Anda untuk mengautentikasi 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.

Panggil endpoint Cortex

Selesaikan langkah-langkah berikut untuk menjangkau endpoint Cortex menggunakan alat curl:

  1. Lakukan autentikasi permintaan curl.
  2. Gunakan curl untuk memanggil endpoint Cortex dan memperluas URL menggunakan Prometheus HTTP API standar (https://prometheus.io/docs/prometheus/latest/querying/api/) 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.

Contoh kueri dan label

Anda dapat membuat kueri metrik menggunakan nama metrik dan pasangan nilai kunci untuk label. A Kueri PromQL memiliki sintaksis berikut:

metric_name{label_one="value", label_two="value"}

Label memungkinkan Anda membedakan karakteristik metrik. Dengan cara ini, pembuat penampung membuat beban kerja 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 HTTP GET, Anda menjalankan kueri berikut:

api_http_requests_total{request_method="GET"}

Lihat https://prometheus.io/docs/practices/naming/ 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 default
Label metrik Deskripsi
job Nama internal tugas pengambilan 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/J

I dan J adalah angka unik yang ditentukan secara internal untuk menghindari konflik nama.
instance $IP:$PORT layanan yang dihentikan. Jika resource workload memiliki beberapa replika, gunakan kolom ini untuk membedakannya.

Contoh kode berikut menunjukkan penggunaan pasangan nilai kunci untuk label guna membuat kueri metrik yang berbeda:

  • Melihat semua aliran metrik operasi yang diproses di project Anda:

    processed_ops_total
    
  • Melihat operasi yang diproses yang dikumpulkan di cluster Kubernetes:

    processed_ops_total{cluster="CLUSTER_NAME"}
    
  • Melihat penggunaan CPU yang dikumpulkan di cluster Kubernetes:

    cpu_usage{cluster="CLUSTER_NAME"}
    

Gunakan alat pelabelan ulang metrik untuk menambahkan label yang awalnya tidak diekspos oleh container yang di-scrap dan mengganti nama metrik yang dihasilkan. Anda harus mengonfigurasi MonitoringTarget resource kustom untuk menambahkan label pada metrik yang dikumpulkannya. Tentukan label tersebut di kolom metricsRelabelings pada resource kustom. Untuk mengetahui informasi selengkapnya, lihat Metrik label.

Membuat kueri metrik dari Cortex API

Cortex adalah penyimpanan jangka panjang untuk metrik Prometheus di GDC. Platform Observability mengekspos endpoint Cortex HTTP API untuk membuat kueri dan membaca metrik, pemberitahuan, dan data deret waktu Prometheus lainnya dari project Anda.

Kueri metrik langsung dari HTTP API untuk membaca dan mengekspor metrik serta data deret waktu lainnya ke alat eksternal, menyiapkan tugas otomatis, menyesuaikan respons, dan membuat integrasi sesuai dengan kasus penggunaan pemantauan sistem Anda. Misalnya, masukkan output ke perintah lain, ekspor detail ke format file teks, atau konfigurasi tugas cron Linux. Anda dapat memanggil API dari antarmuka command line (CLI) atau browser web dan menggunakan ekspresi bahasa kueri sebagai parameter endpoint untuk mendapatkan hasil dalam format JSON.

Bagian ini menjelaskan cara memanggil endpoint Cortex API dari CLI menggunakan spesifikasi Prometheus API untuk membuat kueri metrik bagi kemampuan pengamatan data.

Sebelum memulai

Anda harus mendapatkan otorisasi untuk membuat kueri metrik dari CLI. Untuk mendapatkan izin yang diperlukan untuk mengakses endpoint Cortex API, minta Admin IAM Project Anda untuk memberi Anda peran Project Cortex Prometheus Viewer (project-cortex-prometheus-viewer).

Buat binding peran berikut menggunakan perintah kubectl ke Prometheus Cortex untuk setiap persona:

  1. Root-Admin Operator Infrastruktur (IO) - Project Cortex Prometheus Viewer:

    kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding 
    io-cortex-prometheus-viewer-binding -n infra-obs 
    --user=fop-infrastructure-operator@example.com 
    --role=project-cortex-prometheus-viewer
    
  2. Admin Platform (PA) Admin Root - Project Cortex Prometheus Viewer:

    kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding 
    pa-cortex-prometheus-viewer-binding -n platform-obs 
    --user=fop-platform-admin@example.com --role=project-cortex-prometheus-viewer
    
  3. Admin Root Operator Aplikasi (AO) - Project Cortex Prometheus Viewer :

    kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding 
    project-cortex-prometheus-viewer-binding -n PROJECT_NAME 
    --user=USER_NAME --role=project-cortex-prometheus-viewer
    

    Ganti kode berikut:

    • PROJECT_NAME: Nama project Anda.
    • USER_NAME: Nama akun pengguna yang memerlukan binding peran.

Setelah binding peran dibuat, Anda dapat mengakses Prometheus API dengan nama pengguna login Anda.

Endpoint HTTP API

URL berikut adalah endpoint HTTP API untuk mengakses metrik di project platform-obs:

https://GDC_URL/PROJECT_NAME/cortex/prometheus/

Ganti kode berikut:

  • GDC_URL: URL organisasi Anda di GDC.
  • PROJECT_NAME: Nama project Anda.

Panggil endpoint API

Ikuti langkah-langkah berikut untuk mengakses endpoint Cortex API dari CLI dan kueri metrik:

  1. Pastikan Anda memenuhi prasyarat.
  2. Buka CLI.
  3. Gunakan alat curl untuk memanggil endpoint Cortex dan memperluas URL menggunakan https://prometheus.io/docs/prometheus/latest/querying/api/ standar untuk membuat kueri metrik. Contoh:

    curl https://console.org-1.zone1.google.gdch.test/alice/cortex/prometheus/api/v1/query?query=my_metric{cluster="org-1-system"}&time=2015-07-01T20:10:51.781Z
    

Anda akan mendapatkan output di CLI setelah menjalankan perintah. Format respons API adalah JSON.