Pengantar Prometheus dan Grafana

Prometheus adalah open-source, sistem pemantauan berbasis metrik. Itu mengumpulkan data dari layanan dan host dengan mengirimkan permintaan HTTP pada titik akhir metrik. Itu kemudian menyimpan hasilnya dalam database deret waktu dan membuatnya tersedia untuk analisis dan peringatan.

Mengapa memantau?

  • Mengaktifkan peringatan saat terjadi kesalahan, sebaiknya sebelum terjadi kesalahan. Sehingga seseorang dapat melihatnya.
  • Ini memberikan wawasan untuk mengaktifkan analisis, debugging, dan penyelesaian masalah.
  • Ini memungkinkan Anda untuk melihat tren/perubahan dari waktu ke waktu. Misalnya, berapa banyak sesi aktif pada waktu tertentu. Ini membantu dalam keputusan desain dan perencanaan kapasitas.

Pemantauan biasanya berkaitan dengan peristiwa. Suatu peristiwa dapat mencakup menerima permintaan HTTP, mengirim respons, membaca dari disk, login pengguna. Pemantauan sistem dapat mencakup pembuatan profil, logging, pelacakan, metrik, peringatan & visualisasi.

Pemantauan Blackbox vs. Whitebox

Pemantauan termasuk dalam dua kategori utama:

Pemantauan kotak hitam

Dalam pemantauan Blackbox, pemantauan berada di tingkat aplikasi atau host seperti yang diamati dari luar. Ini bisa sangat membatasi.

Pemantauan kotak putih

Pemantauan whitebox berarti memantau internal layanan. Itu akan memaparkan data tentang keadaan dan kinerja komponen internal.

Empat sinyal emas

Menurut Googlejika Anda hanya dapat mengukur empat metrik sistem yang menghadap pengguna, fokuskan pada empat berikut, yang disebut Empat sinyal emas:

#1. Latensi

Waktu yang diperlukan untuk melayani permintaan-berhasil atau gagal. Penting untuk melacak tidak hanya permintaan yang berhasil tetapi juga permintaan yang gagal.

  Cara Memaksa Hasil Pencarian Google Dari AS

#2. Lalu lintas

Ukuran berapa banyak permintaan ditempatkan pada sistem Anda. Untuk layanan web, ini biasanya permintaan HTTP per detik.

#3. Kesalahan

Tingkat permintaan yang gagal.

#4. Kejenuhan

Seberapa lengkap layanan Anda. Peningkatan latensi sering kali merupakan indikator kejenuhan yang penting. Banyak sistem mengalami penurunan kinerja jauh sebelum mencapai pemanfaatan 100%.

Jenis metrik Prometheus

Metrik Prometheus terdiri dari empat jenis utama:

#1. Menangkal

Nilai counter akan selalu meningkat. Itu tidak pernah bisa berkurang, tetapi bisa diatur ulang ke nol. Jadi, jika scrape gagal, itu hanya berarti ada titik data yang terlewatkan. Peningkatan kumulatif akan tersedia pada pembacaan berikutnya. Contoh:

  • Jumlah total permintaan HTTP yang diterima
  • Jumlah pengecualian.

#2. Mengukur

Pengukur adalah snapshot pada titik waktu tertentu. Itu bisa meningkat atau menurun. Jika pengambilan data gagal, Anda kehilangan sampel; pengambilan berikutnya mungkin menampilkan nilai yang berbeda: contoh ruang disk, penggunaan memori.

#3. Histogram

Pengamatan sampel histogram dan menghitungnya dalam keranjang yang dapat dikonfigurasi. Mereka digunakan untuk hal-hal seperti durasi permintaan atau ukuran respons. Misalnya, Anda dapat mengukur durasi permintaan untuk permintaan HTTP tertentu. Histogram akan memiliki sekumpulan bucket, misalnya 1 md, 10 md, dan 25 md. Daripada menyimpan setiap durasi untuk setiap permintaan, Prometheus akan menyimpan frekuensi permintaan yang termasuk dalam keranjang tertentu.

#4. Ringkasan

Mirip dengan pengamatan sampel histogram, biasanya durasi permintaan atau ukuran respons. Ini akan memberikan jumlah total pengamatan dan jumlah semua nilai yang diamati, memungkinkan Anda untuk menghitung rata-rata nilai yang diamati. Misalnya, dalam satu menit, Anda memiliki tiga permintaan yang memerlukan waktu 2,3,4 detik. Jumlahnya adalah 9, dan hitungannya adalah 3. Latensinya adalah 3 detik.

Komponen ekosistem Prometheus

Server Prometheus

Mengumpulkan metrik, menyimpannya, dan menyediakannya untuk kueri, mengirimkan peringatan berdasarkan metrik yang dikumpulkan.

Menggores

Prometheus adalah sistem berbasis tarikan. Untuk mengambil metrik, Prometheus mengirimkan permintaan HTTP yang disebut scrape. Ini mengirimkan goresan ke target berdasarkan konfigurasinya.

  8 Pembuat Resume Premium untuk Membuat Resume Profesional yang Kuat

Setiap target (ditentukan secara statis, atau ditemukan secara dinamis) dikikis pada interval reguler (interval gesekan). Setiap gesekan membaca titik akhir HTTP /metrics untuk mendapatkan status metrik klien saat ini dan mempertahankan nilai dalam basis data deret waktu Prometheus.

Ada lebih banyak database deret waktu untuk solusi pemantauan yang mungkin ingin Anda jelajahi.

Perpustakaan klien

Untuk memantau layanan, Anda perlu menambahkan instrumentasi ke kode Anda. Ada pustaka klien yang tersedia untuk semua bahasa dan runtime populer. Dengan menggunakan pustaka ini, setelah Anda menambahkan beberapa baris kode, kode Anda dapat mulai menampilkan metrik. Ini disebut instrumentasi langsung. Pustaka ini memungkinkan Anda untuk menentukan metrik internal dan juga memaparkannya melalui titik akhir HTTP. Saat Prometheus menghapus titik akhir HTTP metrik, pustaka klien mengirimkan metrik ke server.

Pustaka klien resmi ditawarkan oleh Prometheus untuk Go, Java, Python, dan Ruby. Prometheus memiliki ekosistem terbuka. Ada juga pustaka klien buatan komunitas yang tersedia untuk C, PHP, Node.js, C#/.NET, dan banyak lainnya.

Eksportir

Banyak aplikasi memaparkan metrik dalam format non-Prometheus. Untuk ini dan untuk aplikasi yang tidak Anda miliki atau yang Anda tidak memiliki akses ke kodenya, Anda tidak dapat menambahkan instrumentasi secara langsung. Misalnya server MySQL, Kafka, JMX, HAProxy, dan NGINX. Dalam skenario ini, Anda memanfaatkan eksportir.

Eksportir adalah alat yang Anda gunakan bersama dengan aplikasi yang Anda inginkan dari metrik. Eksportir bertindak seperti proxy antara aplikasi dan Prometheus. Ini akan menerima permintaan dari server Prometheus, mengumpulkan data dari log akses, log kesalahan aplikasi, mengubahnya menjadi format yang benar, dan akhirnya kembali ke server Prometheus.

Beberapa eksportir populer adalah:

  • Windows – untuk metrik server Windows
  • Node – untuk metrik server Linux
  • Kotak hitam – untuk metrik kinerja DNS dan Situs Web
  • JMX – untuk metrik aplikasi berbasis Java
  Cara Mentransmisikan Video Atau Gambar Dari Google Drive Dan Dropbox

Setelah aplikasi diinstrumentasi, atau pengekspor sudah ada, Anda perlu memberi tahu Prometheus, di mana mereka berada. Ini dapat dilakukan dengan menggunakan konfigurasi statis. Dalam kasus lingkungan yang dinamis, hal ini tidak dapat dilakukan; oleh karena itu penemuan layanan digunakan.

Memperingatkan

Peringatan dengan Prometheus terdiri dari dua bagian –

Aturan peringatan mengirim peringatan ke Alertmanager.

Alertmanager kemudian mengelola peringatan tersebut. Itu mengirimkan pemberitahuan menggunakan banyak integrasi out-of-the-box seperti email, Slack, Hipchat, dan PagerDuty. Alertmanager juga dapat melakukan pembungkaman atau agregasi untuk mengurangi jumlah notifikasi.

Berikut adalah panduan untuk memonitor server Linux menggunakan Prometheus dan Dashboard.

Memvisualisasikan dengan Dasbor

Prometheus memiliki sejumlah API yang dengannya kueri PromQL dapat menghasilkan data mentah untuk visualisasi.

Meskipun Prometheus menyertakan browser ekspresi yang dapat digunakan untuk kueri ad-hoc, alat terbaik yang tersedia adalah Grafana. Grafana sepenuhnya terintegrasi dengan Prometheus dan dapat menghasilkan berbagai macam dasbor.

Anda perlu mengonfigurasi Prometheus sebagai sumber data untuk Grafana.

Anda dapat menambahkan dasbor dengan:

  • Mengimpor dasbor buatan komunitas
  • Membangun milik Anda sendiri
  • Menggunakan dasbor yang telah ditentukan sebelumnya.

Ini adalah tampilan dasbor pengekspor node yang telah ditentukan sebelumnya:

Grafana memiliki modul worldPing yang memungkinkan Anda memantau situs dan metrik kinerja DNS di seluruh dunia.

Ringkasan

Prometheus memiliki persyaratan yang sangat sedikit. Ini bisa sangat sederhana untuk dijalankan karena merupakan biner tunggal dengan file konfigurasi. Itu dapat menangani ribuan target dan menelan jutaan sampel per detik. Prometheus dirancang untuk melacak keseluruhan sistem, kesehatan, perilaku sistem.

Grafana adalah alat terbaik yang tersedia untuk visualisasi metrik dan terintegrasi dengan mulus Prometheus.