.NET 使用 OpenTelemetry metrics 監(jiān)控應(yīng)用程序指標(biāo)
當(dāng)前位置:點(diǎn)晴教程→知識管理交流
→『 技術(shù)文檔交流 』
隨著現(xiàn)代應(yīng)用程序的復(fù)雜性不斷增加,對于性能監(jiān)控和故障排除的需求也日益迫切。在 .NET 生態(tài)系統(tǒng)中,OpenTelemetry Metrics 可用于實(shí)時監(jiān)控和分析應(yīng)用程序的性能指標(biāo)。比如監(jiān)控內(nèi)存,CPU 使用量,鏈接數(shù)等等。 OpenTelemetry Metrics 概述#OpenTelemetry Metrics 是 OpenTelemetry 的一部分,用于記錄和導(dǎo)出應(yīng)用程序的性能指標(biāo)。它提供了一組靈活的 API 和工具,用于創(chuàng)建、注冊和導(dǎo)出度量指標(biāo),以便實(shí)時監(jiān)控和分析應(yīng)用程序的性能。OpenTelemetry Metrics 支持各種類型的度量指標(biāo),包括計數(shù)器(Counter)、測量值(ObservableGauge)等,以滿足不同場景下的性能監(jiān)控需求。 監(jiān)控 ASP.NET Core 與 Runtime 的指標(biāo)#OpenTelemetry 已經(jīng)為我們直接提供了一些開箱即用的包。我們使用這些包就可以非常便捷的對 ASP.NET Core 或者 Runtime 的一些指標(biāo)進(jìn)行監(jiān)控。以下我們將演示通過簡單的幾步如何把這些指標(biāo)通過 OpenTelemetry 協(xié)議發(fā)送給 Prometheus。 使用 nuget 安裝包#首先安裝相關(guān)的包
配置服務(wù)#跟 logs,traces 一樣,我們需要在啟動的時候添加必要的服務(wù)及配置。
安裝 Prometheus#從官網(wǎng)下載 Prometheus 的安裝包或者 k8s 運(yùn)行。啟動的時候記得開啟參數(shù):otlp-write-receiver
prometheus 默認(rèn)的 metrics 的 api 地址為:http://localhost:9090/api/v1/otlp/v1/metrics 在 Prometheus 中查看指標(biāo)#讓我們運(yùn)行上面的 .NET 程序,等待一會。然后打開 http://localhost:9090/graph 進(jìn)行查看。我們能看到 Prometheus 中多了很多跟 ASP.NET Core 以及 .NET runtime 相關(guān)的指標(biāo)。 自定義指標(biāo)#以上演示了如何監(jiān)控 ASP.NET Core 以及 .NET runtime 相關(guān)的指標(biāo)。過程呢相當(dāng)簡單。但是光有這些框架的指標(biāo)可能還不夠,有的時候我們希望監(jiān)控業(yè)務(wù)數(shù)據(jù)的指標(biāo),比如訂單數(shù)量,實(shí)時用戶在線量,等等。那么這個時候我們需要自己去實(shí)現(xiàn)一個指標(biāo)。 MyMeterService#首先定義一個 MyMeterService 的類:
首先創(chuàng)建了一個名為 MyMeter 的度量器。然后創(chuàng)建了一個名為 MyOrderCounter 的長整型計數(shù)器(Counter 修改服務(wù)配置代碼#
通過調(diào)用 AddMeter("MyMeter") 方法 OpenTelemetry 會監(jiān)聽前面定義的 MyMeter 度量器。 添加 Order 控制器#代碼高亮:
[ApiController] [Route("[controller]")] public class OrderController : ControllerBase { [HttpPost] public string Add() { MyMeterService.MyOrderCounter.Add(1); return "ok"; } } 添加一個 Order 的控制器,每次調(diào)用 Add 方法的時候就會給 MyOrderCounter 加 1 。 在 Prometheus 中查看自定義指標(biāo)#跟上面一樣我運(yùn)行我們的程序后等待一會,再次刷新 http://localhost:9090/graph。里面就會多出來 MyOrderCounter 指標(biāo)。 使用 POSTMAN 調(diào)用幾次 Order 接口后,點(diǎn)擊 Execute 查詢一下: 可以看到 MyOrderCounter 指標(biāo)的折線圖。 更多的度量#上面我們使用一個 Counter 來對訂單數(shù)進(jìn)行累加。其實(shí) .NET 為我們提供了更多的度量方法。以下簡單介紹幾個常用的:
該文章在 2024/6/11 9:37:41 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |