feat: 同步endpoint同时创建对应panel 和 chart
This commit is contained in:
@@ -1046,13 +1046,12 @@ public class SqlHandler {
|
||||
|
||||
// 告警相关数据同步
|
||||
alertMessageService.handler();
|
||||
|
||||
// 图表相关数据同步
|
||||
chartService.handler();
|
||||
|
||||
// project module endpoint 数据同步
|
||||
endpointService.handler();
|
||||
|
||||
// 图表相关数据同步
|
||||
chartService.handler();
|
||||
|
||||
// 将原来数据库的数据数据还原
|
||||
this.dataRestore();
|
||||
|
||||
|
||||
@@ -94,7 +94,9 @@ public class ChartServiceImpl extends ServiceImpl<ChartDao, Chart> implements Ch
|
||||
visualChart.setGroupId(0);
|
||||
visualChart.setName(chart.getTitle());
|
||||
visualChart.setHeight(chart.getHeight());
|
||||
visualChart.setPid(chart.getPid());
|
||||
if(!chart.getType().equals("assetInfo")) {
|
||||
visualChart.setPid(chart.getPid());
|
||||
}
|
||||
Panel panel = panelIdAndPanel.get(chart.getPanelId());
|
||||
if(panel.getType().equals("model")&& !chart.getType().equals("assetInfo")) {
|
||||
visualChart.setPanelId(0);
|
||||
|
||||
@@ -7,6 +7,7 @@ import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.log.Log;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nis.dao.DcDao;
|
||||
@@ -22,6 +23,8 @@ import com.nis.entity.MonitorModule;
|
||||
import com.nis.entity.MonitorProject;
|
||||
import com.nis.entity.Project;
|
||||
import com.nis.entity.SnmpCredential;
|
||||
import com.nis.entity.VisualChart;
|
||||
import com.nis.entity.VisualPanel;
|
||||
import com.nis.service.AssetService;
|
||||
import com.nis.service.DcService;
|
||||
import com.nis.service.EndpointService;
|
||||
@@ -32,9 +35,13 @@ import com.nis.service.MonitorModuleService;
|
||||
import com.nis.service.MonitorProjectService;
|
||||
import com.nis.service.ProjectService;
|
||||
import com.nis.service.SnmpCredentialService;
|
||||
import com.nis.service.VisualChartService;
|
||||
import com.nis.service.VisualPanelService;
|
||||
import com.nis.util.DateUtil;
|
||||
import com.nis.util.ToolUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -72,6 +79,12 @@ public class EndpointServiceImpl extends ServiceImpl<EndpointDao, Endpoint> impl
|
||||
@Autowired
|
||||
private AssetService assetService;
|
||||
|
||||
@Autowired
|
||||
private VisualPanelService visualPanelService;
|
||||
|
||||
@Autowired
|
||||
private VisualChartService visualChartService;
|
||||
|
||||
@Override
|
||||
public void handler() {
|
||||
|
||||
@@ -188,6 +201,9 @@ public class EndpointServiceImpl extends ServiceImpl<EndpointDao, Endpoint> impl
|
||||
// 同步endpoint信息
|
||||
List<Endpoint> endpoints = endpointService.list();
|
||||
List<MonitorEndpoint> monitorEndpoints =new ArrayList<MonitorEndpoint>();
|
||||
|
||||
Map<MonitorEndpoint,VisualPanel> endpointAndPanel = new HashMap<MonitorEndpoint,VisualPanel>();
|
||||
Map<MonitorEndpoint,VisualChart> endpointAndChart = new HashMap<MonitorEndpoint,VisualChart>();
|
||||
for(Endpoint endpoint : endpoints) {
|
||||
Map<String,Object> configs =new HashMap<String,Object>();
|
||||
configs.put("metrics_path", endpoint.getPath());
|
||||
@@ -222,11 +238,53 @@ public class EndpointServiceImpl extends ServiceImpl<EndpointDao, Endpoint> impl
|
||||
String hash = endpoint.getModuleId() + endpoint.getAssetId() + JSON.toJSONString(configs);
|
||||
monitorEndpoint.setHash(String.valueOf(Math.abs(MurmurHash.hash64(hash))));
|
||||
monitorEndpoints.add(monitorEndpoint);
|
||||
|
||||
//创建endpoint panel
|
||||
VisualPanel panel = new VisualPanel();
|
||||
endpointAndPanel.put(monitorEndpoint, panel);
|
||||
//创建endpoint chart endpointInfo
|
||||
VisualChart chart =new VisualChart();
|
||||
endpointAndChart.put(monitorEndpoint, chart);
|
||||
}
|
||||
|
||||
if(ToolUtil.isNotEmpty(monitorEndpoints)) {
|
||||
monitorEndpointService.saveBatch(monitorEndpoints);
|
||||
}
|
||||
|
||||
VisualPanel lastPanel = visualPanelService.getOne(new QueryWrapper<VisualPanel>().orderByDesc("id").last("limit 1"));
|
||||
Integer id = lastPanel.getId()+10;
|
||||
List<VisualChart> charts =new ArrayList<VisualChart>();
|
||||
for(MonitorEndpoint monitorEndpoint:monitorEndpoints) {
|
||||
VisualPanel visualPanel = endpointAndPanel.get(monitorEndpoint);
|
||||
visualPanel.setId(id);
|
||||
visualPanel.setName("endpoint_panel_" + monitorEndpoint.getId());
|
||||
visualPanel.setType("endpoint");
|
||||
visualPanel.setPid(0);
|
||||
visualPanel.setLink(monitorEndpoint.getId());
|
||||
visualPanel.setWeight(0);
|
||||
visualPanel.setCreateBy(1);
|
||||
visualPanelService.save(visualPanel);
|
||||
|
||||
VisualChart visualChart = endpointAndChart.get(monitorEndpoint);
|
||||
visualChart.setName("{{endpoint.name}}");
|
||||
visualChart.setType("endpointInfo");
|
||||
visualChart.setSpan(12);
|
||||
visualChart.setHeight(4);
|
||||
visualChart.setUnit(2);
|
||||
visualChart.setParam(null);
|
||||
visualChart.setPanelId(id);
|
||||
visualChart.setGroupId(0);
|
||||
visualChart.setUpdateBy(1);
|
||||
Date utcTime = DateUtil.getUTCTimeByConfigTimeZone();
|
||||
visualChart.setUpdateAt(utcTime);
|
||||
charts.add(visualChart);
|
||||
|
||||
id++;
|
||||
}
|
||||
|
||||
if(ToolUtil.isNotEmpty(charts)) {
|
||||
visualChartService.saveBatch(charts);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user