prometheus-net
34 строки · 1.1 Кб
1using Microsoft.AspNetCore.Builder;2
3namespace Prometheus;4
5public static class GrpcMetricsMiddlewareExtensions6{
7/// <summary>8/// Configures the ASP.NET Core request pipeline to collect Prometheus metrics on processed gRPC requests.9/// </summary>10public static IApplicationBuilder UseGrpcMetrics(this IApplicationBuilder app,11Action<GrpcMiddlewareExporterOptions> configure)12{13var options = new GrpcMiddlewareExporterOptions();14configure?.Invoke(options);15app.UseGrpcMetrics(options);16return app;17}18
19/// <summary>20/// Configures the ASP.NET Core request pipeline to collect Prometheus metrics on processed gRPC requests.21/// </summary>22public static IApplicationBuilder UseGrpcMetrics(this IApplicationBuilder app,23GrpcMiddlewareExporterOptions? options = null)24{25options ??= new GrpcMiddlewareExporterOptions();26
27if (options.RequestCount.Enabled)28{29app.UseMiddleware<GrpcRequestCountMiddleware>(options.RequestCount);30}31
32return app;33}34}
35