Memantau Produk Atlassian dengan Prometheus

Pendahuluan


Halo semuanya! Hari ini kita akan berbicara tentang pemantauan real-time dari produk Atlassian .

Pertama, mari kita tentukan apa itu pemantauan dan mengapa itu diperlukan untuk produk-produk Atlassian .

Pemantauan program digunakan untuk melacak kemajuan dan hasil suatu program. Dengan kata lain, ini adalah proses yang secara real time dapat menampilkan informasi tentang status produk perangkat lunak.

Kapan itu berguna untuk produk Atlassian ?

Perhatikan contoh-contoh berikut:

  • Anda ingin tahu bagaimana memperbarui produk atau plugin mempengaruhi kinerja sistem;
  • Anda ingin tahu tentang keadaan besi dan memori dalam berbagai kondisi dan pada titik waktu tertentu. Misalnya, bagaimana meningkatkan jumlah pengguna atau mengubah waktu hari mempengaruhi sistem;
  • Anda ingin menonton seberapa aktif sistem secara keseluruhan digunakan. Misalnya, jumlah total tugas di Jira atau dalam 1 jam;
  • Anda ingin menetapkan pengingat pada tanggal kedaluwarsa lisensi;
  • Anda ingin mengetahui jumlah ruang disk yang digunakan untuk menyimpan dokumen.

Saya juga ingin tidak hanya menerima informasi dalam bentuk yang disiapkan, tetapi juga dapat mengirim pemberitahuan jika sesuatu terjadi sesuai dengan skenario yang salah. Di sini Prometheus dan pengekspornya untuk produk-produk Atlassian akan membantu kami.

Arsitektur Solusi


Prometheus adalah alat untuk memantau puluhan ribu layanan secara bersamaan. Server Prometheus membaca target pada interval yang Anda tentukan untuk mengumpulkan metrik dan menyimpannya dalam database deret waktu. Untuk mengumpulkan metrik, model tarikan digunakan. Selain itu, ada komponen Alert Manager yang dapat mengirim pemberitahuan ke berbagai saluran jika aturan tertentu berdasarkan metrik telah berfungsi. Anda dapat menemukan informasi terperinci dalam bahasa Rusia di sini dan di sini .

Eksportir Prometheus adalah agen yang mengumpulkan metrik langsung dari entitas (server sebagai keseluruhan atau aplikasi tertentu) yang perlu dipantau. Prometheus memiliki opsi ekspansi yang kaya, jadi ada eksportir untuk sebagian besar aplikasi populer.

[jira | pertemuan | bitbucket | bamboo] _exporter berfungsi sebagai berikut:

  • Mengambil data dari basis data produk
  • Mengambil data menggunakan Java API standar
  • Menambahkan filter ke permintaan HTTP
  • mengumpulkan metrik jmx.

Contoh instalasi cepat Prometheus / Grafana di Docker dilaksanakan oleh Stefan Prodan dan tersedia di sini .

Instalasi dan konfigurasi eksportir


Setelah Anda menginstal plugin , Anda segera mendapatkan tautan untuk metrik: baseUrl / plugins / servlet / prometheus / metrics . Juga dimungkinkan untuk mengkonfigurasi kunci keamanan.

Selanjutnya, di prometheus.yml, Anda perlu menambahkan alamat untuk mendapatkan metrik.
Misalnya, untuk Jira :

- job_name: 'jira' scheme: https # change to http if don't you have https metrics_path: '/jira/plugins/servlet/prometheus/metrics' static_configs: - targets: ['myhost:2990'] # Jira host and port you serve 

Integrasi selesai, bisa Anda gunakan.

Contoh metrik dan kueri


Anda dapat melihat daftar semua metrik dalam dokumentasi plugin: Jira , Confluence , Bitbucket , Bamboo .

Contoh permintaan:

  • Waktu aktif:

     jvm_uptime_gauge{job="jira"} 
  • Waktu eksekusi permintaan server:

     (sum(rate(jira_request_duration_on_path_sum[1m])) by (path)) / (sum(rate(jira_request_duration_on_path_count[1m])) by (path)) 
  • Total jumlah tugas:

     jira_total_issues_gauge 
  • Jumlah tampilan dasbor:

     sum(increase(jira_dashboard_view_count[1h])) 

Anda dapat membaca lebih lanjut tentang membangun kueri di sini .

Dasbor Grafana


Anda dapat menggunakan Grafana sebagai komponen pihak ketiga untuk memvisualisasikan metrik yang disimpan dalam basis data time series Prometheus . Ada beberapa implementasi yang sudah jadi di situs web resmi. Misalnya, dasbor untuk Jira dapat ditemukan di tautan ini.


Fitur


Saya berencana untuk menambahkan kemampuan untuk mendefinisikan metrik khusus menggunakan Groovy , serta dukungan penuh untuk Service Desk . Dengan demikian, Anda dapat menambahkan metrik khusus tidak hanya untuk produk itu sendiri, tetapi juga untuk plugin lainnya.
Semua eksportir terbuka dan aktif berkembang. Jika Anda memiliki ide untuk perbaikan atau ekspansi, silakan membuat tugas ( Jira , Confluence , Bitbucket , Bamboo ) dan / atau melakukan permintaan-tarik.

Kesimpulan


Jika instalasi Atlassian Anda cukup besar dan Anda perlu memastikan operasi terus menerus, Anda pasti perlu pemantauan. Dan bagaimana - putuskan sendiri. Prometheus , sebagai salah satu opsi yang, tidak diragukan lagi, akan menyederhanakan hidup Anda.
Terima kasih atas perhatian anda!

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


All Articles