Metrik dengan Prometheus & Grafana
Siapkan Prometheus untuk mengumpulkan metrik cluster dan aplikasi, lalu visualisasikan dengan Grafana.
Metrik dengan Prometheus & Grafana adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Kehebatan Metrik
Metrik adalah pengukuran numerik yang menjelaskan keadaan dan kinerja aplikasi serta infrastruktur Anda. Anggaplah metrik sebagai tanda vital bagi perangkat lunak Anda!
Metrik memberikan wawasan berharga tentang:
- Kinerja: Seberapa cepat aplikasi Anda merespons?
- Penggunaan Sumber Daya: Apakah server Anda kehabisan memori?
- Ketersediaan: Apakah layanan Anda aktif dan berjalan bagi pengguna?
Dengan melacak metrik, Anda dapat memahami tren, mendeteksi anomali, dan mengatasi masalah secara proaktif.
Berkenalan dengan Prometheus
Prometheus adalah sistem pemantauan sumber terbuka yang dirancang untuk keandalan dan skalabilitas. Prometheus merupakan alat penting dalam tumpukan observabilitas cloud-native.
Tugas utamanya adalah:
- Mengambil: Mengumpulkan metrik dari target yang dikonfigurasi (seperti aplikasi Anda).
- Menyimpan: Menyimpan metrik tersebut dalam basis data deret waktu.
- Melakukan kueri: Memungkinkan Anda mengajukan pertanyaan tentang data yang dikumpulkan.
Prometheus membantu Anda mendapatkan gambaran yang jelas tentang apa yang terjadi di dalam klaster Kubernetes.
Model "Scraping" Prometheus
Prometheus menggunakan model "pull" untuk mengumpulkan metrik. Alih-alih aplikasi mendorong data ke Prometheus, Prometheus secara aktif "mengambil" atau menarik metrik dari aplikasi tersebut.
Secara umum, prosesnya berlangsung sebagai berikut:
- Aplikasi Anda mengekspos metrik pada titik akhir HTTP tertentu (sering kali
/metrics). - Prometheus dikonfigurasi dengan daftar target (seperti IP dan port aplikasi Anda).
- Secara berkala, Prometheus mengirimkan permintaan HTTP ke titik akhir
/metricssetiap target. - Target merespons dengan metrik terkininya, lalu Prometheus menyimpannya.
Metrik: Pasangan Kunci-Nilai
Prometheus menyimpan data sebagai deret waktu: aliran nilai yang dilengkapi stempel waktu. Setiap deret waktu diidentifikasi secara unik oleh nama metrik dan sekumpulan pasangan kunci-nilai yang disebut label.
Contoh: http_requests_total{method="GET", path="/api"}
Prometheus memiliki jenis metrik inti:
- Counter: Metrik kumulatif yang hanya meningkat (misalnya, jumlah total permintaan).
- Gauge: Nilai yang dapat naik atau turun (misalnya, penggunaan CPU saat ini).
- Histogram/Ringkasan: Untuk mengambil sampel pengamatan dan menghitungnya dalam keranjang yang dapat dikonfigurasi (misalnya, durasi permintaan).
Membuat Aplikasi "Berbicara" dalam Metrik
Agar Prometheus dapat mengambil metrik, aplikasi Anda harus mengekspos metrik dalam format yang dipahami Prometheus. Biasanya, hal ini dilakukan melalui titik akhir HTTP.
Banyak bahasa pemrograman memiliki pustaka klien yang memudahkan instrumentasi kode Anda:
- Menambah penghitung saat terjadi peristiwa.
- Menetapkan gauge untuk keadaan saat ini.
- Mengamati durasi operasi.
Mari kita lihat contoh yang sangat sederhana tentang aplikasi yang mengekspos metrik penghitung dasar.
Aplikasi Python yang Mengekspos Metrik
Berikut aplikasi Flask Python kecil yang mengekspos metrik penghitung sederhana. Aplikasi ini menyimulasikan penghitungan kunjungan halaman.
Jalankan kode ini, lalu coba akses /metrics di peramban atau terminal Anda (misalnya, setelah menjalankannya, kunjungi http://localhost:5000/metrics).
from flask import Flask
from prometheus_client import Counter, generate_latest
import time
app = Flask(__name__)
c = Counter('my_app_requests_total', 'Total requests to my app')
@app.route('/')
def hello():
c.inc() # Increment the counter
return "Hello, CoddyKit!"
@app.route('/metrics')
def metrics():
return generate_latest().decode('utf-8')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)Prometheus di Klaster Anda
Di Kubernetes, menerapkan Prometheus secara efisien sering kali melibatkan Prometheus Operator. Operator ini membantu mengelola instans dan konfigurasi Prometheus.
Sumber daya Kubernetes utama untuk Prometheus:
- ServiceMonitor: Memberi tahu Prometheus di mana menemukan titik akhir metrik (misalnya, Service dan Pod mana yang harus diambil metriknya).
- PodMonitor: Mirip dengan ServiceMonitor, tetapi menargetkan Pod secara langsung.
Sumber daya ini memungkinkan Prometheus menemukan dan mengambil metrik dari aplikasi yang Anda terapkan secara otomatis.
Grafana: Maestro Dasbor
Sementara Prometheus mengumpulkan dan menyimpan metrik, Grafana adalah alat pilihan Anda untuk memvisualisasikannya. Grafana adalah aplikasi web analitik dan visualisasi interaktif sumber terbuka.
Grafana memungkinkan Anda untuk:
- Membuat dasbor yang indah dan informatif.
- Melakukan kueri terhadap beberapa sumber data (seperti Prometheus).
- Menyiapkan peringatan berdasarkan ambang metrik.
Grafana mengubah data metrik mentah menjadi wawasan yang dapat ditindaklanjuti.
Grafana & Prometheus: Duo yang Andal
Grafana tidak menyimpan data metrik itu sendiri; Grafana melakukan kueri terhadap data dari sumber data eksternal. Untuk memvisualisasikan metrik Kubernetes, Anda akan mengonfigurasi Prometheus sebagai sumber data di Grafana.
Langkah-langkah:
- Di Grafana, tambahkan sumber data baru.
- Pilih "Prometheus" sebagai jenisnya.
- Masukkan URL server Prometheus Anda.
- Mulai membuat dasbor menggunakan bahasa kueri Prometheus, PromQL!
Pasangan ini memberi Anda kendali penuh atas pemantauan klaster.
Uji Pengetahuan Anda!
Saatnya memeriksa pemahaman Anda tentang Prometheus dan Grafana!
Rangkuman: Metrik & Visualisasi
Kerja bagus! Dalam pelajaran ini, Anda telah mempelajari:
- Pentingnya metrics untuk observabilitas.
- Prometheus sebagai sistem andal untuk mengambil dan menyimpan metrik deret waktu.
- Bagaimana aplikasi mengekspos metrik agar dapat dikumpulkan oleh Prometheus.
- Grafana untuk membuat dasbor informatif dan memvisualisasikan data metrik Anda.
Memahami alat-alat ini sangat penting untuk menjaga aplikasi Kubernetes Anda tetap sehat dan berkinerja baik. Terus pelajari cara menginstrumentasikan aplikasi Anda sendiri!
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Metrik dengan Prometheus & Grafana” gratis?
Ya — teks lengkap “Metrik dengan Prometheus & Grafana” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Metrik dengan Prometheus & Grafana”?
Siapkan Prometheus untuk mengumpulkan metrik cluster dan aplikasi, lalu visualisasikan dengan Grafana. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?
Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Metrik dengan Prometheus & Grafana” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?
Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Logging dengan kubectl logs
- Metrik dengan Prometheus & Grafana
- Pemeriksaan Kesehatan: Probe Keaktifan & Kesiapan
- Pelacakan Terdistribusi dan Peristiwa