Skip to content

Commit ed743ef

Browse files
committed
add two more default metrics
1 parent d3796a9 commit ed743ef

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

django_prometheus/middleware.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from django.utils.deprecation import MiddlewareMixin
2-
from prometheus_client import Counter, Histogram
2+
from prometheus_client import Counter, Histogram, Gauge
33

44
from django_prometheus.conf import NAMESPACE, PROMETHEUS_LATENCY_BUCKETS
55
from django_prometheus.utils import PowersOf, Time, TimeSince
@@ -21,6 +21,19 @@ def __init__(self, *args, **kwargs):
2121
self.register()
2222

2323
def register(self):
24+
self.inflight_requests = self.register_metric(
25+
Gauge,
26+
"django_http_inflight_requests",
27+
"Current number of inflight requests.",
28+
namespace=NAMESPACE,
29+
)
30+
self.requests_total_by_view = self.register_metric(
31+
Counter,
32+
"django_http_requests_total_by_view",
33+
"Total count of requests by view.",
34+
["view"],
35+
namespace=NAMESPACE,
36+
)
2437
self.requests_total = self.register_metric(
2538
Counter,
2639
"django_http_requests_before_middlewares_total",
@@ -217,6 +230,7 @@ def process_request(self, request):
217230
method = self._method(request)
218231
self.label_metric(self.metrics.requests_by_method, request, method=method).inc()
219232
self.label_metric(self.metrics.requests_by_transport, request, transport=transport).inc()
233+
self.label_metric(self.metrics.inflight_requests, request).inc()
220234

221235
# Mimic the behaviour of the deprecated "Request.is_ajax()" method.
222236
if request.headers.get("x-requested-with") == "XMLHttpRequest":
@@ -261,6 +275,8 @@ def process_response(self, request, response):
261275
method = self._method(request)
262276
name = self._get_view_name(request)
263277
status = str(response.status_code)
278+
self.label_metric(self.metrics.inflight_requests, request).dec()
279+
self.label_metric(self.metrics.requests_total_by_view, request, view=name).inc()
264280
self.label_metric(self.metrics.responses_by_status, request, response, status=status).inc()
265281
self.label_metric(
266282
self.metrics.responses_by_status_view_method,

0 commit comments

Comments
 (0)