import java.util.List;\r
import java.util.Map;\r
import java.util.TreeSet;\r
-\r
import org.onap.dmaap.datarouter.provisioning.utils.DB;\r
\r
/**\r
* @version $Id: DailyLatencyReport.java,v 1.2 2013/11/06 16:23:54 eby Exp $\r
*/\r
public class DailyLatencyReport extends ReportBase {\r
+\r
private static final String SELECT_SQL =\r
"select EVENT_TIME, TYPE, PUBLISH_ID, FEED_FILEID, FEEDID, CONTENT_LENGTH from LOG_RECORDS" +\r
- " where EVENT_TIME >= ? and EVENT_TIME <= ?";\r
+ " where EVENT_TIME >= ? and EVENT_TIME <= ?";\r
\r
private class Job {\r
+\r
public long pubtime = 0;\r
public long clen = 0;\r
public List<Long> deltime = new ArrayList<Long>();\r
+\r
public long minLatency() {\r
long n = deltime.isEmpty() ? 0 : Long.MAX_VALUE;\r
- for (Long l : deltime)\r
- n = Math.min(n, l-pubtime);\r
+ for (Long l : deltime) {\r
+ n = Math.min(n, l - pubtime);\r
+ }\r
return n;\r
}\r
+\r
public long maxLatency() {\r
long n = 0;\r
- for (Long l : deltime)\r
- n = Math.max(n, l-pubtime);\r
+ for (Long l : deltime) {\r
+ n = Math.max(n, l - pubtime);\r
+ }\r
return n;\r
}\r
+\r
public long totalLatency() {\r
long n = 0;\r
- for (Long l : deltime)\r
- n += (l-pubtime);\r
+ for (Long l : deltime) {\r
+ n += (l - pubtime);\r
+ }\r
return n;\r
}\r
}\r
+\r
private class Counters {\r
+\r
public final String date;\r
public final int feedid;\r
public final Map<String, Job> jobs;\r
+\r
public Counters(String d, int fid) {\r
date = d;\r
feedid = fid;\r
- jobs = new HashMap<String, Job>();\r
+ jobs = new HashMap<>();\r
}\r
+\r
public void addEvent(long etime, String type, String id, String fid, long clen) {\r
Job j = jobs.get(id);\r
if (j == null) {\r
j.deltime.add(etime);\r
}\r
}\r
+\r
@Override\r
public String toString() {\r
long minsize = Long.MAX_VALUE, maxsize = 0, avgsize = 0;\r
- long minl = Long.MAX_VALUE, maxl = 0;\r
- long fanout = 0, totall = 0, totaln = 0;\r
+ long minl = Long.MAX_VALUE, maxl = 0;\r
+ long fanout = 0, totall = 0, totaln = 0;\r
for (Job j : jobs.values()) {\r
minsize = Math.min(minsize, j.clen);\r
maxsize = Math.max(maxsize, j.clen);\r
avgsize += j.clen;\r
- minl = Math.min(minl, j.minLatency());\r
- maxl = Math.max(maxl, j.maxLatency());\r
- totall += j.totalLatency();\r
- totaln += j.deltime.size();\r
- fanout += j.deltime.size();\r
+ minl = Math.min(minl, j.minLatency());\r
+ maxl = Math.max(maxl, j.maxLatency());\r
+ totall += j.totalLatency();\r
+ totaln += j.deltime.size();\r
+ fanout += j.deltime.size();\r
}\r
if (jobs.size() > 0) {\r
avgsize /= jobs.size();\r
- fanout /= jobs.size();\r
+ fanout /= jobs.size();\r
}\r
long avgl = (totaln > 0) ? (totall / totaln) : 0;\r
- return date + "," + feedid + "," + minsize + "," + maxsize + "," + avgsize + "," + minl + "," + maxl + "," + avgl + "," + fanout;\r
+ return date + "," + feedid + "," + minsize + "," + maxsize + "," + avgsize + "," + minl + "," + maxl + ","\r
+ + avgl + "," + fanout;\r
}\r
}\r
+\r
private long getPstart(String t) {\r
- if (t.indexOf('.') >= 0)\r
+ if (t.indexOf('.') >= 0) {\r
t = t.substring(0, t.indexOf('.'));\r
+ }\r
return Long.parseLong(t);\r
}\r
\r
@Override\r
public void run() {\r
- Map<String, Counters> map = new HashMap<String, Counters>();\r
+ Map<String, Counters> map = new HashMap<>();\r
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");\r
long start = System.currentTimeMillis();\r
try {\r
DB db = new DB();\r
@SuppressWarnings("resource")\r
Connection conn = db.getConnection();\r
- try(PreparedStatement ps = conn.prepareStatement(SELECT_SQL)) {\r
+ try (PreparedStatement ps = conn.prepareStatement(SELECT_SQL)) {\r
ps.setLong(1, from);\r
ps.setLong(2, to);\r
- try(ResultSet rs = ps.executeQuery()) {\r
+ try (ResultSet rs = ps.executeQuery()) {\r
while (rs.next()) {\r
String id = rs.getString("PUBLISH_ID");\r
int feed = rs.getInt("FEEDID");\r
db.release(conn);\r
}\r
} catch (SQLException e) {\r
- e.printStackTrace();\r
+ logger.error("SQLException: " + e.getMessage());\r
}\r
- logger.debug("Query time: " + (System.currentTimeMillis()-start) + " ms");\r
- try (PrintWriter os = new PrintWriter(outfile)){\r
+ logger.debug("Query time: " + (System.currentTimeMillis() - start) + " ms");\r
+ try (PrintWriter os = new PrintWriter(outfile)) {\r
os.println("date,feedid,minsize,maxsize,avgsize,minlat,maxlat,avglat,fanout");\r
- for (String key : new TreeSet<String>(map.keySet())) {\r
+ for (String key : new TreeSet<>(map.keySet())) {\r
Counters c = map.get(key);\r
os.println(c.toString());\r
}\r
} catch (FileNotFoundException e) {\r
- System.err.println("File cannot be written: "+outfile);\r
+ System.err.println("File cannot be written: " + outfile);\r
+ logger.error("FileNotFoundException: " + e.getMessage());\r
}\r
}\r
}\r