package com.github.projectflink.utils;
import java.io.BufferedReader;
import java.io.FileReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Little stupid util to get the iteration times
*/
public class IterationParser {
public enum STATE {
}
public static void mainReadDelta(String[] args) throws Exception {
try {
BufferedReader br = new BufferedReader(new FileReader("/home/robert/flink-workdir/flink-perf/flink-rob-testjob-taskmanager-cloud-14.log.3"));
String line;
int iteration = 1;
Date iterationStart = null;
Date iterationEnd = null;
// long iterationStart = 0;
while ((line = br.readLine()) != null) {
// System.err.println("line = "+line);
// find first iteration start
if (iterationStart == null && line.contains("starting iteration [" + iteration + "]")) {
// System.err.println("found start");
iterationStart = getDate(line);
}
// find last iteration end
if(line.contains("done in iteration ["+iteration+"]")) {
// System.err.println("found end");
iterationEnd = getDate(line);
long duration = iterationEnd.getTime() - iterationStart.getTime();
System.err.println(iteration+","+ duration);
iteration++;
iterationStart = null;
}
}
br.close();
} catch (Throwable t) {
System.err.println("ex : "+t.getMessage());
t.printStackTrace();
}
}
// read bulk
public static void main(String[] args) throws Exception {
try {
BufferedReader br = new BufferedReader(new FileReader("/home/robert/flink-workdir/flink-perf/flink-rob-testjob-taskmanager-cloud-14.log.3"));
String line;
int iteration = 1;
Date iterationStart = null;
Date iterationEnd = null;
// long iterationStart = 0;
while ((line = br.readLine()) != null) {
// System.err.println("line = "+line);
if(!line.contains("Bulk")) continue;
// find first iteration start
if (iterationStart == null && line.contains("starting iteration [" + iteration + "]")) {
// System.err.println("found start");
iterationStart = getDate(line);
}
// find last iteration end
if(line.contains("finishing iteration ["+(iteration)+"]")) {
// System.err.println("found end");
iterationEnd = getDate(line);
long duration = iterationEnd.getTime() - iterationStart.getTime();
System.err.println(iteration+","+ duration);
iteration++;
iterationStart = null;
}
}
br.close();
} catch (Throwable t) {
System.err.println("ex : "+t.getMessage());
t.printStackTrace();
}
}
private static Date getDate(String line) throws ParseException {
String[] sp = line.split(" ");
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss,SSS");
return sdf.parse(sp[0]);
}
}