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;
        }
Exemple #2
0
        public static IApplicationBuilder UseAppMetricsPrometheus(this IApplicationBuilder app, AppMetricsPrometheusSettings settings)
        {
            var formatter = settings.Formatter ?? GetDefaultFormatter();

            return(app.UseMiddleware <AppMetricsPrometheusMiddleware>(settings, formatter));
        }