Flazzo memiliki fokus utama untuk menambah nilai bisnis Anda.

Blog

Memulai Lokakarya Prometheus: Menjelajahi Pertanyaan Dasar

16832323-thumb.jpg
Blog

Memulai Lokakarya Prometheus: Menjelajahi Pertanyaan Dasar


Ingin beralih dari instrumentasi berpemilik? Apakah Anda tertarik dengan observabilitas open source, tetapi tidak memiliki pengetahuan untuk mempelajarinya? Lokakarya ini untuk Anda, dirancang untuk memperdalam pengetahuan dan pemahaman Anda tentang alat observabilitas open source yang tersedia untuk Anda saat ini.

Selami langsung ke bengkel langsung, gratis, online, serba mandiri yang memperkenalkan Anda ke Prometheus. Prometheus adalah perangkat pemantauan dan peringatan sistem sumber terbuka yang membantu Anda memulai hari ini dengan menemukan, mengumpulkan, dan menanyakan kemampuan pengamatan Anda. Selama lokakarya ini, Anda akan mempelajari apa itu Prometheus, apa yang bukan, menginstalnya, mulai mengumpulkan metrik, dan mempelajari semua yang perlu Anda ketahui untuk menjadi efektif dalam menjalankan Prometheus dalam tumpukan observasi Anda.

Sebelumnya saya membagikan a pengantar Prometheus, pemasangan Prometheus dan pengenalan bahasa kueri dalam bentuk lokakarya online gratis. Dalam artikel ini, Anda akan melanjutkan perjalanan dengan menjelajahi kueri dasar Prometheus menggunakan PromQL.

Perjalanan belajar Anda berlanjut di artikel ini dengan eksplorasi beberapa kueri PromQL dasar. Perhatikan bahwa artikel ini hanya ringkasan singkat, jadi silakan lihat lab lengkap ditemukan online di sini untuk menjelajahinya sendiri secara keseluruhan:

Berikut ini adalah gambaran singkat tentang apa yang ada di lab bengkel khusus ini. Setiap lab dimulai dengan tujuan. Dalam hal ini, cukup sederhana:

  • Lab ini mendalami penggunaan PromQL untuk menjelajahi kueri dasar sehingga Anda dapat menggunakannya untuk memvisualisasikan data metrik yang dikumpulkan.

Anda akan mulai dengan membiasakan diri dengan pemilihan metrik sambil mempelajari definisi dasar terminologi kueri metrik. Setiap kueri disajikan sehingga Anda dapat memotong dan menempelkannya ke browser ekspresi Prometheus Anda sendiri dan diikuti dengan keluaran sampel sehingga Anda dapat melihat apa yang dilakukan kueri tersebut.

Contoh-contoh ini dihasilkan pada sistem yang berjalan selama beberapa jam, memberi mereka lebih banyak warna dan keragaman saat merepresentasikan hasil data secara grafis daripada yang mungkin Anda lihat jika Anda bekerja dengan cepat dengan kecepatan Anda sendiri selama lokakarya ini. Ini tidak menghilangkan latihan; itu dimaksudkan untuk memberikan hasil contoh yang agak lebih luas daripada yang mungkin Anda lihat sendiri.

Selanjutnya, Anda akan mempelajari cara memfilter hasil kueri saat mempersempit kumpulan data yang dipilih menggunakan label metrik, juga dikenal sebagai dimensi metrik. Anda akan menjelajahi operator pencocokan, memfilter dengan ekspresi reguler, menggali vektor instan, vektor rentang, mempelajari jeda waktu, menjelajahi banyak cara untuk memvisualisasikan data Anda dalam grafik, mengambil langkah samping untuk membahas fungsi minus dan par, dan terakhir pelajari cara menggunakan matematika dalam kueri Anda.

Pemilihan data

Awal paling mendasar dari bahasa kueri apa pun adalah dapat memilih data dari kumpulan metrik Anda. Anda akan memulai lab ini dengan memahami terminologi dasar yang terkait dengan kueri metrik Anda, seperti:

  • Nama metrik – Kueri semua data deret waktu yang dikumpulkan untuk metrik ini
  • Label – Menggunakan satu atau lebih label yang ditetapkan akan memfilter keluaran metrik
  • Stempel waktu – Perbaiki kueri satu saat pada waktu pilihan Anda
  • Rentang waktu – Definisi kueri yang akan dipilih selama periode waktu tertentu
  • Waktu bergeser data – Mengatur kueri untuk memilih selama periode waktu sambil menambahkan offset dari saat kueri dieksekusi (melihat ke masa lalu)

Dengan menerapkan semua ini, Anda akan segera mulai memilih metrik berdasarkan nama, seperti metrik di bawah dari demo layanan yang Anda siapkan di lab sebelumnya:

demo_api_request_duration_seconds_count

Kueri ini, saat dimasukkan ke browser ekspresi Prometheus Anda, akan menghasilkan sesuatu seperti hasil kueri berikut:

Hasil kueri

Anda akan terus mempelajari cara memfilter menggunakan label dan menyempurnakan hasil kueri dan dimensi metrik Anda. Setelah beberapa iterasi, Anda akhirnya akan menemukan data yang Anda cari dengan filter kueri pemilihan berikut dengan beberapa label:

demo_api_request_duration_seconds_count{method="POST", path="/api/foo", status="500"}

Hasil akhirnya jauh lebih halus daripada di mana Anda memulai:

Hasil akhir yang halus

Ini menyimpulkan bagian kueri pemilihan dan memberi Anda pengalaman langsung dengan kueri pemilihan.

Lebih banyak cara untuk mendandani data Anda

Meskipun menggunakan operator sama dengan adalah salah satu cara untuk memilih dan memfilter data, ada cara lain untuk mendekatinya. Bagian selanjutnya meluangkan waktu untuk berbagi bagaimana Anda dapat menggunakan ekspresi reguler dalam kueri Anda. Ini berakhir dengan Anda mengetahui bahwa sejauh ini Anda telah melakukan kueri memilih nilai unik terakhir untuk semua data deret waktu yang ditemukan, lebih dikenal sebagai vektor instan.

Anda sekarang diperkenalkan dengan konsep a vektor jangkauan, atau kueri menggunakan fungsi yang memerlukan rentang nilai. Mereka memiliki penentu durasi dalam bentuk [number, unit]; misalnya, kueri berikut memilih penggunaan CPU semua pengguna pada menit terakhir:

demo_cpu_usage_seconds_total{mode="user"}[1m]

Ini menghasilkan tampilan berikut dari semua nilai yang ditemukan pada menit terakhir untuk metrik ini:

Nilai ditemukan pada menit terakhir dalam metrik ini

Selanjutnya, Anda akan mempelajari cara mengambil vektor rentang dan menerapkan offset waktu kecil untuk memeriksa jendela data di masa lalu, yang cukup umum dalam masalah pemecahan masalah setelah fakta.

Meskipun menyenangkan, salah satu hal paling umum yang ingin Anda lihat dalam data adalah bagaimana metrik tertentu berubah selama periode waktu tertentu. Ini dilakukan dengan menggunakan rate fungsi dan Anda akan menjelajahi ini dan pembantunya, the irate fungsi. Di bawah ini adalah kueri tarif:

rate(demo_api_request_duration_seconds_count{method="POST"}[1m])

Dan hasil yang sesuai dalam grafik:

Grafik hasil

Meskipun fungsi ini sejauh ini memiliki penghitung yang divisualisasikan sebagai grafik, Anda memiliki banyak jenis metrik lain yang ingin Anda jelajahi, seperti metrik pengukur. Anda akan menghabiskan waktu menjelajahi semua contoh ini dan menjalankan lebih banyak kueri untuk memvisualisasikan metrik pengukur.

Ini mengarah ke masalah yang sedikit lebih kompleks. Bagaimana dengan kueri di mana Anda ingin mengumpulkan data berdimensi tinggi ke dalam kueri Anda? Ini membutuhkan penyederhanaan dan pembuatan tampilan hasil data yang kurang detail dengan fungsi seperti sum, min, max, Dan avg. Ini tidak digabungkan dari waktu ke waktu, tetapi selama beberapa seri setiap saat.

Kueri berikut akan memberi Anda tampilan tabel dari semua dimensi yang Anda miliki pada waktu tertentu dengan metrik ini:

demo_api_request_duration_seconds_count{job="services"}

Hasilnya menunjukkan bahwa metrik ini sangat dimensional:

Hasil menunjukkan metrik yang sangat berdimensi

Dalam contoh ini, Anda akan menggunakan sum tinjau semua dimensi sebelumnya selama lima menit, lalu tinjau semua data deret waktu yang diambil:

sum(
  rate(demo_api_request_duration_seconds_count{job="services"}[5m])
)

Grafik yang dihasilkan menunjukkan jumlah dari metrik yang sangat berdimensi:

Grafik yang menunjukkan jumlah metrik yang sangat berdimensi

Anda akan mengerjakan daftar lengkap fungsi agregat, menguji sebagian besar fungsi tersebut dalam kueri sampel langsung menggunakan penyiapan demo untuk menghasilkan visualisasi pengumpulan data deret waktu Anda.

Anda akan mengakhiri lokakarya ini dengan belajar menerapkan aritmatika atau matematika pada pertanyaan Anda. Anda akan menjumlahkan semuanya dengan kueri untuk menghitung penggunaan CPU per mode dibagi dengan jumlah inti untuk menemukan nilai penggunaan per inti dari 0 hingga 1. Agar lebih menarik, metrik yang terlibat memiliki dimensi yang tidak kompatibel, jadi Anda akan memerintahkannya untuk mengelompokkan menurut dimensi label ekstra.

Apakah semua ini terdengar seperti masalah rumit yang Anda tidak tahu cara menyelesaikannya? Jangan khawatir, seluruh lab ini membangun Anda dari bawah hingga mencapai titik tersebut. Anda akan menjalankan kueri ini untuk menyelesaikan masalah ini dan bersiap untuk lokakarya kueri lanjutan berikutnya yang akan datang!

Apakah Anda melewatkan lokakarya sebelumnya?

Ini adalah salah satu laboratorium terbesar bengkel online gratis. Jangan ragu untuk memulai dari awal lokakarya ini di sini jika Anda melewatkan sesuatu sebelumnya:

Anda selalu dapat maju dengan kecepatan Anda sendiri dan kembali kapan saja saat Anda maju melalui lokakarya ini. Hentikan dan kemudian mulai ulang Perses untuk melanjutkan dari bagian terakhir yang Anda tinggalkan.

Bersambung

Saya akan memandu Anda melalui lab berikutnya dalam lokakarya ini tempat Anda akan terus belajar tentang PromQL dan menggali lebih dalam kueri lanjutan untuk mendapatkan wawasan yang lebih kompleks tentang metrik yang Anda kumpulkan. Nantikan materi yang lebih praktis untuk membantu Anda dalam perjalanan pengamatan cloud-native.