Metrik dengan Prometheus & Grafana
Sediakan Prometheus untuk mengumpulkan metrik kelompok dan aplikasi, kemudian visualisasikannya dengan Grafana.
Metrik dengan Prometheus & Grafana ialah pelajaran Kem Intensif DevOps percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kem Intensif DevOps, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.
Kuasa Metrik
Metrik ialah ukuran berangka yang menerangkan keadaan dan prestasi aplikasi serta infrastruktur anda. Anggaplah metrik sebagai tanda vital bagi perisian anda!
Metrik memberikan gambaran berharga tentang:
- Prestasi: Seberapa pantas aplikasi anda memberikan respons?
- Penggunaan Sumber: Adakah pelayan anda kehabisan memori?
- Ketersediaan: Adakah perkhidmatan anda tersedia dan berjalan untuk pengguna?
Dengan menjejaki metrik, anda boleh memahami arah aliran, mengesan anomali dan menyelesaikan masalah secara proaktif.
Mengenali Prometheus
Prometheus ialah sistem pemantauan sumber terbuka yang direka bentuk untuk kebolehpercayaan dan kebolehskalaan. Ia merupakan alat penting dalam susunan pemerhatian asli awan.
Tugas utamanya ialah:
- Mengikis: Mengumpulkan metrik daripada sasaran yang dikonfigurasikan (seperti aplikasi anda).
- Menyimpan: Menyimpan metrik ini dalam pangkalan data siri masa.
- Membuat pertanyaan: Membolehkan anda mengemukakan soalan tentang data yang dikumpulkan.
Prometheus membantu anda mendapatkan gambaran jelas tentang perkara yang berlaku dalam kelompok Kubernetes anda.
Model "Pengikisan" Prometheus
Prometheus menggunakan model "tarik" untuk mengumpulkan metrik. Daripada aplikasi menolak data kepada Prometheus, Prometheus secara aktif "mengikis" atau menarik metrik daripadanya.
Beginilah cara ia biasanya berfungsi:
- Aplikasi anda mendedahkan metrik pada titik akhir HTTP tertentu (selalunya
/metrics). - Prometheus dikonfigurasikan dengan senarai sasaran (seperti IP dan port aplikasi anda).
- Pada selang masa tetap, Prometheus menghantar permintaan HTTP kepada titik akhir
/metricssetiap sasaran. - Sasaran memberikan respons dengan metrik semasanya, yang kemudiannya disimpan oleh Prometheus.
Metrik: Pasangan Kunci-Nilai
Prometheus menyimpan data sebagai siri masa: aliran nilai yang mempunyai cap masa. Setiap siri masa dikenal pasti secara unik melalui nama metrik dan sekumpulan pasangan kunci-nilai yang dipanggil label.
Contoh: http_requests_total{method="GET", path="/api"}
Prometheus mempunyai jenis metrik teras:
- Kaunter: Metrik terkumpul yang hanya meningkat (contohnya, jumlah permintaan).
- Tolok: Nilai yang boleh meningkat atau menurun (contohnya, penggunaan CPU semasa).
- Histogram/Ringkasan: Untuk mengambil sampel pemerhatian dan menghitungnya dalam kelompok yang boleh dikonfigurasikan (contohnya, tempoh permintaan).
Membuat Aplikasi "Bercakap" dalam Metrik
Untuk membolehkan Prometheus mengikis metrik, aplikasi anda perlu mendedahkannya dalam format yang difahami oleh Prometheus. Ini biasanya dilakukan melalui titik akhir HTTP.
Banyak bahasa pengaturcaraan mempunyai pustaka pelanggan yang memudahkan anda melengkapkan kod dengan instrumentasi:
- Tingkatkan kaunter apabila peristiwa berlaku.
- Tetapkan tolok untuk keadaan semasa.
- Perhatikan tempoh operasi.
Mari kita lihat contoh yang sangat ringkas bagi aplikasi yang mendedahkan metrik kaunter asas.
Aplikasi Python yang Mendedahkan Metrik
Ini ialah aplikasi Flask Python kecil yang mendedahkan metrik kaunter mudah. Aplikasi ini mensimulasikan pengiraan paparan halaman.
Jalankan kod ini, kemudian cuba akses /metrics dalam pelayar atau terminal anda (contohnya, selepas menjalankannya, lawati 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 dalam Kelompok Anda
Dalam Kubernetes, penggunaan Prometheus dengan cekap selalunya melibatkan Prometheus Operator. Operator ini membantu mengurus tika dan konfigurasi Prometheus.
Sumber Kubernetes utama untuk Prometheus:
- ServiceMonitor: Memberitahu Prometheus *di mana* hendak mencari titik akhir metrik (contohnya, Perkhidmatan dan Pod yang hendak dikikis).
- PodMonitor: Serupa dengan ServiceMonitor tetapi menyasarkan Pod secara langsung.
Sumber ini membolehkan Prometheus menemui dan mengikis metrik daripada aplikasi yang digunakan secara automatik.
Grafana: Maestro Papan Pemuka
Walaupun Prometheus mengumpulkan dan menyimpan metrik, Grafana ialah alat utama anda untuk menggambarkannya. Ia merupakan aplikasi web analitik dan visualisasi interaktif sumber terbuka.
Grafana membolehkan anda:
- Mencipta papan pemuka yang cantik dan bermaklumat.
- Membuat pertanyaan kepada berbilang sumber data (seperti Prometheus).
- Menyediakan amaran berdasarkan ambang metrik.
Grafana mengubah data metrik mentah menjadi gambaran yang boleh diambil tindakan.
Grafana dan Prometheus: Gandingan Berkuasa
Grafana tidak menyimpan data metrik itu sendiri; ia membuat pertanyaan kepada data daripada sumber data luaran. Untuk menggambarkan metrik Kubernetes anda, konfigurasikan Prometheus sebagai sumber data dalam Grafana.
Langkah-langkah:
- Dalam Grafana, tambah sumber data baharu.
- Pilih "Prometheus" sebagai jenisnya.
- Berikan URL pelayan Prometheus anda.
- Mula membina papan pemuka menggunakan bahasa pertanyaan Prometheus, PromQL!
Gandingan ini memberikan anda kawalan penuh terhadap pemantauan kelompok anda.
Uji Pengetahuan Anda!
Masa untuk menyemak pemahaman anda tentang Prometheus dan Grafana!
Imbas Kembali: Metrik dan Visualisasi
Syabas! Dalam pelajaran ini, anda telah mempelajari:
- Kepentingan metrik untuk pemerhatian.
- Prometheus sebagai sistem berkuasa untuk mengikis dan menyimpan metrik siri masa.
- Cara aplikasi mendedahkan metrik untuk dikumpulkan oleh Prometheus.
- Grafana untuk mencipta papan pemuka yang bermaklumat dan menggambarkan data metrik anda.
Memahami alat ini amat penting untuk memastikan aplikasi Kubernetes anda sihat dan berprestasi baik. Teruskan meneroka cara melengkapkan aplikasi anda sendiri dengan instrumentasi!
Pelajari Kem Intensif DevOps dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 142
- Pelajaran
- 568
Soalan Lazim
Adakah pelajaran “Metrik dengan Prometheus & Grafana” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kem Intensif DevOps, termasuk “Metrik dengan Prometheus & Grafana”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Metrik dengan Prometheus & Grafana”?
Sediakan Prometheus untuk mengumpulkan metrik kelompok dan aplikasi, kemudian visualisasikannya dengan Grafana. Anda berlatih Kem Intensif DevOps menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Kem Intensif DevOps?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Kem Intensif DevOps di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Metrik dengan Prometheus & Grafana” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kem Intensif DevOps ini?
Ya. Setiap pelajaran Kem Intensif DevOps menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Pengelogan dengan kubectl logs
- Metrik dengan Prometheus & Grafana
- Pemeriksaan Kesihatan: Prob Keaktifan & Kesediaan
- Penjejakan Teragih dan Peristiwa