Apa itu Prometheus?

Prometheus adalah perangkat open source untuk mengelola pemantauan dan pemberitahuan, yang semakin populer seiring dengan pertumbuhan Kubernetes. Prometheus yang awalnya dibangun di SoundCloud ini berasal dari project sistem pemantauan di Google yang disebut Borgmon.

Prometheus adalah model terdepan dalam penggunaan pendekatan berbasis pull untuk mengumpulkan metrik dari aplikasi dan infrastruktur. Artinya, Prometheus akan secara berkala mengirimkan permintaan ke target dan metrik yang dikumpulkan kemudian disimpan dalam database deret waktu. Dalam instance Prometheus yang dikelola sendiri, Anda menyediakan infrastruktur untuk mengumpulkan, menyimpan, dan membuat kueri metrik. Dalam Prometheus versi terkelola, vendor menyediakan semua infrastruktur dan Perjanjian Tingkat Layanan (SLA) untuk waktu beroperasi layanan. 

Prometheus menyediakan bahasa kueri yang disebut PromQL untuk mengkueri data deret waktu. Ada banyak project yang memanfaatkan PromQL, termasuk Grafana dan Alertmanager, untuk membantu tugas analisis dan operasional seperti membuat visualisasi data, membuat pemberitahuan, serta menskalakan infrastruktur pemantauan.  

Apa fungsi Prometheus?

Prometheus digunakan untuk mengumpulkan metrik dari aplikasi dan infrastruktur Anda. Metrik ini dapat digunakan untuk melacak kondisi sistem, mengidentifikasi potensi masalah, dan memecahkan masalah.

Apa saja keunggulan Prometheus?

Berikut ini beberapa manfaat khusus menggunakan Prometheus:

  • Keterbukaan: Prometheus adalah aplikasi software open source, bagian dari Cloud Native Computing Foundation (CNCF), dan tersedia secara gratis.
  • Keandalan: Prometheus memiliki performa andal dan rekam jejak yang terbukti dalam lingkungan produksi di beberapa perusahaan terbesar di dunia.
  • Dukungan komunitas: Prometheus memiliki komunitas besar dan aktif yang memberikan dukungan, dokumentasi, dan peningkatan kualitas software. Prometheus juga terintegrasi dengan beberapa alat lain, yang memungkinkan Anda memantau sistem dan infrastruktur serta memvisualisasikan data.
  • Berfungsi baik dengan Kubernetes: Sebagai solusi pemantauan default de-facto untuk Kubernetes, sebagian besar aplikasi pihak ketiga sudah memiliki instrumentasi untuk metrik Prometheus.
  • Berfungsi di mana saja: Meski Prometheus paling banyak digunakan pada deployment Kubernetes, alat ini juga dapat digunakan untuk VM dan sejumlah lingkungan serverless.

Apa saja komponen Prometheus? 

  • Server Prometheus: Komponen sentral dari sistem pemantauan Prometheus. Library ini menyimpan data deret waktu dan mengekspos HTTP API untuk membuat kueri dan memberikan pemberitahuan terkait data tersebut.
  • Pengekspor Prometheus: Agen software yang mengumpulkan metrik dari berbagai sistem dan mengeksposnya ke Prometheus.
  • Alertmanager: Layanan yang menerima pemberitahuan dari Prometheus dan mengarahkannya ke orang atau sistem yang sesuai.
  • Federasi Prometheus: Fitur yang memungkinkan beberapa server Prometheus berbagi data.
  • Prometheus Pushgateway: Komponen yang memungkinkan layanan mendorong metrik ke Prometheus tanpa harus melakukan scraping. Kemampuan ini paling cocok untuk pekerjaan jangka pendek.
  • Pengekspor blackbox Prometheus: Layanan yang dapat digunakan untuk memantau ketersediaan endpoint HTTP, TCP, dan DNS.

Bagaimana cara Prometheus mengumpulkan metrik?

Prometheus menggunakan model pull untuk mengumpulkan metrik, yang berarti bahwa server Prometheus melakukan polling pada sistem atau aplikasi yang dipantau untuk pengumpulan metrik. Hal ini berbeda dengan model push, yang digunakan oleh banyak sistem pemantauan lainnya, yang memungkinkan Anda mengubah kode aplikasi untuk mengirimkan metrik ke server secara berkala. 

Model pull tidak mengharuskan sistem atau aplikasi yang dipantau untuk mengetahui server Prometheus, sehingga dapat ditambahkan ke sistem pemantauan tanpa membuat perubahan pada kode aplikasi. Model pull hanya mengumpulkan metrik saat dibutuhkan, sehingga Prometheus tidak memboroskan resource dengan mengumpulkan metrik yang tidak digunakan.

Selain itu, Prometheus dapat menemukan sumber data secara otomatis melalui cara berikut: 

  • Penemuan layanan: Prometheus dapat menggunakan berbagai mekanisme penemuan layanan untuk menemukan host yang menjalankan layanan yang mengekspos metrik. Misalnya, Prometheus dapat menggunakan Kubernetes API untuk menemukan pod yang menjalankan pengekspor Prometheus.
  • Konfigurasi statis: Anda juga dapat mengonfigurasi Prometheus secara statis untuk melakukan scraping pada resource tertentu. Hal ini berguna untuk resource yang tidak dapat ditemukan dengan cara lain.
  • Penemuan file: Prometheus juga dapat menemukan resource dengan mencari file yang berisi metrik. Misalnya, Prometheus dapat menemukan file yang dihasilkan oleh collectd atau Nagios.

Setelah menemukan resource, Prometheus akan melakukan scraping pada resource secara berkala untuk mengumpulkan metrik. Metrik tersebut kemudian disimpan dalam database Prometheus, yang memfasilitasi pembuatan kueri dan visualisasi metrik.

Apa saja empat jenis metrik Prometheus?

  • Penghitung (counter) melacak nilai kumulatif yang hanya dapat bergerak naik. Penghitung sering digunakan untuk melacak permintaan yang dilayani, error, dan byte yang ditransfer.
  • Alat pengukur (gauge) melacak rasio yang dapat naik atau turun. Paling sering digunakan untuk mengukur rasio per detik. Alat ini sering digunakan untuk melacak penggunaan memori, penggunaan CPU, dan kapasitas disk.
  • Histogram melacak distribusi nilai. Histogram sering digunakan untuk melacak latensi permintaan dan ukuran respons.
  • Ringkasan mirip dengan histogram, tetapi juga melacak kuantil. Hal ini membuatnya lebih berguna untuk mengidentifikasi pencilan dan memahami distribusi nilai secara keseluruhan.

Apa yang dimaksud dengan PromQL?

PromQL adalah bahasa kueri yang canggih dan fleksibel untuk metrik yang dikumpulkan oleh Prometheus yang dapat digunakan untuk membuat grafik, tabel, dan pemberitahuan ad-hoc.

PromQL menggunakan bahasa kueri fungsional yang memungkinkan pengguna memilih dan menggabungkan data deret waktu secara real time. Hasil ekspresi dapat ditampilkan sebagai grafik, dilihat sebagai data tabulasi di browser ekspresi Prometheus, atau digunakan oleh sistem eksternal melalui HTTP API. 

Berikut adalah beberapa fungsi utama Prometheus dan PromQL:

  • Memantau kondisi aplikasi dan infrastruktur: Prometheus mengumpulkan metrik dan pemberitahuan tentang potensi masalah
  • Mengidentifikasi potensi masalah: Prometheus membandingkan metrik saat ini dengan data historis dan memberikan pemberitahuan tentang penyimpangan yang signifikan
  • Melakukan pemecahan masalah: Prometheus memberikan tampilan mendetail tentang status sistem dan memungkinkan pengguna melihat perincian metrik dan resource tertentu untuk mengidentifikasi akar penyebab masalah
  • Memvisualisasikan data: Prometheus menggunakan bahasa kueri PromQL untuk membuat kueri data deret waktu, lalu menampilkan hasilnya dalam berbagai format, termasuk grafik, tabel, dan pemberitahuan
  • Membuat pemberitahuan: Prometheus menggunakan bahasa kueri PromQL untuk membuat kueri data deret waktu, lalu mengirimkan notifikasi saat hasilnya memenuhi kondisi tertentu
  • Membuat visualisasi di alat pihak ketiga: Semua frontend yang kompatibel dengan Prometheus Query API, seperti Grafana atau Kiali, dapat mengkueri server Prometheus dan menampilkan data

Contoh kueri PromQL

Berikut adalah beberapa contoh kueri PromQL:

Penggunaan CPU rata-rata per detik

Untuk mendapatkan penggunaan CPU rata-rata per detik untuk aplikasi tertentu, Anda dapat menggunakan kueri berikut:

kueri penggunaan CPU per detik promql

Jumlah permintaan endpoint

Untuk mendapatkan jumlah permintaan yang telah dibuat ke endpoint tertentu, Anda dapat menggunakan kueri berikut:

kueri promql untuk jumlah permintaan endpoint

Jumlah error permintaan endpoint

Untuk mendapatkan jumlah total error yang ditampilkan dari endpoint tertentu, Anda dapat menggunakan kueri berikut:

contoh kueri error permintaan endpoint promql

Mengatasi tantangan bisnis Anda dengan Google Cloud

Pelanggan baru mendapatkan kredit gratis senilai $300 untuk dibelanjakan di Google Cloud.
Hubungi spesialis penjualan Google Cloud untuk membahas tantangan unik Anda secara lebih mendetail.
Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
Konsol
Google Cloud