public static void Set(this Prometheus.Counter counter, double value) { if (counter.Value < value) { counter.Inc(value - counter.Value); } }
public async Task Invoke(HttpContext httpContext) { string path = httpContext.Request.Path.Value; string method = httpContext.Request.Method; Prometheus.Counter counter = Prometheus.Metrics.CreateCounter( "prometheus_request_total", "HTTP Requests Total", new Prometheus.CounterConfiguration { LabelNames = new[] { "path", "method", "status" } } ); try { await next.Invoke(httpContext); } catch (Exception) { int statusCode = 500; counter.Labels(path, method, statusCode.ToString()).Inc(); throw; } if (path != "/metrics") { counter.Labels(path, method, httpContext.Response.StatusCode.ToString()).Inc(); } }
public Prometheus.Counter CreateCounter(string name, string help, params string[] labelNames) { var metric = new Prometheus.Counter(name, help, labelNames); return((Prometheus.Counter)_registry.GetOrAdd(metric)); }
public Prometheus.Counter CreateCounter(string name, string help, params string[] labelNames) { var metric = new Prometheus.Counter(name, help, labelNames); _registry.Register(metric); return metric; }
public Prometheus.Counter CreateCounter(string name, string help, params string[] labelNames) { var metric = new Prometheus.Counter(name, help, labelNames); return (Prometheus.Counter) _registry.GetOrAdd(metric); }