azkaban-uncached
Changes
src/java/azkaban/utils/LogSummary.java 50(+50 -0)
Details
src/java/azkaban/utils/LogSummary.java 50(+50 -0)
diff --git a/src/java/azkaban/utils/LogSummary.java b/src/java/azkaban/utils/LogSummary.java
new file mode 100644
index 0000000..708e3bd
--- /dev/null
+++ b/src/java/azkaban/utils/LogSummary.java
@@ -0,0 +1,50 @@
+package azkaban.utils;
+
+import azkaban.utils.FileIOUtils.LogData;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class LogSummary {
+ private String[] statTableHeaders = null;
+ private List<String[]> statTableData = new ArrayList<String[]>();
+
+ public LogSummary(LogData log) {
+ if (log != null) {
+ parseLogData(log.getData());
+ }
+ }
+
+ public String[] getStatTableHeaders() {
+ return statTableHeaders;
+ }
+
+ public List<String[]> getStatTableData() {
+ return statTableData;
+ }
+
+ private void parseLogData(String data) {
+ data = data.replaceAll(".*? - ", "");
+ String[] lines = data.split("\n");
+
+ int jobStatsStartIndex = -1;
+ for (int i = 0; i < lines.length; i++) {
+ if (lines[i].startsWith("Job Stats (time in seconds):")) {
+ jobStatsStartIndex = i+1;
+ }
+ }
+
+ if (jobStatsStartIndex != -1) {
+
+ String headerLine = lines[jobStatsStartIndex];
+ statTableHeaders = headerLine.split("\t");
+
+ int tableRowIndex = jobStatsStartIndex + 1;
+ String line;
+ while (!(line = lines[tableRowIndex]).equals("")) {
+ statTableData.add(line.split("\t"));
+ tableRowIndex++;
+ }
+ }
+ }
+}