Coverage for netbox/metrics.py: 60%

10 statements  

« 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 

4 

5__all__ = ( 

6 'Metrics', 

7) 

8 

9 

10class Metrics(middleware.Metrics): 

11 """ 

12 Expand the stock Metrics class from django_prometheus to add our own counters. 

13 """ 

14 

15 def register(self): 

16 super().register() 

17 

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 ) 

33 

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 )