public AppMetricsPrometheusMiddleware(IServiceProvider serviceProvider, IMetrics metrics, RequestDelegate next, AppMetricsPrometheusSettings settings, IPrometheusFormatter formatter) { if (settings.MetricCollectorTypes is not null) { ValidateMetricCollectorTypes(settings.MetricCollectorTypes); } _serviceProvider = serviceProvider; _metrics = metrics; _next = next; _metricsPath = settings.MetricsPath ?? "/metrics"; _metricCollectorTypes = settings.MetricCollectorTypes?.ToArray(); _formatter = formatter; _systeUsageCollector = settings.UseSystemUsageCollector ? new SystemUsageCollector(metrics) : null; }
public static IApplicationBuilder UseAppMetricsPrometheus(this IApplicationBuilder app, AppMetricsPrometheusSettings settings) { var formatter = settings.Formatter ?? GetDefaultFormatter(); return(app.UseMiddleware <AppMetricsPrometheusMiddleware>(settings, formatter)); }