public static void Set(this Prometheus.Counter counter, double value)
 {
     if (counter.Value < value)
     {
         counter.Inc(value - counter.Value);
     }
 }
Esempio n. 2
0
        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();
            }
        }
Esempio n. 3
0
        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;
 }
Esempio n. 5
0
 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);
 }