Skip to content

Commit 1467bfa

Browse files
zzz833708HACK-WU
authored andcommitted
feat: 监控网关api 兼容旧esb网关和新网关 --story=123701143 (TencentBlueKing#6087)
1 parent e03f630 commit 1467bfa

File tree

9 files changed

+156
-105
lines changed

9 files changed

+156
-105
lines changed

bklog/apps/api/modules/monitor.py

Lines changed: 22 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"""
2424
MONITOR 模块,调用接口汇总
2525
"""
26+
from django.conf import settings
2627
from django.utils.translation import gettext_lazy as _ # noqa
2728

2829
from apps.api.base import DataAPI # noqa
@@ -34,134 +35,111 @@ class _MonitorApi(object):
3435
MODULE = _("Monitor监控平台")
3536

3637
def __init__(self):
37-
self.save_alarm_strategy = DataAPI(
38-
method="POST",
39-
url=MONITOR_APIGATEWAY_ROOT + "save_alarm_strategy/",
40-
module=self.MODULE,
41-
description="保存告警策略",
42-
default_return_value=None,
43-
before_request=add_esb_info_before_request,
44-
)
4538
self.search_user_groups = DataAPI(
4639
method="POST",
47-
url=MONITOR_APIGATEWAY_ROOT + "search_user_groups/",
40+
url=self._build_url("user_group/search/", "search_user_groups/"),
4841
module=self.MODULE,
4942
description="查询通知组",
5043
default_return_value=None,
5144
before_request=add_esb_info_before_request,
5245
)
5346
self.save_notice_group = DataAPI(
5447
method="POST",
55-
url=MONITOR_APIGATEWAY_ROOT + "save_notice_group/",
48+
url=self._build_url("user_group/save/", "save_notice_group/"),
5649
module=self.MODULE,
5750
description="保存通知组",
5851
default_return_value=None,
5952
before_request=add_esb_info_before_request,
6053
)
61-
self.save_alarm_strategy_v2 = DataAPI(
62-
method="POST",
63-
url=MONITOR_APIGATEWAY_ROOT + "save_alarm_strategy_v2/",
64-
module=self.MODULE,
65-
description="保存告警策略V2",
66-
default_return_value=None,
67-
before_request=add_esb_info_before_request,
68-
)
69-
self.search_alarm_strategy_v2 = DataAPI(
70-
method="POST",
71-
url=MONITOR_APIGATEWAY_ROOT + "search_alarm_strategy_v2/",
72-
module=self.MODULE,
73-
description="查询告警策略V2",
74-
default_return_value=None,
75-
before_request=add_esb_info_before_request,
76-
)
77-
self.delete_alarm_strategy_v2 = DataAPI(
78-
method="POST",
79-
url=MONITOR_APIGATEWAY_ROOT + "delete_alarm_strategy_v2/",
80-
module=self.MODULE,
81-
description="删除告警策略V2",
82-
default_return_value=None,
83-
before_request=add_esb_info_before_request,
84-
)
8554
self.delete_alarm_strategy_v3 = DataAPI(
8655
method="POST",
87-
url=MONITOR_APIGATEWAY_ROOT + "delete_alarm_strategy_v3/",
56+
url=self._build_url("alarm_strategy/delete/", "delete_alarm_strategy_v3/"),
8857
module=self.MODULE,
8958
description="删除告警策略V3",
9059
default_return_value=None,
9160
before_request=add_esb_info_before_request,
9261
)
9362
self.search_alarm_strategy_v3 = DataAPI(
9463
method="POST",
95-
url=MONITOR_APIGATEWAY_ROOT + "search_alarm_strategy_v3",
64+
url=self._build_url("alarm_strategy/search/", "search_alarm_strategy_v3"),
9665
module=self.MODULE,
9766
description="查询告警策略V3",
9867
default_return_value=None,
9968
before_request=add_esb_info_before_request,
10069
)
10170
self.save_alarm_strategy_v3 = DataAPI(
10271
method="POST",
103-
url=MONITOR_APIGATEWAY_ROOT + "save_alarm_strategy_v3/",
72+
url=self._build_url("alarm_strategy/save/", "save_alarm_strategy_v3/"),
10473
module=self.MODULE,
10574
description="保存告警策略V3",
10675
default_return_value=None,
10776
before_request=add_esb_info_before_request,
10877
)
10978
self.query_log_relation = DataAPI(
11079
method="POST",
111-
url=MONITOR_APIGATEWAY_ROOT + "query_log_relation",
80+
url=self._build_url("apm/query_log_relation/", "query_log_relation"),
11281
module=self.MODULE,
11382
description="根据索引集id获取服务关联",
11483
default_return_value=None,
11584
before_request=add_esb_info_before_request,
11685
)
11786
self.create_or_update_report = DataAPI(
11887
method="POST",
119-
url=(MONITOR_APIGATEWAY_ROOT_NEW or MONITOR_APIGATEWAY_ROOT) + "create_or_update_report/",
88+
url=self._build_url("new_report/create_or_update_report/", "create_or_update_report/"),
12089
module=self.MODULE,
12190
description="创建或更新订阅报表",
12291
default_return_value=None,
12392
before_request=add_esb_info_before_request,
12493
)
12594
self.send_report = DataAPI(
12695
method="POST",
127-
url=(MONITOR_APIGATEWAY_ROOT_NEW or MONITOR_APIGATEWAY_ROOT) + "send_report/",
96+
url=self._build_url("new_report/send_report/", "send_report/"),
12897
module=self.MODULE,
12998
description="发送阅报表",
13099
default_return_value=None,
131100
before_request=add_esb_info_before_request,
132101
)
133102
self.get_reports = DataAPI(
134103
method="GET",
135-
url=(MONITOR_APIGATEWAY_ROOT_NEW or MONITOR_APIGATEWAY_ROOT) + "get_exist_reports/",
104+
url=self._build_url("new_report/get_exist_reports/", "get_exist_reports/"),
136105
module=self.MODULE,
137106
description="获取已存在的订阅报表",
138107
default_return_value=None,
139108
before_request=add_esb_info_before_request,
140109
)
141110
self.get_report_variables = DataAPI(
142111
method="GET",
143-
url=(MONITOR_APIGATEWAY_ROOT_NEW or MONITOR_APIGATEWAY_ROOT) + "get_report_variables/",
112+
url=self._build_url("new_report/get_report_variables/", "get_report_variables/"),
144113
module=self.MODULE,
145114
description="获取订阅报表的变量列表",
146115
default_return_value=None,
147116
before_request=add_esb_info_before_request,
148117
)
149118
self.search_alert = DataAPI(
150119
method="POST",
151-
url=(MONITOR_APIGATEWAY_ROOT_NEW or MONITOR_APIGATEWAY_ROOT) + "search_alert/",
120+
url=self._build_url("alert/search/", "search_alert/"),
152121
module=self.MODULE,
153122
description="查询告警",
154123
default_return_value=None,
155124
before_request=add_esb_info_before_request,
156125
)
157126
self.get_alert_detail = DataAPI(
158127
method="GET",
159-
url=(MONITOR_APIGATEWAY_ROOT_NEW or MONITOR_APIGATEWAY_ROOT) + "get_alert_detail/",
128+
url=self._build_url("alert/detail/", "get_alert_detail/"),
160129
module=self.MODULE,
161130
description="获取告警详情",
162131
default_return_value=None,
163132
before_request=add_esb_info_before_request,
164133
)
165134

135+
@property
136+
def use_apigw(self):
137+
return settings.USE_NEW_MONITOR_APIGATEWAY
138+
139+
def _build_url(self, new_path, old_path):
140+
return (
141+
f"{MONITOR_APIGATEWAY_ROOT_NEW}app/{new_path}" if self.use_apigw else f"{MONITOR_APIGATEWAY_ROOT}{old_path}"
142+
)
143+
166144

167145
MonitorApi = _MonitorApi()

0 commit comments

Comments
 (0)