Skip to content

Commit 85f1dc0

Browse files
authored
Merge pull request #46 from jiayuan929/fix_metric
feat: 支持不采集特定路径的 Metric 指标
2 parents 78c5e4c + 2b4826c commit 85f1dc0

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

backend/common/middlewares.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
from django.conf import settings
2424
from django.utils.deprecation import MiddlewareMixin
25+
from django_prometheus.middleware import PrometheusAfterMiddleware
2526

2627
from common.log import logger
2728
from common.utils.xss.escape_function import html_escape, texteditor_escape, url_escape
@@ -140,3 +141,14 @@ def __filter_path_list(self):
140141
}
141142
use_texteditor_paths = {}
142143
return (use_url_paths, use_texteditor_paths)
144+
145+
146+
class PrometheusAfterWithExclusionMiddleware(PrometheusAfterMiddleware, MiddlewareMixin):
147+
"""自定义指标中间件,排除特定路径的指标统计"""
148+
149+
def process_response(self, request, response):
150+
"""处理响应时跳过指定路径"""
151+
# 排除 /console/ping/ 和 /console/healthz/ 路径的 Metric 指标统计
152+
if request.path in ['/console/ping/', '/console/healthz/']:
153+
return response
154+
return super().process_response(request, response)

backend/conf/default.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,8 @@ def minimum_database_version(self):
127127
"bk_i18n.middlewares.LanguageMiddleware",
128128
"bk_i18n.middlewares.TimezoneMiddleware",
129129
"common.middlewares.CheckXssMiddleware",
130-
"django_prometheus.middleware.PrometheusAfterMiddleware",
130+
# 继承 django_prometheus.middleware.PrometheusAfterMiddleware 中间件,并添加路径豁免功能
131+
"common.middlewares.PrometheusAfterWithExclusionMiddleware",
131132
'django.middleware.clickjacking.XFrameOptionsMiddleware',
132133
]
133134

0 commit comments

Comments
 (0)