尝试在asp.net核心中配置metrics.net
本文关键字:net 配置 metrics 核心 asp | 更新日期: 2023-09-27 18:07:48
我有一个asp.net核心web应用程序,我想使用metrics.net。
之前,我像这样配置度量和所有权:
Metric.Config
.WithInternalMetrics()
.WithOwin(middleware => app.Use(middleware), config => config
.WithRequestMetricsConfig(c => c.WithErrorsMeter()
.WithActiveRequestCounter()
.WithPostAndPutRequestSizeHistogram()
.WithRequestTimer()
, new[] {
new Regex("(?i)^metrics"),
new Regex("(?i)^health"),
new Regex("(?i)^json")
}
)
.WithMetricsEndpoint(endpointConfig =>
{
endpointConfig
.MetricsTextEndpoint(enabled: false);
})
);
我怎么能做一些类似的asp.net核心?
我们必须使用Microsoft.AspnetCore.Owin
包中的app.UseOwin
,并将正确的中间件连接到管道。
Metric.Config.WithInternalMetrics()
.WithOwin(middleware => app.UseOwin(pipeline => pipeline(next => Engage(middleware, next))), config => config
.WithRequestMetricsConfig(c => c.WithAllOwinMetrics()
, new[] {
new Regex("(?i)^metrics"),
new Regex("(?i)^health"),
new Regex("(?i)^json")
}
)
.WithMetricsEndpoint(endpointConfig =>
{
endpointConfig
.MetricsJsonEndpoint(enabled: true)
.MetricsEndpoint(enabled: true)
.MetricsHealthEndpoint(enabled: true)
.MetricsTextEndpoint(enabled: false)
.MetricsPingEndpoint(enabled: false);
})
);
和像这样的Engage函数
private static Func<IDictionary<string, object>, Task> Engage(dynamic middleware, Func<IDictionary<string, object>, Task> next)
{
return env => {
middleware.Initialize(next);
return middleware.Invoke(env);
};
}
Metrics.NET有一个。net标准端口。指标的API已经按照。net核心方法重新编写