Ini adalah perpustakaan klien Delphi untuk Prometheus, mirip dengan perpustakaan yang dibuat untuk bahasa lain.
Perpustakaan Klien Prometheus Delphi adalah satu set kelas yang memungkinkan Anda untuk instrumen aplikasi Delphi Anda dengan metrik Prometheus .
Ini memungkinkan Anda untuk instrumen kode Delphi Anda dengan metrik khusus dan menyediakan beberapa metrik bawaan dan siap digunakan.
Perpustakaan juga mendukung format Eksposisi Berbasis Teks Prometheus, yang dapat dikonfigurasi dan tersedia melalui titik akhir HTTP pada instance aplikasi Web Anda menggunakan tiddware tertentu atau secara langsung memanggil eksportir teks.
Prometheus adalah alat pemantauan sumber terbuka yang populer yang banyak digunakan di lingkungan perangkat lunak modern. Ini menyediakan sistem yang kuat untuk mengumpulkan dan menganalisis metrik dari berbagai sumber, termasuk aplikasi, server, dan sistem lainnya.
Untuk menggunakan Prometheus secara efektif, Anda memerlukan perpustakaan klien yang diterapkan dalam bahasa pemrograman favorit Anda yang dapat diintegrasikan ke dalam aplikasi Anda untuk mengekspos metrik yang relevan ke server Prometheus.
Di sini kita akan membahas perpustakaan klien untuk Prometheus yang ditulis untuk Embarcadero Delphi.
Perpustakaan Klien Prometheus Delphi menawarkan berbagai fitur yang menjadikannya alat yang kuat dan fleksibel untuk memantau aplikasi Delphi menggunakan Prometheus.
Dengan menggunakan perpustakaan, Anda dapat memperoleh wawasan yang berharga tentang kinerja dan perilaku aplikasi Delphi Anda dan membuat keputusan berbasis data untuk memperbaikinya.
Berikut beberapa fitur yang didukung:
Untuk memulai dengan Perpustakaan Klien Prometheus Delphi, Anda harus mengikuti langkah -langkah ini.
Instalasi dilakukan dengan menggunakan perintah boss install :
boss install marcobreveglieri/prometheus-client-delphiJika Anda memilih untuk menginstalnya secara manual, unduh kode sumber dari GitHub cukup tambahkan folder berikut ke proyek Anda, di Project> Options> Resource Compiler> Direktori dan Kondisional> Sertakan jalur pencarian file
prometheus-client-delphi/Source
Tentukan metrik yang ingin Anda lacak menggunakan kelas yang sesuai (lihat di bawah).
Daftarkan metrik Anda di dalam registri kolektor default atau dalam registri Anda sendiri untuk penanganan dan ekspor berikutnya.
Perbarui metrik Anda sesuai kebutuhan memanggil metode yang sesuai yang dapat Anda temukan pada instance Collector tergantung pada kelas yang mereka lakukan.
Anda dapat mengekspor metrik Anda yang memanggil eksportir berbasis teks atau memanfaatkan middleware yang siap digunakan yang menargetkan kerangka kerja web Delphi favorit Anda (lihat bagian Middlewares di bawah ini untuk detailnya).
Klien Prometheus Delphi mendukung jenis metrik berikut.
Penghitung adalah metrik kumulatif yang mewakili penghitung tunggal yang meningkat secara monoton yang nilainya hanya dapat meningkat atau diatur ulang ke nol saat restart. Misalnya, Anda dapat menggunakan penghitung untuk mewakili jumlah permintaan yang dilayani, tugas yang diselesaikan, atau kesalahan.
Jangan gunakan penghitung untuk mengekspos nilai yang dapat berkurang. Misalnya, jangan gunakan penghitung untuk jumlah proses yang sedang berjalan; alih -alih menggunakan pengukur.
uses
Prometheus.Collectors.Counter;
begin
var LCounter := TCounter.Create( ' sample ' , ' Description of this counter ' );
LCounter.Inc(); // increment by 1
LCounter.Inc( 123 ); // increment by 123
end .Pengukur adalah metrik yang mewakili nilai numerik tunggal yang secara sewenang -wenang naik dan turun.
Pengukur biasanya digunakan untuk nilai -nilai yang diukur seperti suhu atau penggunaan memori saat ini, tetapi juga "menghitung" yang dapat naik dan turun, seperti jumlah permintaan bersamaan.
uses
Prometheus.Collectors.Gauge;
begin
var LGauge := TGauge.Create( ' sample ' , ' Description of this gauge ' );
LGauge.Inc(); // increment by 1
LGauge.Inc( 123 ); // increment by 123
LGauge.Dec( 10 ); // decrement by 10
LGauge.SetTo( 123 ); // set value directly to 123
LGauge.SetDuration( // set value to duration of method execution
procedure
begin
// User code
end );
end .Pengamatan sampel histogram (biasanya hal -hal seperti durasi permintaan atau ukuran respons) dan menghitungnya dalam ember yang dapat dikonfigurasi. Ini juga memberikan jumlah dari semua nilai yang diamati.
uses
Prometheus.Collectors.Histogram;
begin
LHistogram := THistogram.Create( ' Name of histogram metric ' , ' Help text for histogram metric ' );
// If buckets argument is not supplied, the default values will be used:
// [0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10, INFINITE].
LHistogram.Observe( 0.01 );
LHistogram.Observe( 0.04 );
LHistogram.Observe( 1 );
end .Mirip dengan histogram, pengamatan sampel ringkasan (biasanya hal -hal seperti durasi permintaan dan ukuran respons). Meskipun juga memberikan jumlah total pengamatan dan jumlah dari semua nilai yang diamati, ia menghitung kuantil yang dapat dikonfigurasi pada jendela waktu geser.
*** !!! Sedang dalam pengembangan !!! ***
Anda juga dapat mengimplementasikan metrik khusus Anda sendiri dengan mewarisi kelas yang sesuai ( Tcollector atau TsimpleCollector ).
Semua metrik dapat memiliki label , memungkinkan pengelompokan seri waktu terkait.
Mengambil konter sebagai contoh:
uses
Prometheus.Collectors.Counter;
begin
var LCounter := TCounter
.Create( ' http_requests_handled ' , ' HTTP handled requests total ' , [ ' path ' , ' status ' ])
.Register();
end .Metrik dengan label tidak diinisialisasi ketika dinyatakan, karena klien tidak dapat mengetahui nilai apa yang dapat dimiliki label. Disarankan untuk menginisialisasi nilai label dengan memanggil metode yang sesuai dan akhirnya memanggil metode lain untuk mengubah nilai metrik yang terkait dengan nilai label:
uses
Prometheus.Collectors.Counter;
begin
TCollectorRegistry.DefaultRegistry
.GetCollector<TCounter>( ' http_requests_handled ' )
.Labels([ ' /api ' , 200 ]) // ['path', 'status']
.Inc(); // increment child counter attached to these label values
end .Ada beberapa opsi untuk mengekspor metrik. Misalnya, Anda dapat mengekspor metrik dari aplikasi layanan Windows menggunakan komponen server TIDHTTP dari komponen indy dan memperlihatkan titik akhir "/metrik" di mana Anda mengekspor data metrik berbasis teks ke Prometheus Server.
Anda juga dapat mengunduh middleware untuk kerangka kerja web favorit Anda atau melihat proyek sampel.
Untuk memudahkan penggunaan klien Prometheus di dalam aplikasi web yang dibuat dengan Delphi, Anda akan menemukan di sini Middlewares untuk diunduh dan diinstal.
Setiap middleware mengintegrasikan dukungan untuk mengekspos metrik ke Prometheus Server menggunakan format yang sesuai dan tanpa harus mengkode setiap titik akhir secara manual.
Anda dapat menemukan klien Middlewares Prometheus resmi ke dalam repositori terpisah ini:
| Middleware |
|---|
| Kerangka kerja Delphi MVC |
| Kuda |
Klien Prometheus bekerja dengan Delphi 11 Alexandria karena memanfaatkan fitur -fitur lanjutan bahasa Delphi, tetapi dengan beberapa perubahan kecil itu mungkin bisa bekerja di versi sebelumnya.