這是Prometheus的Delphi客戶庫庫,類似於為其他語言創建的庫。
Prometheus delphi客戶庫庫是一組類,可讓您使用Prometheus指標來啟動Delphi應用程序。
它允許您使用自定義指標來啟動Delphi代碼,並提供一些內置和準備使用指標。
該庫還支持Prometheus的基於文本的展示格式,可以使用特定的中間Wares上的Web應用程序實例上的HTTP端點進行配置和提供,或直接調用文本出口商。
Prometheus是一種流行的開源監控工具,可在現代軟件環境中廣泛使用。它提供了一個強大的系統,用於收集和分析來自各種來源的指標,包括應用程序,服務器和其他系統。
要有效地使用Prometheus ,您需要以您喜歡的編程語言實現的客戶庫庫,可以將其集成到您的應用程序中,以將相關指標公開到Prometheus服務器中。
在這裡,我們將討論為embarcadero delphi編寫的普羅米修斯的客戶庫。
Prometheus Delphi客戶庫庫提供了一系列功能,使其成為使用Prometheus監視Delphi應用程序的功能強大且靈活的工具。
通過使用圖書館,您可以對Delphi應用程序的性能和行為獲得寶貴的見解,並做出數據驅動的決策以改進它們。
以下是一些支持的功能:
要開始使用Prometheus delphi客戶庫庫,您需要遵循以下步驟。
使用boss install命令進行安裝:
boss install marcobreveglieri/prometheus-client-delphi如果您選擇手動安裝它,請從github下載源代碼,只需在項目>選項>選項>“資源編譯器”>“目錄和條件”> Include文件搜索路徑中添加以下文件夾
prometheus-client-delphi/Source
定義要使用適當類跟踪的指標(請參見下文)。
在默認收藏家註冊表中或您自己的註冊表中註冊您的指標,以進行後續處理和出口。
根據需要更新您的指標,請調用您可以在Collector實例上找到的適當方法,具體取決於其基於的類。
您可以導出指標調用基於文本的出口商或使用準備針對您喜歡的Delphi Web框架的中間件(有關詳細信息,請參見下面的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 .導出指標有幾種選擇。例如,您可以使用TIDHTTP服務器組件從Indy組件中從Windows Service應用程序中導出指標,並將基於文本的指標數據導出到Prometheus Server中的“/指標”端點。
您還可以為您喜歡的Web框架下載中間件,也可以查看示例項目。
為了簡化使用Delphi創建的Web應用程序中的Prometheus客戶端的使用,您可以在這裡找到以下載和安裝的中間Wares 。
每個中間件都會使用適當的格式集成了將指標暴露於Prometheus服務器的支持,而無需手動編碼每個端點。
您可以在這些單獨的存儲庫中找到Prometheus的官方客戶中間。
| 中介軟體 |
|---|
| Delphi MVC框架 |
| 馬 |
Prometheus Client使用Delphi 11 Alexandria,因為它利用了Delphi語言的高級功能,但是有了一些細微的更改,它可能可以在以前的版本中起作用。