/// <summary> /// Gets response time and status codes count (OPTIONAL) for every request. /// </summary> /// <param name="app"></param> /// <param name="config"></param> /// <returns></returns> public static IApplicationBuilder UseCactusMetric(this IApplicationBuilder app, MetricMiddlewareConfig config = null) { if (config == null) { config = new MetricMiddlewareConfig(); } app.UseMiddleware <MetricMiddleware>(config); return(app); }
public MetricMiddleware(RequestDelegate next, MetricMiddlewareConfig config) { _next = next; _config = config; ProceedRequestTimeHistogram = Metrics.CreateHistogram("server_proceed_request_time_ms", "Time for proceeding request in milliseconds", new HistogramConfiguration() { LabelNames = new[] { "method", "endpoint" }, Buckets = _config.ProceedRequestTimeBuckets }); if (!_config.ExcludeStatusCodeMetric) { StatusCodeCounter = Metrics.CreateCounter("server_status_code_count", "Server status codes count", "code", "method", "endpoint"); } }