feat: 同步endpoint同时创建对应panel 和 chart

This commit is contained in:
tanghao
2021-05-22 13:31:15 +08:00
parent 80a1dea752
commit 39e415c491
3 changed files with 64 additions and 5 deletions

View File

@@ -1046,13 +1046,12 @@ public class SqlHandler {
// 告警相关数据同步
alertMessageService.handler();
// 图表相关数据同步
chartService.handler();
// project module endpoint 数据同步
endpointService.handler();
// 图表相关数据同步
chartService.handler();
// 将原来数据库的数据数据还原
this.dataRestore();

View File

@@ -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);

View File

@@ -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);
}
}
}