📄 reportdetailsbean.java
字号:
}
XYAreaRenderer renderer = new XYAreaRenderer(4, labelGenerator, null);
renderer.setSeriesPaint(0, outColor);
XYPlot plot = new XYPlot(dataset2, xAxis, yAxis, renderer);
XYItemRenderer renderer2 = new StandardXYItemRenderer();
renderer2.setSeriesPaint(0, inColor);
renderer2.setToolTipGenerator(new StandardXYItemLabelGenerator(new SimpleDateFormat("d-MMM-yyyy"), new DecimalFormat("0.00")));
plot.setSecondaryDataset(0, dataset1);
plot.setSecondaryRenderer(0, renderer2);
plot.setInsets(new Insets(25, 25, 10, 25));
DateAxis dateAxis = (DateAxis)plot.getDomainAxis();
dateAxis.setRange(new Date(stTime), new Date(edTime));
dateAxis.setTickUnit(getUtil().setAppropriateTickUnit(edTime - stTime));
if(dataset1 == null && dataset2 == null)
plot.setNoDataMessage("No data for this selection");
plot.setDatasetRenderingOrder(DatasetRenderingOrder.REVERSE);
JFreeChart chart = new JFreeChart(null, JFreeChartConstants.DEFAULT_TITLE_FONT, plot, false);
chart.setBackgroundPaint(new Color(255, 255, 255));
String filenamePrefix = "myChart" + System.currentTimeMillis();
ServletUtilities.setTempFilePrefix(filenamePrefix);
String filePNGName = null;
try
{
filePNGName = ServletUtilities.saveChartAsPNG(chart, 617, 190, null, session);
}
catch(Exception ee)
{
nfLogger.severe("Error in generateGraphTimeSeries Method : " + ee.getMessage());
ee.printStackTrace();
}
nfLogger.finer("PNG file Name in generateGraphTimeSeries() :" + filePNGName);
return filePNGName;
}
//Create Troubleshoot Traffic Trend Graphics
public String generateGraphTimeSeries_troubleshoot(TableXYDataset dataset, DateAxis xAxis, String yAUnit, HttpSession session, String graphOption, long stTime,
long edTime, long thresholdValue, long ptTime)
{
Hashtable myHash = splitTimeTableXYDataset(dataset);
org.jfree.data.XYDataset dataset1 = null;
org.jfree.data.XYDataset dataset2 = null;
if(myHash != null && myHash.containsKey("IN"))
dataset1 = (TimeTableXYDataset)myHash.get("IN");
if(myHash != null && myHash.containsKey("OUT"))
dataset2 = (TimeTableXYDataset)myHash.get("OUT");
StandardXYItemLabelGenerator labelGenerator = new StandardXYItemLabelGenerator(new SimpleDateFormat("dd-MMM-yyyy", Locale.UK));
String yAxisUnit = "Traffic (" + yAUnit + ")";
NumberAxis yAxis = new NumberAxis(yAxisUnit);
yAxis.setAutoRangeIncludesZero(true);
yAxis.setLabelAngle(50.25D);
if(graphOption.equalsIgnoreCase("percentage"))
{
yAxis.setMinimumAxisValue(0.0D);
yAxis.setMaximumAxisValue(100D);
}
XYAreaRenderer renderer = new XYAreaRenderer(4, labelGenerator, null);
renderer.setSeriesPaint(0, new Color(0, 255, 0));
XYPlot plot = new XYPlot(dataset2, xAxis, yAxis, renderer);
XYItemRenderer renderer2 = new StandardXYItemRenderer();
renderer2.setSeriesPaint(0, inColor);
renderer2.setToolTipGenerator(new StandardXYItemLabelGenerator(new SimpleDateFormat("d-MMM-yyyy"), new DecimalFormat("0.00")));
plot.setSecondaryDataset(0, dataset1);
plot.setSecondaryRenderer(0, renderer2);
double tvalue = (new Long(thresholdValue)).doubleValue();
if(tvalue != 0.0D)
{
plot.addRangeMarker(new ValueMarker(tvalue));
String str = "Threshold " + tvalue + "%";
double deg = 0.0D;
if(tvalue <= 70D)
{
deg = 225D;
} else
{
tvalue += 10D;
deg = 45D;
}
XYPointerAnnotation XYPtAnn = new XYPointerAnnotation(str, ptTime, tvalue - 5D, deg);
XYPtAnn.setArrowLength(5D);
XYPtAnn.setLabelOffset(10D);
plot.addAnnotation(XYPtAnn);
}
plot.setInsets(new Insets(25, 25, 10, 25));
DateAxis dateAxis = (DateAxis)plot.getDomainAxis();
dateAxis.setRange(new Date(stTime), new Date(edTime));
dateAxis.setTickUnit(getUtil().setAppropriateTickUnit(edTime - stTime));
if(dataset1 == null && dataset2 == null)
plot.setNoDataMessage("No data for this selection");
plot.setDatasetRenderingOrder(DatasetRenderingOrder.REVERSE);
JFreeChart chart = new JFreeChart(null, JFreeChartConstants.DEFAULT_TITLE_FONT, plot, false);
chart.setBackgroundPaint(new Color(255, 255, 255));
String filenamePrefix = "myChart" + System.currentTimeMillis();
ServletUtilities.setTempFilePrefix(filenamePrefix);
String filePNGName = null;
try
{
filePNGName = ServletUtilities.saveChartAsPNG(chart, 617, 190, null, session);
}
catch(Exception ee)
{
nfLogger.severe("Error in generateGraphTimeSeries Method : " + ee.getMessage());
ee.printStackTrace();
}
nfLogger.finer("PNG file Name in generateGraphTimeSeries() :" + filePNGName);
return filePNGName;
}
//Create Application Pie charts
private Vector createPieCharts(Vector vect, String getWhat, String ipInterface, HttpSession session)
{
Vector sourceVect = new Vector();
Vector destVect = new Vector();
Vector appVect = new Vector();
Vector allVect = new Vector();
LinkedHashMap sourceHash = new LinkedHashMap();
LinkedHashMap destHash = new LinkedHashMap();
LinkedHashMap appHash = new LinkedHashMap();
for(int i = 0; i < vect.size(); i++)
{
Vector indVect = (Vector)vect.get(i);
float total = 0.0F;
if(sourceHash.containsKey(indVect.elementAt(0)))
{
float exist = 0.0F;
float newer = 0.0F;
if(indVect.elementAt(0) != null)
exist = ((Float)sourceHash.get(indVect.elementAt(0))).floatValue();
if(indVect.elementAt(5) != null)
newer = Float.parseFloat((String)indVect.get(5));
total = exist + newer;
} else
if(indVect.elementAt(5) != null)
total = Float.parseFloat((String)indVect.get(5));
sourceHash.put(indVect.elementAt(0), new Float(total));
float total1 = 0.0F;
if(destHash.containsKey(indVect.elementAt(1)))
{
float exist = 0.0F;
float newer = 0.0F;
if(indVect.elementAt(1) != null)
exist = ((Float)destHash.get(indVect.elementAt(1))).floatValue();
if(indVect.elementAt(5) != null)
newer = Float.parseFloat((String)indVect.get(5));
total1 = exist + newer;
} else
if(indVect.get(5) != null)
total1 = Float.parseFloat((String)indVect.get(5));
destHash.put(indVect.elementAt(1), new Float(total1));
float total2 = 0.0F;
if(appHash.containsKey(indVect.elementAt(2)))
{
float exist = 0.0F;
float newer = 0.0F;
if(indVect.elementAt(2) != null)
exist = ((Float)appHash.get(indVect.elementAt(2))).floatValue();
if(indVect.elementAt(5) != null)
newer = Float.parseFloat((String)indVect.get(5));
total2 = exist + newer;
} else
if(indVect.get(5) != null)
total2 = Float.parseFloat((String)indVect.get(5));
appHash.put(indVect.elementAt(2), new Float(total2));
}
Vector tempV;
for(Iterator enu = sourceHash.keySet().iterator(); enu.hasNext(); sourceVect.add(tempV))
{
String sourceAddress = (String)enu.next();
String volume = Float.toString(((Float)sourceHash.get(sourceAddress)).floatValue());
tempV = new Vector();
tempV.add(volume);
tempV.add(sourceAddress);
}
for(Iterator enu1 = destHash.keySet().iterator(); enu1.hasNext(); destVect.add(tempV))
{
String destAddress = (String)enu1.next();
String volume = Float.toString(((Float)destHash.get(destAddress)).floatValue());
tempV = new Vector();
tempV.add(volume);
tempV.add(destAddress);
}
for(Iterator enu2 = appHash.keySet().iterator(); enu2.hasNext(); appVect.add(tempV))
{
String appValue = (String)enu2.next();
String volume = Float.toString(((Float)appHash.get(appValue)).floatValue());
tempV = new Vector();
tempV.add(volume);
tempV.add(appValue);
}
allVect.add(sourceVect);
allVect.add(destVect);
allVect.add(appVect);
return allVect;
}
// Fetch Source IP Traffic from netflow database
public Hashtable getSrcTraffic(int routerID)
{
long times = System.currentTimeMillis() - 0x36ee80L;
String srcQuery = "";
if(routerID != -1)
srcQuery = "select NetFlow_Interface.INTERFACE_ID, sum(OCTETS * 8), COLLECTION_TIME, NetFlow_Interface.SPEED from NetFlow_Router, NetFlow_Interface, SrcIf10Min where NetFlow_Router.ROUTER_ID = NetFlow_Interface.ROUTER_ID AND NetFlow_Interface.INTERFACE_ID = SrcIf10Min.SRC_IF and NetFlow_Interface.STATE = 0 and NetFlow_Router.ROUTER_ID = " + routerID + " and SrcIf10Min.COLLECTION_TIME >= '" + getUtil().getTimeStamp(times) + "' group by SrcIf10Min.SRC_IF order by null";
else
srcQuery = "select NetFlow_Interface.INTERFACE_ID, sum(OCTETS * 8), COLLECTION_TIME, NetFlow_Interface.SPEED from NetFlow_Interface, SrcIf10Min where NetFlow_Interface.INTERFACE_ID = SrcIf10Min.SRC_IF and NetFlow_Interface.STATE = 0 and SrcIf10Min.COLLECTION_TIME >= '" + getUtil().getTimeStamp(times) + "' group by SrcIf10Min.SRC_IF order by null";
nfLogger.finer("query in getSrcTraffic is " + srcQuery);
return DBQueryUtil.getInstance().getTrafficForInterfaces(srcQuery);
}
// Fetch Target IP Traffic from netflow database
public Hashtable getDstTraffic(int routerID)
{
long times = System.currentTimeMillis() - 0x36ee80L;
String dstQuery = "";
if(routerID != -1)
dstQuery = "select NetFlow_Interface.INTERFACE_ID, sum(OCTETS * 8), COLLECTION_TIME, NetFlow_Interface.SPEED from NetFlow_Router, NetFlow_Interface, DstIf10Min where NetFlow_Router.ROUTER_ID = NetFlow_Interface.ROUTER_ID AND NetFlow_Interface.INTERFACE_ID = DstIf10Min.DST_IF and NetFlow_Interface.STATE = 0 and NetFlow_Router.ROUTER_ID = " + routerID + " and DstIf10Min.COLLECTION_TIME >= '" + getUtil().getTimeStamp(times) + "' group by DstIf10Min.DST_IF order by null";
else
dstQuery = "select NetFlow_Interface.INTERFACE_ID, sum(OCTETS * 8), COLLECTION_TIME, NetFlow_Interface.SPEED from NetFlow_Interface, DstIf10Min where NetFlow_Interface.INTERFACE_ID = DstIf10Min.DST_IF and NetFlow_Interface.STATE = 0 and DstIf10Min.COLLECTION_TIME >= '" + getUtil().getTimeStamp(times) + "' group by DstIf10Min.DST_IF order by null";
nfLogger.finer("query in getDstTraffic is " + dstQuery);
return DBQueryUtil.getInstance().getTrafficForInterfaces(dstQuery);
}
// Fetch Source IP Traffic of AS system from netflow database
public Hashtable getASSrcTraffic(int routerID)
{
long times = System.currentTimeMillis() - 0x36ee80L;
String srcQuery = "";
if(routerID != -1)
srcQuery = "select NetFlow_AS.AS_ID, sum(OCTETS * 8), COLLECTION_TIME from NetFlow_Router, NetFlow_AS, SrcIf10Min where NetFlow_Router.ROUTER_ID = NetFlow_AS.ROUTER_ID AND NetFlow_AS.AS_ID = SrcIf10Min.SRC_IF and NetFlow_Router.ROUTER_ID = " + routerID + " and SrcIf10Min.COLLECTION_TIME >= '" + getUtil().getTimeStamp(times) + "' group by SrcIf10Min.SRC_IF order by null";
else
srcQuery = "select NetFlow_AS.AS_ID, sum(OCTETS * 8), COLLECTION_TIME from NetFlow_AS, SrcIf10Min where NetFlow_AS.AS_ID = SrcIf10Min.SRC_IF AND SrcIf10Min.COLLECTION_TIME >= '" + getUtil().getTimeStamp(times) + "' group by SrcIf10Min.SRC_IF order by null";
nfLogger.finer("query in getASSrcTraffic is " + srcQuery);
return DBQueryUtil.getInstance().getTrafficForInterfaces(srcQuery, true);
}
// Fetch Target IP Traffic of AS system from netflow database
public Hashtable getASDstTraffic(int routerID)
{
long times = System.currentTimeMillis() - 0x36ee80L;
String dstQuery = "";
if(routerID != -1)
dstQuery = "select NetFlow_AS.AS_ID, sum(OCTETS * 8), COLLECTION_TIME from NetFlow_Router, NetFlow_AS, DstIf10Min where NetFlow_Router.ROUTER_ID = NetFlow_AS.ROUTER_ID AND NetFlow_AS.AS_ID = DstIf10Min.DST_IF AND NetFlow_Router.ROUTER_ID = " + routerID + " and DstIf10Min.COLLECTION_TIME >= '" + getUtil().getTimeStamp(times) + "' group by DstIf10Min.DST_IF order by null";
else
dstQuery = "select NetFlow_AS.AS_ID, sum(OCTETS * 8), COLLECTION_TIME from NetFlow_AS, DstIf10Min where NetFlow_AS.AS_ID = DstIf10Min.DST_IF AND DstIf10Min.COLLECTION_TIME >= '" + getUtil().getTimeStamp(times) + "' group by DstIf10Min.DST_IF order by null";
nfLogger.finer("query in getASDstTraffic is " + dstQuery);
return DBQueryUtil.getInstance().getTrafficForInterfaces(dstQuery, true);
}
// Fetch Source IP traffic IP Groups
public Hashtable getSrcTrafficIPGroup()
{
long times = System.currentTimeMillis() - 0x36ee80L;
String srcQuery = "select IPGroups.IP_GROUP_ID, IPGroups.IP_GROUP_NAME, sum(OCTETS * 8), COLLECTION_TIME, IPGroups.IP_GROUP_SPEED from IPGroups, SrcIf10Min where IP_GROUP_ID = SRC_IF and IP_GROUP_STATE = 0 and SrcIf10Min.COLLECTION_TIME >= '" + getUtil().getTimeStamp(times) + "' group by SrcIf10Min.SRC_IF order by null";
nfLogger.finer("query in getSrcTraffic is " + srcQuery);
return DBQueryUtil.getInstance().getTrafficForInterfacesIP(srcQuery);
}
// Fetch last hour alerts information
public LinkedHashMap getLastHourAlerts()
{
long times = System.currentTimeMillis() - 0x36ee80L;
String alertquery = "select DEVICE_ID,count(*) from EventRecord where END_TIME >= '" + getUtil().getTimeStamp(times) + "' group by DEVICE_ID";
nfLogger.finer("query in getlasthouralerts for all interfaces is " + alertquery);
return DBQueryUtil.getInstance().executeQueryForMetaTable(alertquery);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -