هذه مكتبة عميل Delphi لـ Prometheus ، على غرار المكتبات التي تم إنشاؤها للغات الأخرى.
مكتبة عميل Prometheus Delphi هي مجموعة من الفئات التي تسمح لك بتكوين تطبيقات Delphi الخاصة بك مع مقاييس Prometheus .
يسمح لك بتكوين رمز Delphi الخاص بك بمقاييس مخصصة ويوفر بعض المقاييس المدمجة والجاهزة لاستخدام المقاييس.
تدعم المكتبة أيضًا تنسيق المعرض المعتمد على نص Prometheus ، والتي يمكن تكوينها وإتاحةها عبر نقطة نهاية HTTP على مثيل تطبيق الويب الخاص بك باستخدام أدوات الوسطى المحددة أو الاتصال مباشرة بمصدر النص.
Prometheus هي أداة مراقبة شهيرة مفتوحة المصدر تستخدم على نطاق واسع في بيئات البرامج الحديثة. يوفر نظامًا قويًا لجمع وتحليل المقاييس من مصادر مختلفة ، بما في ذلك التطبيقات والخوادم والأنظمة الأخرى.
لاستخدام Prometheus بشكل فعال ، تحتاج إلى مكتبة عميل يتم تنفيذها في لغة البرمجة المفضلة لديك والتي يمكن دمجها في تطبيقاتك لفضح المقاييس ذات الصلة لخادم Prometheus.
سنناقش هنا مكتبة العميل لـ Prometheus المكتوبة لـ Embarcadero Delphi.
تقدم مكتبة عميل Prometheus Delphi مجموعة من الميزات التي تجعلها أداة قوية ومرنة لمراقبة تطبيقات Delphi باستخدام Prometheus.
باستخدام المكتبة ، يمكنك الحصول على رؤى قيمة في أداء وسلوك تطبيقات Delphi الخاصة بك واتخاذ قرارات تعتمد على البيانات لتحسينها.
فيما يلي بعض الميزات المدعومة:
للبدء في مكتبة عميل Prometheus Delphi ، تحتاج إلى اتباع هذه الخطوات.
يتم التثبيت باستخدام أمر boss install :
boss install marcobreveglieri/prometheus-client-delphiإذا اخترت تثبيته يدويًا ، فقم بتنزيل الكود المصدر من Github ، فما عليك سوى إضافة المجلدات التالية إلى مشروعك ، في Project> Options> Resource Mersials وشرطية> قم بتضمين مسار بحث الملف
prometheus-client-delphi/Source
حدد المقاييس التي تريد تتبعها باستخدام الفصول المناسبة (انظر أدناه).
قم بتسجيل المقاييس الخاصة بك داخل سجل جامع الافتراضي أو في سجل خاص بك للتعامل اللاحق والتصدير.
قم بتحديث المقاييس الخاصة بك حسب الحاجة استدعاء الأساليب المناسبة التي يمكنك العثور عليها على مثيل Collector اعتمادًا على الفصول التي تستند إليها.
يمكنك تصدير المقاييس الخاصة بك استدعاء المصدر المستند إلى النص أو الاستفادة من برنامج جاهز لاستخدام الوسيطة التي تستهدف إطار عمل Delphi المفضل لديك (انظر قسم Middlewares أدناه للحصول على التفاصيل).
يدعم عميل Prometheus Delphi الأنواع المترية التالية.
العداد هو مقياس تراكمي يمثل عدادًا متزايدًا أحاديًا لا يمكن أن تزيد قيمته أو إعادة تعيينه إلى الصفر عند إعادة التشغيل. على سبيل المثال ، يمكنك استخدام عداد لتمثيل عدد الطلبات المقدمة أو المهام المكتملة أو الأخطاء.
لا تستخدم عدادًا لفضح القيمة التي يمكن أن تنخفض. على سبيل المثال ، لا تستخدم عدادًا لعدد العمليات التي تعمل حاليًا ؛ بدلا من ذلك استخدم مقياس.
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 .المقياس عبارة عن مقياس يمثل قيمة عددية واحدة يمكن أن ترتفع بشكل تعسفي لأعلى ولأسفل.
عادةً ما يتم استخدام المقاييس للقيم المقاسة مثل درجات الحرارة أو استخدام الذاكرة الحالي ، ولكن أيضًا "التهم" التي يمكن أن ترتفع وهبوطًا ، مثل عدد الطلبات المتزامنة.
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 .يقوم رسم بياني بتنظيم ملاحظات (عادة ما يكون أشياء مثل فترات الطلب أو أحجام الاستجابة) ويحسبها في دلاء قابلة للتكوين. كما يوفر مجموع جميع القيم المرصودة.
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 .على غرار الرسم البياني ، عينات ملخصات الملاحظة (عادة ما تكون أشياء مثل فترات الطلب وأحجام الاستجابة). على الرغم من أنه يوفر أيضًا عددًا تامًا للملاحظات ومجموعًا لجميع القيم المرصودة ، فإنه يحسب الكميات القابلة للتكوين على مدار نافذة زمنية منزلق.
*** !!! قيد التطوير !!! ***
يمكنك أيضًا تطبيق المقاييس المخصصة الخاصة بك عن طريق وراثة الفصول المناسبة ( tcollector أو tsimplecollector ).
يمكن أن تحتوي جميع المقاييس على ملصقات ، مما يسمح بتجميع السلاسل الزمنية ذات الصلة.
أخذ عداد كمثال:
uses
Prometheus.Collectors.Counter;
begin
var LCounter := TCounter
.Create( ' http_requests_handled ' , ' HTTP handled requests total ' , [ ' path ' , ' status ' ])
.Register();
end .لا تتم تهيئة المقاييس مع الملصقات عند إعلانها ، لأن العميل لا يمكنه معرفة القيم التي يمكن أن تتمتع بها التسمية. يوصى بتهيئة قيم التسمية عن طريق استدعاء الطريقة المناسبة ثم استدعاء طريقة أخرى في النهاية لتغيير قيمة المقياس المرتبط بقيم التسمية:
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 .هناك العديد من الخيارات لتصدير المقاييس. على سبيل المثال ، يمكنك تصدير المقاييس من تطبيق خدمة Windows باستخدام مكون خادم TIDHTTP من مكونات Indy وفضح نقطة نهاية "/مقاييس" حيث تقوم بتصدير بيانات المقاييس المستندة إلى النص إلى Prometheus Server.
يمكنك أيضًا تنزيل برنامج وسيط لإطار عمل الويب المفضل لديك أو إلقاء نظرة على مشاريع العينة.
لتخفيف استخدام عميل Prometheus داخل تطبيقات الويب التي تم إنشاؤها مع Delphi ، ستجد هنا Middlewares للتنزيل والتثبيت.
يدمج كل برامج وسيطة الدعم لفضح المقاييس لخادم Prometheus باستخدام التنسيق المناسب وبدون الحاجة إلى ترميز كل نقطة نهاية يدويًا.
يمكنك العثور على Midderwares الرسمي Prometheus Client في هذه المستودعات المنفصلة:
| الوسيطة |
|---|
| إطار Delphi MVC |
| حصان |
يعمل عميل Prometheus مع Delphi 11 Alexandria لأنه يستخدم الميزات المتقدمة للغة Delphi ، ولكن مع بعض التغييرات الطفيفة قد تعمل في الإصدارات السابقة.