我在.net核心应用程序中使用Prometheus进行POC。我没有在Prometheus网站上找到足够的信息来开始,我有以下问题,如果有人能回答这将有所帮助
a)我是否需要编写自己的.net核心客户端才能使用 prometheus in app?
b)使用普罗米修斯进行公制记录的最佳方法是什么? 我应该在每个客户端使用还是添加prometheus日志记录逻辑 服务方法,以便为每个请求记录指标 管道中的反应?
c)在.net核心应用程序中配置prometheus服务器的位置?
答案 0 :(得分:1)
使用Prometheus监视.Net核心Web API
安装以下软件包
new {q.GroupID, q.ModuleID})
在Program.cs类中添加以下代码以支持prometheus
<PackageReference Include="App.Metrics.AspNetCore" Version="3.2.0" />
<PackageReference Include="App.Metrics.AspNetCore.Endpoints" Version="3.2.0" />
<PackageReference Include="App.Metrics.AspNetCore.Tracking" Version="3.2.0" />
<PackageReference Include="App.Metrics.Formatters.Prometheus" Version="3.2.0" />
在完成所有上述更改后,请确保下面的这些端点正常工作
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseMetricsWebTracking()
.UseMetrics(option =>
{
option.EndpointOptions = endpointOptions =>
{
endpointOptions.MetricsTextEndpointOutputFormatter = new MetricsPrometheusTextOutputFormatter();
endpointOptions.MetricsEndpointOutputFormatter = new MetricsPrometheusProtobufOutputFormatter();
endpointOptions.EnvironmentInfoEndpointEnabled = false;
};
})
.UseStartup<Startup>();
在prometheus.yml中添加新工作
http://<ip:port>/metrics
http://<ip:port>/metrics-text
重新启动普罗米修斯,然后检查目标页面
答案 1 :(得分:0)
prometheus.io的官方.net客户端现在支持.NET Core 2.0:
答案 2 :(得分:0)
我们正在使用自己的开源库,因为在我们开始使用Prometheus时没有其他现有解决方案正常工作。
https://github.com/nexogen-international/Nexogen.Libraries.Metrics
此库可以开箱即用添加大量指标。我建议你可以测量一切,因为你永远不知道什么是生产中的瓶颈。至少衡量一切可以作为关键绩效指标的因素,例如访客数量或进行长期运营所需的时间。
可以在ASP.NET Core Startup中配置库。我建议您通过包含相关指标的界面注入指标。 如果您有非ASP.NET应用程序,那么您只需在主类中进行设置即可。