2525)
2626
2727
28- def _register_metric (cls , name , documentation , labelnames = tuple (), ** kwargs ):
29- return cls (name , documentation , labelnames = labelnames , ** kwargs )
30-
31-
3228class Metrics :
3329 _instance = None
3430
@@ -38,37 +34,42 @@ def get_instance(cls):
3834 cls ._instance = cls ()
3935 return cls ._instance
4036
37+ def register_metric (
38+ self , metric_cls , name , documentation , labelnames = tuple (), ** kwargs
39+ ):
40+ return metric_cls (name , documentation , labelnames = labelnames , ** kwargs )
41+
4142 def __init__ (self , * args , ** kwargs ):
4243 self .register ()
4344
4445 def register (self ):
45- self .requests_total = _register_metric (
46+ self .requests_total = self . register_metric (
4647 Counter ,
4748 "django_http_requests_before_middlewares_total" ,
4849 "Total count of requests before middlewares run." ,
4950 )
50- self .responses_total = _register_metric (
51+ self .responses_total = self . register_metric (
5152 Counter ,
5253 "django_http_responses_before_middlewares_total" ,
5354 "Total count of responses before middlewares run." ,
5455 )
55- self .requests_latency_before = _register_metric (
56+ self .requests_latency_before = self . register_metric (
5657 Histogram ,
5758 "django_http_requests_latency_including_middlewares_seconds" ,
5859 (
5960 "Histogram of requests processing time (including middleware "
6061 "processing time)."
6162 ),
6263 )
63- self .requests_unknown_latency_before = _register_metric (
64+ self .requests_unknown_latency_before = self . register_metric (
6465 Counter ,
6566 "django_http_requests_unknown_latency_including_middlewares_total" ,
6667 (
6768 "Count of requests for which the latency was unknown (when computing "
6869 "django_http_requests_latency_including_middlewares_seconds)."
6970 ),
7071 )
71- self .requests_latency_by_view_method = _register_metric (
72+ self .requests_latency_by_view_method = self . register_metric (
7273 Histogram ,
7374 "django_http_requests_latency_seconds_by_view_method" ,
7475 "Histogram of request processing time labelled by view." ,
@@ -77,85 +78,85 @@ def register(self):
7778 settings , "PROMETHEUS_LATENCY_BUCKETS" , DEFAULT_LATENCY_BUCKETS
7879 ),
7980 )
80- self .requests_unknown_latency = _register_metric (
81+ self .requests_unknown_latency = self . register_metric (
8182 Counter ,
8283 "django_http_requests_unknown_latency_total" ,
8384 "Count of requests for which the latency was unknown." ,
8485 )
8586 # Set in process_request
86- self .requests_ajax = _register_metric (
87+ self .requests_ajax = self . register_metric (
8788 Counter , "django_http_ajax_requests_total" , "Count of AJAX requests."
8889 )
89- self .requests_by_method = _register_metric (
90+ self .requests_by_method = self . register_metric (
9091 Counter ,
9192 "django_http_requests_total_by_method" ,
9293 "Count of requests by method." ,
9394 ["method" ],
9495 )
95- self .requests_by_transport = _register_metric (
96+ self .requests_by_transport = self . register_metric (
9697 Counter ,
9798 "django_http_requests_total_by_transport" ,
9899 "Count of requests by transport." ,
99100 ["transport" ],
100101 )
101102 # Set in process_view
102- self .requests_by_view_transport_method = _register_metric (
103+ self .requests_by_view_transport_method = self . register_metric (
103104 Counter ,
104105 "django_http_requests_total_by_view_transport_method" ,
105106 "Count of requests by view, transport, method." ,
106107 ["view" , "transport" , "method" ],
107108 )
108- self .requests_body_bytes = _register_metric (
109+ self .requests_body_bytes = self . register_metric (
109110 Histogram ,
110111 "django_http_requests_body_total_bytes" ,
111112 "Histogram of requests by body size." ,
112113 buckets = PowersOf (2 , 30 ),
113114 )
114115 # Set in process_template_response
115- self .responses_by_templatename = _register_metric (
116+ self .responses_by_templatename = self . register_metric (
116117 Counter ,
117118 "django_http_responses_total_by_templatename" ,
118119 "Count of responses by template name." ,
119120 ["templatename" ],
120121 )
121122 # Set in process_response
122- self .responses_by_status = _register_metric (
123+ self .responses_by_status = self . register_metric (
123124 Counter ,
124125 "django_http_responses_total_by_status" ,
125126 "Count of responses by status." ,
126127 ["status" ],
127128 )
128- self .responses_by_status_view_method = _register_metric (
129+ self .responses_by_status_view_method = self . register_metric (
129130 Counter ,
130131 "django_http_responses_total_by_status_view_method" ,
131132 "Count of responses by status, view, method." ,
132133 ["status" , "view" , "method" ],
133134 )
134- self .responses_body_bytes = _register_metric (
135+ self .responses_body_bytes = self . register_metric (
135136 Histogram ,
136137 "django_http_responses_body_total_bytes" ,
137138 "Histogram of responses by body size." ,
138139 buckets = PowersOf (2 , 30 ),
139140 )
140- self .responses_by_charset = _register_metric (
141+ self .responses_by_charset = self . register_metric (
141142 Counter ,
142143 "django_http_responses_total_by_charset" ,
143144 "Count of responses by charset." ,
144145 ["charset" ],
145146 )
146- self .responses_streaming = _register_metric (
147+ self .responses_streaming = self . register_metric (
147148 Counter ,
148149 "django_http_responses_streaming_total" ,
149150 "Count of streaming responses." ,
150151 )
151152 # Set in process_exception
152- self .exceptions_by_type = _register_metric (
153+ self .exceptions_by_type = self . register_metric (
153154 Counter ,
154155 "django_http_exceptions_total_by_type" ,
155156 "Count of exceptions by object type." ,
156157 ["type" ],
157158 )
158- self .exceptions_by_view = _register_metric (
159+ self .exceptions_by_view = self . register_metric (
159160 Counter ,
160161 "django_http_exceptions_total_by_view" ,
161162 "Count of exceptions by view." ,
0 commit comments