25
25
)
26
26
27
27
28
- def _register_metric (cls , name , documentation , labelnames = tuple (), ** kwargs ):
29
- return cls (name , documentation , labelnames = labelnames , ** kwargs )
30
-
31
-
32
28
class Metrics :
33
29
_instance = None
34
30
@@ -38,37 +34,42 @@ def get_instance(cls):
38
34
cls ._instance = cls ()
39
35
return cls ._instance
40
36
37
+ def register_metric (
38
+ self , metric_cls , name , documentation , labelnames = tuple (), ** kwargs
39
+ ):
40
+ return metric_cls (name , documentation , labelnames = labelnames , ** kwargs )
41
+
41
42
def __init__ (self , * args , ** kwargs ):
42
43
self .register ()
43
44
44
45
def register (self ):
45
- self .requests_total = _register_metric (
46
+ self .requests_total = self . register_metric (
46
47
Counter ,
47
48
"django_http_requests_before_middlewares_total" ,
48
49
"Total count of requests before middlewares run." ,
49
50
)
50
- self .responses_total = _register_metric (
51
+ self .responses_total = self . register_metric (
51
52
Counter ,
52
53
"django_http_responses_before_middlewares_total" ,
53
54
"Total count of responses before middlewares run." ,
54
55
)
55
- self .requests_latency_before = _register_metric (
56
+ self .requests_latency_before = self . register_metric (
56
57
Histogram ,
57
58
"django_http_requests_latency_including_middlewares_seconds" ,
58
59
(
59
60
"Histogram of requests processing time (including middleware "
60
61
"processing time)."
61
62
),
62
63
)
63
- self .requests_unknown_latency_before = _register_metric (
64
+ self .requests_unknown_latency_before = self . register_metric (
64
65
Counter ,
65
66
"django_http_requests_unknown_latency_including_middlewares_total" ,
66
67
(
67
68
"Count of requests for which the latency was unknown (when computing "
68
69
"django_http_requests_latency_including_middlewares_seconds)."
69
70
),
70
71
)
71
- self .requests_latency_by_view_method = _register_metric (
72
+ self .requests_latency_by_view_method = self . register_metric (
72
73
Histogram ,
73
74
"django_http_requests_latency_seconds_by_view_method" ,
74
75
"Histogram of request processing time labelled by view." ,
@@ -77,85 +78,85 @@ def register(self):
77
78
settings , "PROMETHEUS_LATENCY_BUCKETS" , DEFAULT_LATENCY_BUCKETS
78
79
),
79
80
)
80
- self .requests_unknown_latency = _register_metric (
81
+ self .requests_unknown_latency = self . register_metric (
81
82
Counter ,
82
83
"django_http_requests_unknown_latency_total" ,
83
84
"Count of requests for which the latency was unknown." ,
84
85
)
85
86
# Set in process_request
86
- self .requests_ajax = _register_metric (
87
+ self .requests_ajax = self . register_metric (
87
88
Counter , "django_http_ajax_requests_total" , "Count of AJAX requests."
88
89
)
89
- self .requests_by_method = _register_metric (
90
+ self .requests_by_method = self . register_metric (
90
91
Counter ,
91
92
"django_http_requests_total_by_method" ,
92
93
"Count of requests by method." ,
93
94
["method" ],
94
95
)
95
- self .requests_by_transport = _register_metric (
96
+ self .requests_by_transport = self . register_metric (
96
97
Counter ,
97
98
"django_http_requests_total_by_transport" ,
98
99
"Count of requests by transport." ,
99
100
["transport" ],
100
101
)
101
102
# Set in process_view
102
- self .requests_by_view_transport_method = _register_metric (
103
+ self .requests_by_view_transport_method = self . register_metric (
103
104
Counter ,
104
105
"django_http_requests_total_by_view_transport_method" ,
105
106
"Count of requests by view, transport, method." ,
106
107
["view" , "transport" , "method" ],
107
108
)
108
- self .requests_body_bytes = _register_metric (
109
+ self .requests_body_bytes = self . register_metric (
109
110
Histogram ,
110
111
"django_http_requests_body_total_bytes" ,
111
112
"Histogram of requests by body size." ,
112
113
buckets = PowersOf (2 , 30 ),
113
114
)
114
115
# Set in process_template_response
115
- self .responses_by_templatename = _register_metric (
116
+ self .responses_by_templatename = self . register_metric (
116
117
Counter ,
117
118
"django_http_responses_total_by_templatename" ,
118
119
"Count of responses by template name." ,
119
120
["templatename" ],
120
121
)
121
122
# Set in process_response
122
- self .responses_by_status = _register_metric (
123
+ self .responses_by_status = self . register_metric (
123
124
Counter ,
124
125
"django_http_responses_total_by_status" ,
125
126
"Count of responses by status." ,
126
127
["status" ],
127
128
)
128
- self .responses_by_status_view_method = _register_metric (
129
+ self .responses_by_status_view_method = self . register_metric (
129
130
Counter ,
130
131
"django_http_responses_total_by_status_view_method" ,
131
132
"Count of responses by status, view, method." ,
132
133
["status" , "view" , "method" ],
133
134
)
134
- self .responses_body_bytes = _register_metric (
135
+ self .responses_body_bytes = self . register_metric (
135
136
Histogram ,
136
137
"django_http_responses_body_total_bytes" ,
137
138
"Histogram of responses by body size." ,
138
139
buckets = PowersOf (2 , 30 ),
139
140
)
140
- self .responses_by_charset = _register_metric (
141
+ self .responses_by_charset = self . register_metric (
141
142
Counter ,
142
143
"django_http_responses_total_by_charset" ,
143
144
"Count of responses by charset." ,
144
145
["charset" ],
145
146
)
146
- self .responses_streaming = _register_metric (
147
+ self .responses_streaming = self . register_metric (
147
148
Counter ,
148
149
"django_http_responses_streaming_total" ,
149
150
"Count of streaming responses." ,
150
151
)
151
152
# Set in process_exception
152
- self .exceptions_by_type = _register_metric (
153
+ self .exceptions_by_type = self . register_metric (
153
154
Counter ,
154
155
"django_http_exceptions_total_by_type" ,
155
156
"Count of exceptions by object type." ,
156
157
["type" ],
157
158
)
158
- self .exceptions_by_view = _register_metric (
159
+ self .exceptions_by_view = self . register_metric (
159
160
Counter ,
160
161
"django_http_exceptions_total_by_view" ,
161
162
"Count of exceptions by view." ,
0 commit comments