Skip to content

Commit bccd2ec

Browse files
author
vitaly
committed
configurable metric namespace from django settings by PROMETHEUS_METRIC_NAMESPACE variable
1 parent 0972744 commit bccd2ec

File tree

6 files changed

+55
-8
lines changed

6 files changed

+55
-8
lines changed

django_prometheus/cache/metrics.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
from prometheus_client import Counter
22

3+
from django_prometheus.conf import NAMESPACE
4+
35
django_cache_get_total = Counter(
4-
"django_cache_get_total", "Total get requests on cache", ["backend"]
6+
"django_cache_get_total", "Total get requests on cache", ["backend"],
7+
namespace=NAMESPACE
58
)
69
django_cache_hits_total = Counter(
7-
"django_cache_get_hits_total", "Total hits on cache", ["backend"]
10+
"django_cache_get_hits_total", "Total hits on cache", ["backend"],
11+
namespace=NAMESPACE
812
)
913
django_cache_misses_total = Counter(
10-
"django_cache_get_misses_total", "Total misses on cache", ["backend"]
14+
"django_cache_get_misses_total", "Total misses on cache", ["backend"],
15+
namespace=NAMESPACE
1116
)
1217
django_cache_get_fail_total = Counter(
13-
"django_cache_get_fail_total", "Total get request failures by cache", ["backend"]
18+
"django_cache_get_fail_total", "Total get request failures by cache", ["backend"],
19+
namespace=NAMESPACE
1420
)

django_prometheus/conf/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from django.conf import settings
2+
3+
4+
NAMESPACE = getattr(settings, 'PROMETHEUS_METRIC_NAMESPACE', '')

django_prometheus/db/metrics.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
from prometheus_client import Counter
22

3+
from django_prometheus.conf import NAMESPACE
4+
35
connections_total = Counter(
46
"django_db_new_connections_total",
57
"Counter of created connections by database and by vendor.",
68
["alias", "vendor"],
9+
namespace=NAMESPACE
710
)
811

912
connection_errors_total = Counter(
1013
"django_db_new_connection_errors_total",
1114
"Counter of connection failures by database and by vendor.",
1215
["alias", "vendor"],
16+
namespace=NAMESPACE
1317
)
1418

1519
execute_total = Counter(
@@ -19,18 +23,21 @@
1923
" bulk executions."
2024
),
2125
["alias", "vendor"],
26+
namespace=NAMESPACE
2227
)
2328

2429

2530
execute_many_total = Counter(
2631
"django_db_execute_many_total",
2732
("Counter of executed statements in bulk operations by database and" " by vendor."),
2833
["alias", "vendor"],
34+
namespace=NAMESPACE
2935
)
3036

3137

3238
errors_total = Counter(
3339
"django_db_errors_total",
3440
("Counter of execution errors by database, vendor and exception type."),
3541
["alias", "vendor", "type"],
42+
namespace=NAMESPACE
3643
)

django_prometheus/middleware.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
from django.utils.deprecation import MiddlewareMixin
55
from django_prometheus.utils import PowersOf, Time, TimeSince
66

7+
from django_prometheus.conf import NAMESPACE
8+
79
DEFAULT_LATENCY_BUCKETS = (
810
0.01,
911
0.025,
@@ -47,11 +49,13 @@ def register(self):
4749
Counter,
4850
"django_http_requests_before_middlewares_total",
4951
"Total count of requests before middlewares run.",
52+
namespace=NAMESPACE
5053
)
5154
self.responses_total = self.register_metric(
5255
Counter,
5356
"django_http_responses_before_middlewares_total",
5457
"Total count of responses before middlewares run.",
58+
namespace=NAMESPACE
5559
)
5660
self.requests_latency_before = self.register_metric(
5761
Histogram,
@@ -60,6 +64,7 @@ def register(self):
6064
"Histogram of requests processing time (including middleware "
6165
"processing time)."
6266
),
67+
namespace=NAMESPACE
6368
)
6469
self.requests_unknown_latency_before = self.register_metric(
6570
Counter,
@@ -68,6 +73,7 @@ def register(self):
6873
"Count of requests for which the latency was unknown (when computing "
6974
"django_http_requests_latency_including_middlewares_seconds)."
7075
),
76+
namespace=NAMESPACE
7177
)
7278
self.requests_latency_by_view_method = self.register_metric(
7379
Histogram,
@@ -77,90 +83,105 @@ def register(self):
7783
buckets=getattr(
7884
settings, "PROMETHEUS_LATENCY_BUCKETS", DEFAULT_LATENCY_BUCKETS
7985
),
86+
namespace=NAMESPACE
8087
)
8188
self.requests_unknown_latency = self.register_metric(
8289
Counter,
8390
"django_http_requests_unknown_latency_total",
8491
"Count of requests for which the latency was unknown.",
92+
namespace=NAMESPACE
8593
)
8694
# Set in process_request
8795
self.requests_ajax = self.register_metric(
88-
Counter, "django_http_ajax_requests_total", "Count of AJAX requests."
96+
Counter, "django_http_ajax_requests_total", "Count of AJAX requests.",
97+
namespace=NAMESPACE
8998
)
9099
self.requests_by_method = self.register_metric(
91100
Counter,
92101
"django_http_requests_total_by_method",
93102
"Count of requests by method.",
94103
["method"],
104+
namespace=NAMESPACE
95105
)
96106
self.requests_by_transport = self.register_metric(
97107
Counter,
98108
"django_http_requests_total_by_transport",
99109
"Count of requests by transport.",
100110
["transport"],
111+
namespace=NAMESPACE
101112
)
102113
# Set in process_view
103114
self.requests_by_view_transport_method = self.register_metric(
104115
Counter,
105116
"django_http_requests_total_by_view_transport_method",
106117
"Count of requests by view, transport, method.",
107118
["view", "transport", "method"],
119+
namespace=NAMESPACE
108120
)
109121
self.requests_body_bytes = self.register_metric(
110122
Histogram,
111123
"django_http_requests_body_total_bytes",
112124
"Histogram of requests by body size.",
113125
buckets=PowersOf(2, 30),
126+
namespace=NAMESPACE
114127
)
115128
# Set in process_template_response
116129
self.responses_by_templatename = self.register_metric(
117130
Counter,
118131
"django_http_responses_total_by_templatename",
119132
"Count of responses by template name.",
120133
["templatename"],
134+
namespace=NAMESPACE
121135
)
122136
# Set in process_response
123137
self.responses_by_status = self.register_metric(
124138
Counter,
125139
"django_http_responses_total_by_status",
126140
"Count of responses by status.",
127141
["status"],
142+
namespace=NAMESPACE
128143
)
129144
self.responses_by_status_view_method = self.register_metric(
130145
Counter,
131146
"django_http_responses_total_by_status_view_method",
132147
"Count of responses by status, view, method.",
133148
["status", "view", "method"],
149+
namespace=NAMESPACE
134150
)
135151
self.responses_body_bytes = self.register_metric(
136152
Histogram,
137153
"django_http_responses_body_total_bytes",
138154
"Histogram of responses by body size.",
139155
buckets=PowersOf(2, 30),
156+
namespace=NAMESPACE
140157
)
141158
self.responses_by_charset = self.register_metric(
142159
Counter,
143160
"django_http_responses_total_by_charset",
144161
"Count of responses by charset.",
145162
["charset"],
163+
namespace=NAMESPACE
146164
)
147165
self.responses_streaming = self.register_metric(
148166
Counter,
149167
"django_http_responses_streaming_total",
150168
"Count of streaming responses.",
169+
namespace=NAMESPACE
151170
)
152171
# Set in process_exception
153172
self.exceptions_by_type = self.register_metric(
154173
Counter,
155174
"django_http_exceptions_total_by_type",
156175
"Count of exceptions by object type.",
157176
["type"],
177+
namespace=NAMESPACE
158178
)
159179
self.exceptions_by_view = self.register_metric(
160180
Counter,
161181
"django_http_exceptions_total_by_view",
162182
"Count of exceptions by view.",
163183
["view"],
184+
namespace=NAMESPACE
164185
)
165186

166187

django_prometheus/migrations.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,20 @@
33
from django.db import connections
44
from django.db.backends.dummy.base import DatabaseWrapper
55

6+
from django_prometheus.conf import NAMESPACE
7+
68
unapplied_migrations = Gauge(
79
"django_migrations_unapplied_total",
810
"Count of unapplied migrations by database connection",
911
["connection"],
12+
namespace=NAMESPACE
1013
)
1114

1215
applied_migrations = Gauge(
1316
"django_migrations_applied_total",
1417
"Count of applied migrations by database connection",
1518
["connection"],
19+
namespace=NAMESPACE
1620
)
1721

1822

django_prometheus/models.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
11
from prometheus_client import Counter
22

3+
from django_prometheus.conf import NAMESPACE
4+
35
model_inserts = Counter(
4-
"django_model_inserts_total", "Number of insert operations by model.", ["model"]
6+
"django_model_inserts_total", "Number of insert operations by model.", ["model"],
7+
namespace=NAMESPACE
58
)
69

710
model_updates = Counter(
8-
"django_model_updates_total", "Number of update operations by model.", ["model"]
11+
"django_model_updates_total", "Number of update operations by model.", ["model"],
12+
namespace=NAMESPACE
913
)
1014

1115
model_deletes = Counter(
12-
"django_model_deletes_total", "Number of delete operations by model.", ["model"]
16+
"django_model_deletes_total", "Number of delete operations by model.", ["model"],
17+
namespace=NAMESPACE
1318
)
1419

1520

0 commit comments

Comments
 (0)