当前位置: 代码迷 >> 综合 >> .NET6之MiniAPI(二十七):Metrics
  详细解决方案

.NET6之MiniAPI(二十七):Metrics

热度:0   发布时间:2024-01-12 05:47:27.0

应用的各种Metrics是保证应用健康稳定运行的基础,特别对于一些可用性有所要求的应用,本文介绍prometheus-net这个三方指示库。

prometheus-net的工作原理是,在应用内部埋点,通过prometheus采集数据,然后通过grafana把采集到的数据展现出来,所以这里首先要下载prometheus和grafana,因为是demo,这里下载两个应用的windows版本。具体下载地址如下:

Prometheus下载地址:

https://prometheus.io/download/

Grafana下载地址:

https://grafana.com/grafana/download?platform=windows

接下来创建miniapi项目,引入NuGet包:

Install-Package prometheus-net.AspNetCore

在miniapi项目中使用prometheus的默认指标很简单,如下:

using Prometheus;var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/test", () =>
{return "OK";
});
app.MapMetrics();
app.UseHttpMetrics();
app.Run();

这里要把应用的url配置到promethues的配置文件(prometheus.yml)中,如下图:

8e20dd3a304bae163f52291d8876566d.png

这时prometheus就配置好了,可以启动了。

接下来配置grafana,首先创建数据源:

52cbfc55038f0f422a6e1e8d168c055e.png

再创建两个dashboard:10195和10427

0e7ad335bffdf724a9715a26d33b5672.png

这里就可以访问应用了,打开两个dashboard,就可以看到监控指标了。

asp.net core指示

cae0c2d9b28429e97c0a00c0a91a22f4.png

应用系统指标

8e61c8b1a16a495f4b546f0a21303989.png

本篇中介简单介绍了一下miniapi引入prometheus,并且与prometheus和grafana的协调工作,所有指标都是默认指标,如果需要业务指标,请参看系列:

asp.net core监控—引入Prometheus(一)

桂素伟,公众号:桂迹asp.net core监控—引入Prometheus(一)

asp.net core监控—引入Prometheus(二)

桂素伟,公众号:桂迹asp.net core监控—引入Prometheus(二)

asp.net core监控—引入Prometheus(三)

桂素伟,公众号:桂迹asp.net core监控—引入Prometheus(三)

asp.net core监控—引入Prometheus(四)

桂素伟,公众号:桂迹asp.net core监控—引入Prometheus(四)

asp.net core监控—引入Prometheus(五)

桂素伟,公众号:桂迹asp.net core监控—引入Prometheus(五)

asp.net core监控—引入Prometheus(六)

桂素伟,公众号:桂迹asp.net core监控—引入Prometheus(六)

如果想了解默认指标的具体详情,请参见系列:

dotnet中的counter

桂素伟,公众号:桂迹dotnet中的counter

dotnet中的counters说明(一)

桂素伟,公众号:桂迹dotnet中的counters说明(一)

dotnet中的counters说明(二)

桂素伟,公众号:桂迹dotnet中的counters说明(二)

dotnet中的counters说明(三)

桂素伟,公众号:桂迹dotnet中的counters说明(三)

应用内moniter

桂素伟,公众号:桂迹应用内moniter

自定义EventSource(一)EventCounter

桂素伟,公众号:桂迹自定义EventSource(一)EventCounter

自定义EventSource(二)PollingCounter

桂素伟,公众号:桂迹自定义EventSource(二)PollingCounter

自定义EventSource(三)IncrementingEventCounter

桂素伟,公众号:桂迹自定义EventSource(三)IncrementingEventCounter

自定义EventSource(四)IncrementingPollingCounter

桂素伟,公众号:桂迹自定义EventSource(四)IncrementingPollingCounter

  相关解决方案