diff --git a/src/java/azkaban/executor/ExecutorManager.java b/src/java/azkaban/executor/ExecutorManager.java
index 7314b21..6d4715f 100644
--- a/src/java/azkaban/executor/ExecutorManager.java
+++ b/src/java/azkaban/executor/ExecutorManager.java
@@ -61,6 +61,7 @@ public class ExecutorManager {
private ExecutorMailer mailer;
private ExecutingManagerUpdaterThread executingManager;
+ private static final long DEFAULT_EXECUTION_LOGS_RETENTION_MS = 3*4*7*24*60*60*1000l;
private long lastCleanerThreadCheckTime = -1;
private long lastThreadCheckTime = -1;
@@ -74,8 +75,9 @@ public class ExecutorManager {
mailer = new ExecutorMailer(props);
executingManager = new ExecutingManagerUpdaterThread();
executingManager.start();
-
- cleanerThread = new CleanerThread();
+
+ long executionLogsRetentionMs = props.getLong("azkaban.execution.logs.retention.ms", DEFAULT_EXECUTION_LOGS_RETENTION_MS);
+ cleanerThread = new CleanerThread(executionLogsRetentionMs);
cleanerThread.start();
}
@@ -790,14 +792,17 @@ public class ExecutorManager {
*/
private class CleanerThread extends Thread {
// log file retention is 1 month.
- private static final long EXECUTION_LOGS_RETENTION_MS = 3*4*7*24*60*60*1000;
+
// check every day
private static final long CLEANER_THREAD_WAIT_INTERVAL_MS = 24*60*60*1000;
+ private final long executionLogsRetentionMs;
+
private boolean shutdown = false;
private long lastLogCleanTime = -1;
- public CleanerThread() {
+ public CleanerThread(long executionLogsRetentionMs) {
+ this.executionLogsRetentionMs = executionLogsRetentionMs;
this.setName("AzkabanWebServer-Cleaner-Thread");
}
@@ -831,8 +836,9 @@ public class ExecutorManager {
private void cleanExecutionLogs() {
logger.info("Cleaning old logs from execution_logs");
- logger.info("Cleaning old log files before " + DateTime.now() + " or in milliseconds: " + DateTime.now().getMillis());
- cleanOldExecutionLogs(DateTime.now().getMillis() - EXECUTION_LOGS_RETENTION_MS);
+ long cutoff = DateTime.now().getMillis() - executionLogsRetentionMs;
+ logger.info("Cleaning old log files before " + new DateTime(cutoff).toString());
+ cleanOldExecutionLogs(DateTime.now().getMillis() - executionLogsRetentionMs);
}
}
}
diff --git a/src/java/azkaban/webapp/servlet/velocity/executionspage.vm b/src/java/azkaban/webapp/servlet/velocity/executionspage.vm
index c51cf52..6f14afd 100644
--- a/src/java/azkaban/webapp/servlet/velocity/executionspage.vm
+++ b/src/java/azkaban/webapp/servlet/velocity/executionspage.vm
@@ -54,6 +54,7 @@
<th>Flow</th>
<th>Project</th>
<th class="user">User</th>
+ <th class="user">Proxy User</th>
<th class="date">Start Time</th>
<th class="date">End Time</th>
<th class="elapse">Elapsed</th>
@@ -73,6 +74,7 @@
<a href="${context}/manager?project=$vmutils.getProjectName(${flow.projectId})">$vmutils.getProjectName(${flow.projectId})</a>
</td>
<td>${flow.submitUser}</td>
+ <td>${flow.proxyUsers}</td>
<td>$utils.formatDate(${flow.startTime})</td>
<td>$utils.formatDate(${flow.endTime})</td>
<td>$utils.formatDuration(${flow.startTime}, ${flow.endTime})</td>
@@ -95,6 +97,7 @@
<th>Flow</th>
<th>Project</th>
<th class="user">User</th>
+ <th class="user">Proxy User</th>
<th class="date">Start Time</th>
<th class="date">End Time</th>
<th class="elapse">Elapsed</th>
@@ -114,6 +117,7 @@
<a href="${context}/manager?project=$vmutils.getProjectName(${flow.projectId})">$vmutils.getProjectName(${flow.projectId})</a>
</td>
<td>${flow.submitUser}</td>
+ <td>${flow.proxyUsers}</td>
<td>$utils.formatDate(${flow.startTime})</td>
<td>$utils.formatDate(${flow.endTime})</td>
<td>$utils.formatDuration(${flow.startTime}, ${flow.endTime})</td>