我正在 .net core 应用程序中使用 Prometheus 进行 POC。我在 Prometheus 网站上没有找到足够的信息来开始使用,我有以下问题,如果有人能回答的话会很有帮助
a) 我是否需要编写自己的 .net core 客户端才能使用 普罗米修斯在应用程序中?
b) 使用 Prometheus 进行指标记录的最佳方法是什么,例如 我应该在每个客户端中使用还是添加普罗米修斯日志逻辑 services 方法,以便记录每个请求的指标并 管道中的响应?
c) 在.net core应用程序中哪里配置prometheus服务器?
最佳答案
Monitor .Net core web API using 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" />
在Program.cs类中添加以下代码以支持prometheus
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>();
进行上述所有更改后,确保以下端点正常工作
http://<ip:port>/metrics
http://<ip:port>/metrics-text
在 prometheus.yml 中添加新作业
- job_name: 'SampleWebAPi'
metrics_path: /metrics-text
static_configs:
- targets: ['<ip:port>']
重启 prometheus 然后检查目标页面
关于.net-core - 在.net core应用程序中使用Prometheus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47395762/