@riil-frontend/component-topology 12.1.4 → 12.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.js +12 -12
- package/es/core/components/TopoView/topoView.js +8 -2
- package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +6 -5
- package/es/core/hooks/useAlarm.js +4 -14
- package/es/core/hooks/useGraphAlarmDisplay.js +38 -19
- package/es/core/hooks/useLinkAlarmDisplay.js +161 -0
- package/es/core/models/Alarm.js +3 -3
- package/es/core/models/TopoApp.js +1 -1
- package/es/core/store/models/topoAlarm.js +7 -5
- package/es/core/utils/alarmUtil.js +11 -0
- package/lib/core/components/TopoView/topoView.js +8 -2
- package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +6 -5
- package/lib/core/hooks/useAlarm.js +4 -14
- package/lib/core/hooks/useGraphAlarmDisplay.js +41 -21
- package/lib/core/hooks/useLinkAlarmDisplay.js +173 -0
- package/lib/core/models/Alarm.js +12 -24
- package/lib/core/models/TopoApp.js +1 -1
- package/lib/core/store/models/topoAlarm.js +13 -12
- package/lib/core/utils/alarmUtil.js +17 -0
- package/package.json +2 -2
@@ -0,0 +1,173 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
exports.__esModule = true;
|
6
|
+
exports["default"] = useLinkAlarmDisplay;
|
7
|
+
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
9
|
+
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
11
|
+
|
12
|
+
var _react = require("react");
|
13
|
+
|
14
|
+
var _ahooks = require("ahooks");
|
15
|
+
|
16
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
17
|
+
|
18
|
+
var _DictCache = _interopRequireDefault(require("../models/cache/DictCache"));
|
19
|
+
|
20
|
+
function getLinkDev(datas) {
|
21
|
+
// console.log("datas------------------", datas);
|
22
|
+
var linkDevDoc = {};
|
23
|
+
var linkIds = datas.filter(function (item) {
|
24
|
+
return item.ciType === "network_link";
|
25
|
+
}).map(function (item) {
|
26
|
+
linkDevDoc[item.id] = [item.source, item.target];
|
27
|
+
return item.id;
|
28
|
+
});
|
29
|
+
return {
|
30
|
+
linkIds: linkIds,
|
31
|
+
linkDevDoc: linkDevDoc
|
32
|
+
};
|
33
|
+
}
|
34
|
+
|
35
|
+
function getlinkAlarmLevels(alarmList, resources) {
|
36
|
+
var _getLinkDev = getLinkDev(resources),
|
37
|
+
linkDevDoc = _getLinkDev.linkDevDoc; // console.log("linkAlarmLevels-----------1", linkDevDoc, alarmList);
|
38
|
+
|
39
|
+
|
40
|
+
if (!alarmList) {
|
41
|
+
return [];
|
42
|
+
}
|
43
|
+
|
44
|
+
var alarms = alarmList.filter(function (alarm) {
|
45
|
+
return alarm.obj.alertTypeCode === "availAlert";
|
46
|
+
}).map(function (item) {
|
47
|
+
return item.id;
|
48
|
+
});
|
49
|
+
return Object.keys(linkDevDoc).filter(function (item) {
|
50
|
+
return _lodash["default"].intersection(linkDevDoc[item], alarms).length > 0;
|
51
|
+
}).map(function (item) {
|
52
|
+
return {
|
53
|
+
id: item,
|
54
|
+
level: 1
|
55
|
+
};
|
56
|
+
});
|
57
|
+
;
|
58
|
+
}
|
59
|
+
/**
|
60
|
+
* 处理链路显示
|
61
|
+
* @param {*} props
|
62
|
+
* @returns
|
63
|
+
*/
|
64
|
+
|
65
|
+
|
66
|
+
function useLinkAlarmDisplay(props) {
|
67
|
+
var topo = props.topo,
|
68
|
+
resources = props.resources,
|
69
|
+
graphLoaded = props.graphLoaded,
|
70
|
+
alarmList = props.alarmList;
|
71
|
+
|
72
|
+
var _useState = (0, _react.useState)(getLinkDev(resources).linkIds),
|
73
|
+
linkIds = _useState[0],
|
74
|
+
setLinkIds = _useState[1];
|
75
|
+
|
76
|
+
var _useState2 = (0, _react.useState)([]),
|
77
|
+
linkRunStatus = _useState2[0],
|
78
|
+
setLinkRunStatus = _useState2[1];
|
79
|
+
|
80
|
+
var _useState3 = (0, _react.useState)(getLinkDev(resources).linkDevDoc),
|
81
|
+
linkDev = _useState3[0],
|
82
|
+
setLinkDev = _useState3[1]; // console.log("alarmList----------sssss", alarmList);
|
83
|
+
|
84
|
+
|
85
|
+
(0, _react.useEffect)(function () {
|
86
|
+
var ids = getLinkDev(resources).linkIds;
|
87
|
+
|
88
|
+
if (linkIds.join(",") !== ids.join(",")) {
|
89
|
+
setLinkIds(ids);
|
90
|
+
}
|
91
|
+
}, [resources]);
|
92
|
+
|
93
|
+
function getLinkRunStatus(_x) {
|
94
|
+
return _getLinkRunStatus.apply(this, arguments);
|
95
|
+
} // 轮询hooks
|
96
|
+
|
97
|
+
|
98
|
+
function _getLinkRunStatus() {
|
99
|
+
_getLinkRunStatus = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(ids) {
|
100
|
+
var _yield$Promise$all, ciMetricsResult;
|
101
|
+
|
102
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
103
|
+
while (1) switch (_context.prev = _context.next) {
|
104
|
+
case 0:
|
105
|
+
if (ids.length) {
|
106
|
+
_context.next = 2;
|
107
|
+
break;
|
108
|
+
}
|
109
|
+
|
110
|
+
return _context.abrupt("return", []);
|
111
|
+
|
112
|
+
case 2:
|
113
|
+
_context.t0 = Promise;
|
114
|
+
_context.t1 = // 查询指标值
|
115
|
+
topo.serverApi.ciInfo.batchQueryCiInfo({
|
116
|
+
ciId: [],
|
117
|
+
codes: ["run_status", "remote_ping_status"],
|
118
|
+
relationId: ids.map(function (id) {
|
119
|
+
return {
|
120
|
+
ciId: id,
|
121
|
+
operation: "delete"
|
122
|
+
};
|
123
|
+
})
|
124
|
+
});
|
125
|
+
_context.next = 6;
|
126
|
+
return _DictCache["default"].init();
|
127
|
+
|
128
|
+
case 6:
|
129
|
+
_context.t2 = _context.sent;
|
130
|
+
_context.t3 = [_context.t1, _context.t2];
|
131
|
+
_context.next = 10;
|
132
|
+
return _context.t0.all.call(_context.t0, _context.t3);
|
133
|
+
|
134
|
+
case 10:
|
135
|
+
_yield$Promise$all = _context.sent;
|
136
|
+
ciMetricsResult = _yield$Promise$all[0];
|
137
|
+
return _context.abrupt("return", ciMetricsResult);
|
138
|
+
|
139
|
+
case 13:
|
140
|
+
case "end":
|
141
|
+
return _context.stop();
|
142
|
+
}
|
143
|
+
}, _callee);
|
144
|
+
}));
|
145
|
+
return _getLinkRunStatus.apply(this, arguments);
|
146
|
+
}
|
147
|
+
|
148
|
+
var _useRequest = (0, _ahooks.useRequest)(getLinkRunStatus, {
|
149
|
+
pollingInterval: 60 * 1000,
|
150
|
+
pollingWhenHidden: false,
|
151
|
+
// debounceInterval: 200,
|
152
|
+
manual: true,
|
153
|
+
onSuccess: function onSuccess(result) {
|
154
|
+
setLinkRunStatus(result.map(function (item) {
|
155
|
+
return {
|
156
|
+
id: item.id,
|
157
|
+
runStatus: item.metrics.run_status
|
158
|
+
};
|
159
|
+
}));
|
160
|
+
}
|
161
|
+
}),
|
162
|
+
run = _useRequest.run;
|
163
|
+
|
164
|
+
(0, _react.useEffect)(function () {
|
165
|
+
if (graphLoaded) {
|
166
|
+
run(linkIds);
|
167
|
+
}
|
168
|
+
}, [graphLoaded, linkIds]);
|
169
|
+
return {
|
170
|
+
linkRunStatus: linkRunStatus,
|
171
|
+
getlinkAlarmLevels: getlinkAlarmLevels
|
172
|
+
};
|
173
|
+
}
|
package/lib/core/models/Alarm.js
CHANGED
@@ -11,12 +11,12 @@ var _dialog = _interopRequireDefault(require("@alifd/next/lib/dialog"));
|
|
11
11
|
|
12
12
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
13
13
|
|
14
|
-
var
|
15
|
-
|
16
|
-
var _componentTopologyUtils = require("@riil-frontend/component-topology-utils");
|
14
|
+
var _loglevel = _interopRequireDefault(require("loglevel"));
|
17
15
|
|
18
16
|
var _utils = require("@riil-frontend/utils");
|
19
17
|
|
18
|
+
var rlog = _loglevel["default"].getLogger('topo');
|
19
|
+
|
20
20
|
var Alarm = /*#__PURE__*/function () {
|
21
21
|
function Alarm() {
|
22
22
|
this.topo = void 0;
|
@@ -94,8 +94,7 @@ var Alarm = /*#__PURE__*/function () {
|
|
94
94
|
return;
|
95
95
|
}
|
96
96
|
|
97
|
-
|
98
|
-
|
97
|
+
rlog.info('Alarm.open 打开告警通道', id);
|
99
98
|
this.openTopoAlarm(id);
|
100
99
|
this.hmGetTopoAlarmByDoc(id);
|
101
100
|
}
|
@@ -115,10 +114,9 @@ var Alarm = /*#__PURE__*/function () {
|
|
115
114
|
return;
|
116
115
|
}
|
117
116
|
|
118
|
-
|
117
|
+
rlog.info('关闭告警通道', currentTopoId); // 取消订阅告警推送
|
119
118
|
// 关闭告警推送通道
|
120
119
|
|
121
|
-
|
122
120
|
this.closeTopoAlarm(currentTopoId);
|
123
121
|
};
|
124
122
|
|
@@ -197,9 +195,7 @@ var Alarm = /*#__PURE__*/function () {
|
|
197
195
|
while (1) switch (_context2.prev = _context2.next) {
|
198
196
|
case 0:
|
199
197
|
result = this.getAlarms();
|
200
|
-
|
201
|
-
_componentTopologyUtils.rlog.debug('hmGetTopoAlarmByDoc', result);
|
202
|
-
|
198
|
+
rlog.debug('hmGetTopoAlarmByDoc', result);
|
203
199
|
alarms = result.map(function (item) {
|
204
200
|
return item.obj;
|
205
201
|
});
|
@@ -333,9 +329,7 @@ var Alarm = /*#__PURE__*/function () {
|
|
333
329
|
|
334
330
|
case 11:
|
335
331
|
this.secretKey = _context5.sent;
|
336
|
-
|
337
|
-
_componentTopologyUtils.rlog.info('openTopoAlarm 打开拓扑告警推送-------------------开始');
|
338
|
-
|
332
|
+
rlog.info('openTopoAlarm 打开拓扑告警推送-------------------开始');
|
339
333
|
this.updateState({
|
340
334
|
alarmOpening: false,
|
341
335
|
alarmIsOpened: true
|
@@ -346,9 +340,7 @@ var Alarm = /*#__PURE__*/function () {
|
|
346
340
|
case 16:
|
347
341
|
_context5.prev = 16;
|
348
342
|
_context5.t0 = _context5["catch"](8);
|
349
|
-
|
350
|
-
_componentTopologyUtils.rlog.error('打开拓扑告警推送 失败');
|
351
|
-
|
343
|
+
rlog.error('打开拓扑告警推送 失败');
|
352
344
|
this.updateState({
|
353
345
|
alarmOpening: false
|
354
346
|
});
|
@@ -394,9 +386,7 @@ var Alarm = /*#__PURE__*/function () {
|
|
394
386
|
|
395
387
|
case 3:
|
396
388
|
this.currentTopoId = null;
|
397
|
-
|
398
|
-
_componentTopologyUtils.rlog.debug('useAlarm.useEffect 告警WebSocket 结束');
|
399
|
-
|
389
|
+
rlog.debug('useAlarm.useEffect 告警WebSocket 结束');
|
400
390
|
this.updateState({
|
401
391
|
topoAlarmIsOpen: false,
|
402
392
|
alarmOpening: false,
|
@@ -478,7 +468,7 @@ var Alarm = /*#__PURE__*/function () {
|
|
478
468
|
resIdsList = resAndMetrics.resIdsList, nodeIdsList = resAndMetrics.nodeIdsList, linkIdsList = resAndMetrics.linkIdsList;
|
479
469
|
alarmDispatchers = this.topo.store.getModelDispatchers('topoAlarm'); // 添加事件
|
480
470
|
|
481
|
-
|
471
|
+
rlog.debug("handleAlarmEvent-接收到推送的原始告警信息", alertData);
|
482
472
|
|
483
473
|
if (!((0, _utils.isAvailableArray)(alertData) && (0, _utils.isAvailableArray)(resIdsList))) {
|
484
474
|
_context8.next = 25;
|
@@ -521,8 +511,7 @@ var Alarm = /*#__PURE__*/function () {
|
|
521
511
|
break;
|
522
512
|
}
|
523
513
|
|
524
|
-
|
525
|
-
|
514
|
+
rlog.debug('过滤掉非本拓扑的告警信息 告警开关-推送告警到ht-alarmIsOpened-sendAl', alarmIsOpened, sendAl);
|
526
515
|
_context8.prev = 13;
|
527
516
|
_context8.next = 16;
|
528
517
|
return alarmDispatchers.combAlarmData({
|
@@ -556,8 +545,7 @@ var Alarm = /*#__PURE__*/function () {
|
|
556
545
|
case 22:
|
557
546
|
_context8.prev = 22;
|
558
547
|
_context8.t0 = _context8["catch"](13);
|
559
|
-
|
560
|
-
_componentTopologyUtils.rlog.error('告警发送异常', _context8.t0);
|
548
|
+
rlog.error('告警发送异常', _context8.t0);
|
561
549
|
|
562
550
|
case 25:
|
563
551
|
case "end":
|
@@ -54,7 +54,7 @@ var _SelectionModel = _interopRequireDefault(require("./SelectionModel"));
|
|
54
54
|
var _CiCache = _interopRequireDefault(require("./cache/CiCache"));
|
55
55
|
|
56
56
|
// eslint-disable-next-line no-undef
|
57
|
-
var version = typeof "12.1.
|
57
|
+
var version = typeof "12.1.7" === 'string' ? "12.1.7" : null;
|
58
58
|
console.info("\u62D3\u6251\u7248\u672C: " + version);
|
59
59
|
/**
|
60
60
|
* 拓扑显示和编辑
|
@@ -11,14 +11,17 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
11
11
|
|
12
12
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
13
13
|
|
14
|
-
var
|
14
|
+
var _loglevel = _interopRequireDefault(require("loglevel"));
|
15
15
|
|
16
16
|
var _lodash = _interopRequireDefault(require("lodash"));
|
17
17
|
|
18
18
|
/**
|
19
19
|
* 告警
|
20
20
|
*/
|
21
|
-
var
|
21
|
+
var rlog = _loglevel["default"].getLogger('topo'); // 在活告警状态
|
22
|
+
|
23
|
+
|
24
|
+
var aliveAlarmStatus = ["toDeal", "dealing", "change", "woDealing"];
|
22
25
|
|
23
26
|
var sortList = function sortList(a, b) {
|
24
27
|
if (a.level === b.level) {
|
@@ -122,7 +125,7 @@ function _default(topo) {
|
|
122
125
|
|
123
126
|
if ((resIdsList || []).indexOf(rid) >= 0) {
|
124
127
|
if (record.indexOf(item.alertId) < 0) {
|
125
|
-
if (
|
128
|
+
if (aliveAlarmStatus.indexOf(item.status) >= 0) {
|
126
129
|
// rlog.debug("这是一条新告警", item);
|
127
130
|
record.push(item.alertId);
|
128
131
|
|
@@ -138,7 +141,7 @@ function _default(topo) {
|
|
138
141
|
doc[rid] = [item];
|
139
142
|
}
|
140
143
|
} else {
|
141
|
-
|
144
|
+
rlog.warn("接收到异常或已关闭的告警", item);
|
142
145
|
}
|
143
146
|
} else {
|
144
147
|
sliceTag = doc[rid].findIndex(function (x) {
|
@@ -152,7 +155,7 @@ function _default(topo) {
|
|
152
155
|
// item
|
153
156
|
// );
|
154
157
|
|
155
|
-
if (
|
158
|
+
if (aliveAlarmStatus.indexOf(item.status) >= 0) {
|
156
159
|
if (item.status === "change") {
|
157
160
|
old = doc[rid][sliceTag];
|
158
161
|
|
@@ -164,10 +167,9 @@ function _default(topo) {
|
|
164
167
|
}));
|
165
168
|
|
166
169
|
doc[rid] = _newArr.sort(sortList);
|
167
|
-
|
168
|
-
_rlog["default"].debug("告警级别变更", doc[rid], item);
|
170
|
+
rlog.debug("告警级别变更", doc[rid], item);
|
169
171
|
} else {
|
170
|
-
|
172
|
+
rlog.debug("接收到异常的重复告警", item);
|
171
173
|
}
|
172
174
|
} else {// rlog.debug("重复告警", item);
|
173
175
|
}
|
@@ -180,7 +182,7 @@ function _default(topo) {
|
|
180
182
|
doc[rid] = _newArr2;
|
181
183
|
}
|
182
184
|
|
183
|
-
|
185
|
+
rlog.debug("该告警移除状态-status", item.status, doc[rid], doc);
|
184
186
|
|
185
187
|
if (doc[rid].length === 0) {
|
186
188
|
delete doc[rid];
|
@@ -221,14 +223,13 @@ function _default(topo) {
|
|
221
223
|
}); // 传递给HT时,链路要用r开头的id
|
222
224
|
// rlog.debug('xxxxxxxxxxxxxxxxxxxx', doc[id][0], alarmObj.status);
|
223
225
|
|
224
|
-
return
|
226
|
+
return aliveAlarmStatus.indexOf(alarmObj.status) >= 0 ? alarmObj : null;
|
225
227
|
} else {
|
226
228
|
return null;
|
227
229
|
}
|
228
230
|
}));
|
229
231
|
eqFlag = _lodash["default"].isEqual(_lodash["default"].sortBy(alarmlist), _lodash["default"].sortBy(currentAlarmList));
|
230
|
-
|
231
|
-
_rlog["default"].debug("告警归档结束", eqFlag, currentAlarmList, alarmlist, doc, record);
|
232
|
+
rlog.debug("告警归档结束", eqFlag, currentAlarmList, alarmlist, doc, record);
|
232
233
|
|
233
234
|
_this2.update({
|
234
235
|
alarmDoc: doc,
|
@@ -0,0 +1,17 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports.isAlarmAlive = void 0;
|
5
|
+
// 告警在活状态
|
6
|
+
var Alarm_alive_Status = ["toDeal", "dealing", "change", "woDealing"];
|
7
|
+
/**
|
8
|
+
* 告警是否在活
|
9
|
+
* @param {*} alarm
|
10
|
+
* @returns
|
11
|
+
*/
|
12
|
+
|
13
|
+
var isAlarmAlive = function isAlarmAlive(alarm) {
|
14
|
+
return Alarm_alive_Status.includes(alarm.status);
|
15
|
+
};
|
16
|
+
|
17
|
+
exports.isAlarmAlive = isAlarmAlive;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@riil-frontend/component-topology",
|
3
|
-
"version": "12.1.
|
3
|
+
"version": "12.1.7",
|
4
4
|
"description": "拓扑",
|
5
5
|
"scripts": {
|
6
6
|
"start": "build-scripts start",
|
@@ -123,6 +123,6 @@
|
|
123
123
|
"access": "public"
|
124
124
|
},
|
125
125
|
"license": "MIT",
|
126
|
-
"homepage": "https://unpkg.com/@riil-frontend/component-topology@12.1.
|
126
|
+
"homepage": "https://unpkg.com/@riil-frontend/component-topology@12.1.7/build/index.html",
|
127
127
|
"gitHead": "2da19ffccbb7ca60a8acf396e39f542c68bb33f5"
|
128
128
|
}
|