นี่คือไลบรารีไคลเอนต์ Delphi สำหรับโพรคล้ายกับห้องสมุดที่สร้างขึ้นสำหรับภาษาอื่น ๆ
ห้องสมุด ไคลเอนต์ Prometheus Delphi เป็นชุดของคลาสที่ช่วยให้คุณสามารถใช้แอพพลิเคชั่น Delphi ของคุณด้วยตัวชี้วัด Prometheus
ช่วยให้คุณสามารถใช้รหัส Delphi ของคุณด้วยตัวชี้วัดที่กำหนดเองและให้บริการในตัวและพร้อมใช้งานตัวชี้วัด
ห้องสมุดยังรองรับรูปแบบการจัดทำข้อความตามข้อความของ Prometheus ซึ่งสามารถกำหนดค่าและให้บริการผ่านจุดสิ้นสุด HTTP บนอินสแตนซ์ของเว็บแอปพลิเคชันของคุณโดยใช้ MiddleWares เฉพาะหรือเรียกผู้ส่งออกข้อความโดยตรง
Prometheus เป็นเครื่องมือตรวจสอบโอเพนซอร์ซยอดนิยมที่ใช้กันอย่างแพร่หลายในสภาพแวดล้อมซอฟต์แวร์ที่ทันสมัย มันมีระบบที่มีประสิทธิภาพสำหรับการรวบรวมและวิเคราะห์ตัวชี้วัดจากแหล่งต่าง ๆ รวมถึงแอปพลิเคชันเซิร์ฟเวอร์และระบบอื่น ๆ
ในการใช้ Prometheus ได้อย่างมีประสิทธิภาพคุณต้องใช้ห้องสมุดลูกค้าที่ใช้ในภาษาการเขียนโปรแกรมที่คุณชื่นชอบซึ่งสามารถรวมเข้ากับแอปพลิเคชันของคุณเพื่อเปิดเผยตัวชี้วัดที่เกี่ยวข้องกับเซิร์ฟเวอร์ Prometheus
ที่นี่เราจะหารือเกี่ยวกับห้องสมุดลูกค้าสำหรับโพรเขียนสำหรับ Embarcadero Delphi
ห้องสมุดไคลเอนต์ Prometheus Delphi นำเสนอ คุณสมบัติที่หลากหลาย ซึ่งทำให้เป็นเครื่องมือที่ทรงพลังและยืดหยุ่นสำหรับการตรวจสอบแอปพลิเคชัน Delphi โดยใช้ Prometheus
ด้วยการใช้ห้องสมุดคุณสามารถได้รับข้อมูลเชิงลึกที่มีค่าเกี่ยวกับประสิทธิภาพและพฤติกรรมของแอปพลิเคชัน Delphi ของคุณและทำการตัดสินใจที่ขับเคลื่อนด้วยข้อมูลเพื่อปรับปรุง
นี่คือคุณสมบัติบางอย่างที่รองรับ:
ในการเริ่มต้นกับห้องสมุดไคลเอนต์ Prometheus Delphi คุณต้องทำตามขั้นตอนเหล่านี้
การติดตั้งทำได้โดยใช้คำสั่ง boss install :
boss install marcobreveglieri/prometheus-client-delphiหากคุณเลือกที่จะติดตั้งด้วยตนเองให้ดาวน์โหลดซอร์สโค้ดจาก GitHub เพียงเพิ่มโฟลเดอร์ต่อไปนี้ลงในโครงการของคุณใน โครงการ> ตัวเลือก> Resource Compiler> ไดเรกทอรีและเงื่อนไข> รวมเส้นทางการค้นหาไฟล์
prometheus-client-delphi/Source
กำหนดตัวชี้วัดที่คุณต้องการติดตามโดยใช้คลาสที่เหมาะสม (ดูด้านล่าง)
ลงทะเบียนตัวชี้วัดของคุณภายในรีจิสทรีนักสะสมเริ่มต้นหรือในรีจิสทรีของคุณเองสำหรับการจัดการและการส่งออกที่ตามมา
อัปเดตตัวชี้วัดของคุณตามที่จำเป็นในการเรียกใช้วิธีการที่เหมาะสมที่คุณสามารถหาได้ในอินสแตนซ์ของตัวสะสมขึ้นอยู่กับคลาสที่ใช้
คุณสามารถส่งออกตัวชี้วัดของคุณที่เรียกผู้ส่งออกข้อความหรือใช้ประโยชน์จากมิดเดิลแวร์ที่พร้อมใช้งานที่กำหนดเป้าหมายเฟรมเวิร์ก Delphi Web ที่คุณชื่นชอบ (ดูส่วน Middlewares ด้านล่างสำหรับรายละเอียด)
ไคลเอนต์ Prometheus Delphi รองรับประเภทตัวชี้วัดต่อไปนี้
ตัวนับ เป็นตัวชี้วัดสะสมที่แสดงถึงตัวนับที่เพิ่มขึ้นแบบ monotonically เดียวซึ่งค่าสามารถเพิ่มหรือรีเซ็ตเป็นศูนย์ในการรีสตาร์ท ตัวอย่างเช่นคุณสามารถใช้ตัวนับเพื่อแสดงจำนวนคำขอที่ให้บริการงานที่เสร็จสมบูรณ์หรือข้อผิดพลาด
อย่าใช้ตัวนับเพื่อเปิดเผยค่าที่สามารถลดลงได้ ตัวอย่างเช่นอย่าใช้ตัวนับสำหรับจำนวนกระบวนการที่กำลังทำงานอยู่ ใช้มาตรวัดแทน
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
นอกจากนี้คุณยังสามารถดาวน์โหลดมิดเดิลแวร์สำหรับเฟรมเวิร์กเว็บที่คุณชื่นชอบหรือดูโครงการตัวอย่าง
เพื่อความสะดวกในการใช้ไคลเอนต์โพรโพรเทสในเว็บแอปพลิเคชันที่สร้างขึ้นด้วย Delphi คุณจะพบที่นี่ Middlewares เพื่อดาวน์โหลดและติดตั้ง
มิดเดิลแวร์แต่ละคนรวมการสนับสนุนสำหรับการเปิดเผยตัวชี้วัดไปยังเซิร์ฟเวอร์ Prometheus โดยใช้รูปแบบที่เหมาะสมและไม่ต้องใช้รหัสแต่ละจุดปลายด้วยตนเอง
คุณสามารถค้นหา Middlewares ไคลเอ็นต์ Prometheus อย่างเป็นทางการในที่เก็บแยกต่างหากเหล่านี้:
| มิดเดิลแวร์ |
|---|
| เฟรมเวิร์ก Delphi MVC |
| ม้า |
ไคลเอนต์ Prometheus ทำงานร่วมกับ Delphi 11 Alexandria เนื่องจากใช้ประโยชน์จากคุณสมบัติขั้นสูงของภาษา Delphi แต่ด้วยการเปลี่ยนแปลงเล็กน้อยอาจใช้งานได้ในเวอร์ชันก่อนหน้า