Coverage for netbox/metrics.py: 60%
10 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
1from django_prometheus import middleware
2from django_prometheus.conf import NAMESPACE
3from prometheus_client import Counter
5__all__ = (
6 'Metrics',
7)
10class Metrics(middleware.Metrics):
11 """
12 Expand the stock Metrics class from django_prometheus to add our own counters.
13 """
15 def register(self):
16 super().register()
18 # REST API metrics
19 self.rest_api_requests = self.register_metric(
20 Counter,
21 "rest_api_requests_total_by_method",
22 "Count of total REST API requests by method",
23 ["method"],
24 namespace=NAMESPACE,
25 )
26 self.rest_api_requests_by_view_method = self.register_metric(
27 Counter,
28 "rest_api_requests_total_by_view_method",
29 "Count of REST API requests by view & method",
30 ["view", "method"],
31 namespace=NAMESPACE,
32 )
34 # GraphQL API metrics
35 self.graphql_api_requests = self.register_metric(
36 Counter,
37 "graphql_api_requests_total",
38 "Count of total GraphQL API requests",
39 namespace=NAMESPACE,
40 )