提交 d5e24351 编写于 作者: 曾伟伟

net topo config bug fix

上级 bc748e79
package com.dianping.cat.report.page.network.nettopology;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import com.dianping.cat.Cat;
import com.dianping.cat.consumer.metric.model.entity.MetricItem;
......@@ -20,17 +14,8 @@ import com.dianping.cat.home.nettopo.entity.NetGraph;
import com.dianping.cat.home.nettopo.entity.NetGraphSet;
import com.dianping.cat.home.nettopo.entity.NetTopology;
import com.dianping.cat.home.nettopo.entity.Switch;
import com.dianping.cat.home.nettopo.transform.DefaultSaxParser;
public class NetGraphBuilder implements Initializable {
private NetGraph m_netGraphTemplate;
private Set<String> m_requireGroups;
public Set<String> buildRequireGroups() {
return m_requireGroups;
}
public class NetGraphBuilder {
public NetGraphSet buildGraphSet(NetGraph netGraphTemplate, Map<String, MetricReport> reports, List<String> alertKeys) {
NetGraphSet netGraphSet = new NetGraphSet();
......@@ -183,27 +168,4 @@ public class NetGraphBuilder implements Initializable {
}
}
@Override
public void initialize() throws InitializationException {
InputStream is = NetGraphManager.class.getResourceAsStream("/config/default-nettopology-config.xml");
NetGraphSet netGraphSet = null;
try {
netGraphSet = DefaultSaxParser.parse(is);
m_netGraphTemplate = netGraphSet.getNetGraphs().get(0);
is.close();
m_requireGroups = new HashSet<String>();
for (NetTopology netTopology : m_netGraphTemplate.getNetTopologies()) {
for (Connection connection : netTopology.getConnections()) {
for (Interface inter : connection.getInterfaces()) {
m_requireGroups.add(inter.getGroup());
}
}
}
} catch (Exception e) {
Cat.logError(e);
}
}
}
......@@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
......@@ -22,6 +23,8 @@ import com.dianping.cat.Constants;
import com.dianping.cat.ServerConfigManager;
import com.dianping.cat.consumer.metric.model.entity.MetricReport;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.home.nettopo.entity.Connection;
import com.dianping.cat.home.nettopo.entity.Interface;
import com.dianping.cat.home.nettopo.entity.NetGraph;
import com.dianping.cat.home.nettopo.entity.NetGraphSet;
import com.dianping.cat.home.nettopo.entity.NetTopology;
......@@ -105,11 +108,10 @@ public class NetGraphManager implements Initializable, LogEnabled {
}
}
private Map<String, MetricReport> queryMetricReports(Date date) {
Set<String> groupSet = m_netGraphBuilder.buildRequireGroups();
private Map<String, MetricReport> queryMetricReports(Set<String> groups, Date date) {
Map<String, MetricReport> reports = new HashMap<String, MetricReport>();
for (String group : groupSet) {
for (String group : groups) {
ModelRequest request = new ModelRequest(group, date.getTime());
MetricReport report = m_service.invoke(request);
......@@ -140,14 +142,24 @@ public class NetGraphManager implements Initializable, LogEnabled {
Transaction t = Cat.newTransaction("NetGraph", "M" + minuteStr);
try {
Map<String, MetricReport> currentMetricReports = queryMetricReports(TimeUtil.getCurrentHour());
List<String> alertKeys = m_alertInfo.queryLastestAlarmKey(5);
NetGraph netGraphTemplate = m_netGraphConfigManager.getConfig().getNetGraphs().get(0);
Set<String> groups = new HashSet<String>();
for (NetTopology netTopology : netGraphTemplate.getNetTopologies()) {
for (Connection connection : netTopology.getConnections()) {
for (Interface inter : connection.getInterfaces()) {
groups.add(inter.getGroup());
}
}
}
Map<String, MetricReport> currentMetricReports = queryMetricReports(groups, TimeUtil.getCurrentHour());
List<String> alertKeys = m_alertInfo.queryLastestAlarmKey(5);
m_currentNetGraphSet = m_netGraphBuilder.buildGraphSet(netGraphTemplate, currentMetricReports, alertKeys);
Date lastHour = new Date(TimeUtil.getCurrentHour().getTime() - TimeUtil.ONE_HOUR);
Map<String, MetricReport> lastHourReports = queryMetricReports(lastHour);
Map<String, MetricReport> lastHourReports = queryMetricReports(groups, lastHour);
m_lastNetGraphSet = m_netGraphBuilder.buildGraphSet(netGraphTemplate, lastHourReports, new ArrayList<String>());
t.setStatus(Transaction.SUCCESS);
......
......@@ -3,6 +3,7 @@ package com.dianping.cat.report.task.network;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
......@@ -12,8 +13,11 @@ import com.dianping.cat.configuration.NetworkInterfaceManager;
import com.dianping.cat.consumer.metric.model.entity.MetricReport;
import com.dianping.cat.core.dal.HourlyReport;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.home.nettopo.entity.Connection;
import com.dianping.cat.home.nettopo.entity.Interface;
import com.dianping.cat.home.nettopo.entity.NetGraph;
import com.dianping.cat.home.nettopo.entity.NetGraphSet;
import com.dianping.cat.home.nettopo.entity.NetTopology;
import com.dianping.cat.home.nettopo.transform.DefaultNativeBuilder;
import com.dianping.cat.report.page.network.nettopology.NetGraphBuilder;
import com.dianping.cat.report.service.ReportService;
......@@ -38,7 +42,17 @@ public class NetTopologyReportBuilder implements ReportTaskBuilder {
@Override
public boolean buildHourlyTask(String name, String domain, Date period) {
Set<String> groups = m_netGraphBuilder.buildRequireGroups();
NetGraph netGraphTemplate = m_netGraphConfigManager.getConfig().getNetGraphs().get(0);
Set<String> groups = new HashSet<String>();
for (NetTopology netTopology : netGraphTemplate.getNetTopologies()) {
for (Connection connection : netTopology.getConnections()) {
for (Interface inter : connection.getInterfaces()) {
groups.add(inter.getGroup());
}
}
}
Map<String, MetricReport> reports = new HashMap<String, MetricReport>();
for (String group : groups) {
......@@ -47,7 +61,7 @@ public class NetTopologyReportBuilder implements ReportTaskBuilder {
reports.put(group, report);
}
NetGraph netGraphTemplate = m_netGraphConfigManager.getConfig().getNetGraphs().get(0);
NetGraphSet netGraphSet = m_netGraphBuilder.buildGraphSet(netGraphTemplate, reports, new ArrayList<String>());
HourlyReport hourlyReport = new HourlyReport();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册