Grafana sebagai alat lain untuk pemantauan teknis produk perangkat lunak kami

Artikel lain dalam seri Logicify Monitoring Tools berbicara tentang Grafana. Kami menggunakan alat perangkat lunak ini untuk visualisasi dan analisis data dari proyek internal dan eksternal. Artikel ini dapat berguna untuk direktur teknis, pengembang, DevOps, administrator sistem, manajer proyek, serta semua pihak yang berkepentingan.


gambar


Apa itu Grafana?


Grafana adalah platform sumber terbuka untuk memvisualisasikan, memantau, dan menganalisis data. Alat ini, dikombinasikan dengan Graylog, adalah bagian dari sistem dua arah kami untuk memantau perilaku pengguna dan kinerja sistem . Grafana memungkinkan pengguna membuat dasbor dengan panel, yang masing-masing menampilkan indikator tertentu untuk jangka waktu tertentu. Setiap dasbor bersifat universal, sehingga dapat dikustomisasi untuk proyek tertentu atau memperhitungkan setiap pengembangan dan / atau kebutuhan bisnis.


Tim Logicify kami terutama menggunakan Grafana bersama dengan Elasticsearch dan InfluxDB, tetapi alat perangkat lunak ini mendukung banyak sumber data lainnya (Prometheus, MySQL, Postgres, dll.). Untuk setiap sumber data, Grafana menyediakan editor kueri khusus dan sintaksis khusus.


Ketentuan Grafana


  • Panel adalah elemen visualisasi dasar dari indikator yang dipilih. Grafana mendukung panel dengan grafik, status tunggal, tabel, klik-panas dan teks bebas, serta integrasi dengan plugin resmi dan yang dibuat komunitas (seperti peta dunia atau jam) dan aplikasi yang juga dapat divisualisasikan. Anda dapat menyesuaikan gaya dan format setiap panel; Semua panel dapat diseret ke lokasi baru, disusun ulang dan diubah ukurannya.
  • Dasbor - satu set panel terpisah yang ditempatkan dalam kisi dengan seperangkat variabel (misalnya, nama server, aplikasi, dan sensor). Dengan mengubah variabel, Anda dapat mengganti data yang ditampilkan di dasbor (misalnya, data dari dua server terpisah). Semua dasbor dapat dikustomisasi, serta bagian dan fragmen data yang disajikan di dalamnya sesuai dengan kebutuhan pengguna. Proyek Grafana melibatkan komunitas besar pengembang dan pengguna kode, sehingga ada banyak pilihan dasbor siap pakai untuk berbagai jenis data dan sumber.
  • Di dasbor, Anda dapat menggunakan anotasi untuk menampilkan acara tertentu di panel yang berbeda. Anotasi ditambahkan oleh kueri khusus di Elasticsearch; pada grafik, anotasi ditampilkan dengan garis merah vertikal. Saat Anda mengarahkan kursor pada anotasi, Anda bisa mendapatkan deskripsi acara dan tag, misalnya, untuk melacak respons server dengan kode kesalahan 5xx atau memulai ulang sistem. Berkat ini, Anda dapat dengan mudah membandingkan waktu, peristiwa tertentu dan konsekuensinya dalam aplikasi, dan memeriksa perilaku sistem.

Praktik Terbaik untuk Menggunakan Alat Grafana dengan Tim Logicify


Menggunakan Grafana dalam proyek internal


Untuk proyek internal kami , Internet of Things (solusi pemantauan iklim kantor), kami menghubungkan Grafana ke InfluxDB , database deret waktu, untuk memvisualisasikan perubahan iklim kantor dan meresponsnya. Satu set sensor mengukur suhu, kelembaban, tekanan atmosfer, dan tingkat CO2 di setiap zona kantor kami di Kherson; parameter-parameter ini dikumpulkan dan divisualisasikan dalam bentuk grafik Grafana pada monitor dapur besar dan online.


gambar
Dasbor Grafana dengan Area Kantor Logicify


Jadi kami terus memantau parameter kualitas udara, dan manajer kantor kami bereaksi terhadap perubahan: membuka jendela, jika level CO2 terlalu tinggi, menyalakan dan mematikan AC dan pelembap udara.


gambar
Dasbor Grafana dengan iklim kantor


Berkat grafik dan anotasi deret waktu yang ditampilkan di Grafana, kami menganalisis tren iklim mikro di kantor selama beberapa bulan dan musim. Kami juga menggunakan alat ini untuk memvisualisasikan beberapa widget dan informasi yang berguna (ramalan cuaca, nilai tukar mata uang, kalender internal) pada monitor dapur besar.


Cara menggunakan Grafana di aplikasi web khusus


Grafana + Graylog


Kami menggunakan alat Graylog untuk menyimpan log aplikasi web, mengelolanya, dan memantau kinerjanya baik pada tahap pengembangan maupun pada tahap operasi mereka. Grafana adalah alat yang mengubah majalah yang disimpan di Graylog menjadi bentuk visual untuk pemantauan analitis dan sistem. Untuk salah satu proyek kami saat ini, alat Grafana dapat disebut antarmuka pengguna untuk memuat dan memantau kinerja aplikasi web dan aliran klien. Alat Graylog dan Grafana ada secara independen satu sama lain, kami tidak membuat alat integrasi kompleks khusus untuk menghubungkan mereka satu sama lain. Karena Graylog menyimpan semua data log di Elasticsearch, salah satu sumber data Grafana, kami cukup menggunakan indeks Elasticsearch spesifik tempat log disimpan untuk menghubungkan Grafana ke Graylog.


Metrik apa yang dapat divisualisasikan dalam Grafana untuk aplikasi web?


Log teks sederhana atau pemberitahuan kesalahan tidak β€œmenarik” bagi Grafana karena tujuan utamanya adalah memvisualisasikan data dalam bentuk grafik, bagan, dan tabel. Kami menulis modul khusus untuk Django untuk mengumpulkan data yang ingin kami lacak untuk setiap permintaan yang diproses dan respons jaringan / karyawan. Data tidak hanya mencakup status keberhasilan / kegagalan, tetapi juga seperangkat bidang terstruktur (baik umum dan terkait dengan proyek), seperti:


  • versi aplikasi
  • pengidentifikasi unik dari setiap permintaan
  • waktu dan status respons
  • kode kesalahan (jika ada)
  • Alamat IP dari mana permintaan dikirim
  • informasi pengguna (email, nama pengguna untuk pengguna terdaftar, peran, izin)
  • perangkat, dll.

Django menempatkan catatan analitik terstruktur pengguna di Graylog, yang menyimpannya dalam aliran terpisah. Meskipun data ini dapat divisualisasikan menggunakan dashboard built-in Graylog, mereka tidak terlihat sebagus dashboard Grafana. Karena itu, kami memaksa Grafana untuk membaca data analitik ini dan memvisualisasikannya. Dengan demikian, kami memantau kinerja aplikasi dan mengunduh data baik secara waktu nyata maupun dalam retrospeksi.


gambar


Grafana sebagai alat debugging


Dasbor Grafana terutama membantu kami dalam debugging aplikasi. Jika klien akhir melaporkan masalah, Grafana memberi kami kesempatan untuk membedakan kesalahan pada sisi klien / server dari kesalahan nyata atau kesenjangan dalam logika aplikasi. Kami melacak semua permintaan web yang diprakarsai oleh klien (menggunakan alamat email), administrator aplikasi dan aplikasi itu sendiri untuk jangka waktu tertentu dan dengan metode pengecualian kami menemukan alasannya.


Kami juga melakukan debug dan memperbaiki kesalahan jika kami melihat ada anomali di dasbor dalam grafik pemuatan dan kinerja aplikasi. Contoh grafik Grafana berikut ini menunjukkan waktu respons untuk permintaan web selama periode waktu tertentu. Untuk setiap permintaan web, kami melacak waktu respons maksimum, minimum, dan rata-rata. Jika kami melihat permintaan yang membutuhkan waktu terlalu lama untuk diproses, kami menskalakan bagian tertentu dari grafik dan menyelidiki masalahnya.


gambar
Contoh Grafik Grafana Menampilkan Waktu Respons Web


Grafik lain menunjukkan beban sistem untuk periode waktu tertentu dan berguna untuk melacak lalu lintas. Jika kita melihat ledakan aktivitas yang tidak biasa, misalnya, setelah jam kerja atau pada akhir pekan, kita akan memeriksanya. Lonjakan semacam itu dapat disebabkan, misalnya, oleh perayap Google yang mengindeks konten situs web, atau oleh bot jahat yang memindai sistem kami untuk mengetahui kerentanan. Sekali lagi, setiap kasus diselidiki dan dipertimbangkan.


gambar
Contoh Grafana Grafik Menampilkan Unduhan Aplikasi


Grafana memiliki mekanisme pemberitahuan bawaan (misalnya, melalui email atau melalui pemberitahuan melalui Slack) sesuai dengan aturan tertentu. Kami tidak menggunakan fitur alat Grafana ini, karena kami memiliki semua pemberitahuan yang dikonfigurasi di Graylog . Namun, beberapa masalah dengan kinerja sistem hanya dapat dilihat setelah menjalankan program, misalnya, waktu respons yang sangat panjang terhadap permintaan web. Kami tidak akan menerima pemberitahuan Graylog tentang hal ini, tetapi anomali akan terlihat jelas pada grafik Grafana. Jadi, kedua alat saling melengkapi ketika kami menemukan beberapa masalah: pada tingkat tinggi kami memeriksa Grafana untuk memahami apa yang terjadi dan mengapa, dan kemudian menggali lebih dalam dengan Graylog menggunakan pengidentifikasi permintaan tertentu.


Tidak seperti Graylog, yang digunakan untuk aplikasi yang dikembangkan dan digunakan, Grafana hanya digunakan untuk aplikasi yang digunakan. Satu-satunya pengecualian saat menggunakan Grafana untuk aplikasi yang masih dalam tahap pengembangan adalah pengujian kinerja. Kami meniru boot sistem menggunakan JMeter, lalu periksa dasbor Grafana untuk melihat bagaimana reaksinya.


Grafana sebagai Alat Kecerdasan Bisnis


Selain tujuan pelacakan kinerja dan debugging, dasbor Grafana adalah alat yang ampuh untuk membuat keputusan bisnis yang terinformasi. Ketika dikonfigurasikan dengan benar (lebih disukai seiring dengan layanan Google Analytics), Grafana dapat memvisualisasikan analisis khusus perilaku pengguna dalam sistem dalam bentuk diagram lingkaran, histogram waktu, dan elemen grafik lainnya. Berdasarkan mereka, pihak-pihak yang tertarik pada produk dapat membuat keputusan tentang penskalaan aplikasi lebih lanjut, menambah atau menghapus beberapa fungsi dan meningkatkan siklus interaksi dengan pelanggan.


gambar
Contoh dasbor Grafana yang menampilkan perilaku pengguna dalam aplikasi e-commerce


Karena dasbor di atas lebih fokus pada bisnis, pengembang menggunakannya untuk keperluan internal, alih-alih, sebagai alat keamanan untuk melacak aliran pelanggan dalam aplikasi e-commerce: pendaftaran, otorisasi, pesanan ditempatkan selama periode waktu tertentu.


Berikut adalah 2 proyek dunia nyata di mana Grafana telah mampu meningkatkan kegunaan aplikasi web.


  • Dengan bantuan Grafana, kami secara teratur memantau status pesanan berkala dalam sistem dan memfilter pesanan yang gagal. Pesanan-pesanan ini didasarkan pada langganan, yaitu, dihasilkan dalam sistem setiap bulan, dan uang secara otomatis didebit dari rekening bank pelanggan. Kadang-kadang pembayaran gagal (tidak cukup uang / penolakan lembaga keuangan), dan kemudian administrator sistem memeriksa situasi dan menghubungi pelanggan untuk membuat ulang pesanan secara manual. Dengan demikian, tidak ada satu urutan pun yang tidak terlihat; pelanggan dan pemasok puas.
  • Menggunakan laporan yang dibuat menggunakan Grafana untuk aplikasi e-commerce, kami menemukan bahwa sebagian besar pelanggan baru meninggalkan halaman checkout, meskipun mereka sudah memiliki barang di keranjang mereka. Kesimpulan ini didukung oleh laporan layanan Google Analytics, oleh karena itu prosedur checkout dianalisis secara bertahap dan ditingkatkan: sekarang pengguna dapat melakukan pemesanan dalam 2 klik. Akibatnya, tingkat konversi pengunjung untuk pelanggan meningkat - keuntungan pemasok juga meningkat.

Grafana adalah komponen penting dari sistem pemantauan tim Logicify untuk proyek internal dan eksternal. Alat perangkat lunak ini adalah open source, plus komunitas pengembang yang besar dan aktif. Namun yang paling utama kami menyukai fleksibilitas - mendukung banyak sumber data dan membuatnya mudah untuk menyesuaikan dasbor dan panel.


Artikel terkait:


Source: https://habr.com/ru/post/id431122/


All Articles