azkaban-developers

Details

diff --git a/azkaban-common/src/main/java/azkaban/metric/MetricReportManager.java b/azkaban-common/src/main/java/azkaban/metric/MetricReportManager.java
index 9ae5c03..4834361 100644
--- a/azkaban-common/src/main/java/azkaban/metric/MetricReportManager.java
+++ b/azkaban-common/src/main/java/azkaban/metric/MetricReportManager.java
@@ -67,10 +67,17 @@ public class MetricReportManager {
   }
 
   /**
-   * @return true, if we have enabled metric manager from Azkaban exec server
+   * @return true, if we have Instantiated and enabled metric manager from Azkaban exec server
    */
   public static boolean isAvailable() {
-    return instance != null && isManagerEnabled;
+    return isInstantiated() && isManagerEnabled;
+  }
+
+  /**
+   * @return true, if we have Instantiated metric manager from Azkaban exec server
+   */
+  public static boolean isInstantiated() {
+    return instance != null;
   }
 
   /**
diff --git a/azkaban-common/src/main/java/azkaban/metric/TimeBasedReportingMetric.java b/azkaban-common/src/main/java/azkaban/metric/TimeBasedReportingMetric.java
index 69c23ec..904586c 100644
--- a/azkaban-common/src/main/java/azkaban/metric/TimeBasedReportingMetric.java
+++ b/azkaban-common/src/main/java/azkaban/metric/TimeBasedReportingMetric.java
@@ -41,7 +41,7 @@ public abstract class TimeBasedReportingMetric<T> extends AbstractMetric<T> {
   }
 
   /**
-   * Get a TimerTask
+   * Get a TimerTask to reschedule Timer
    * @return An anonymous TimerTask class
    */
   private TimerTask getTimerTask() {
diff --git a/azkaban-execserver/src/main/java/azkaban/execapp/StatsServlet.java b/azkaban-execserver/src/main/java/azkaban/execapp/StatsServlet.java
index c18de09..152a3aa 100644
--- a/azkaban-execserver/src/main/java/azkaban/execapp/StatsServlet.java
+++ b/azkaban-execserver/src/main/java/azkaban/execapp/StatsServlet.java
@@ -110,7 +110,7 @@ public class StatsServlet extends HttpServlet implements ConnectorParams {
       boolean enableMetricManager) {
     try {
       logger.info("Updating metric manager status");
-      if (enableMetricManager || MetricReportManager.isAvailable()) {
+      if ((enableMetricManager && MetricReportManager.isInstantiated()) || MetricReportManager.isAvailable()) {
         MetricReportManager metricManager = MetricReportManager.getInstance();
         if (enableMetricManager) {
           metricManager.enableManager();
diff --git a/azkaban-execserver/src/package/conf/azkaban.properties b/azkaban-execserver/src/package/conf/azkaban.properties
index fd27529..a9f832e 100644
--- a/azkaban-execserver/src/package/conf/azkaban.properties
+++ b/azkaban-execserver/src/package/conf/azkaban.properties
@@ -24,3 +24,7 @@ executor.flow.threads=30
 # JMX stats
 jetty.connector.stats=true
 executor.connector.stats=true
+
+# uncomment to enable inmemory stats for azkaban
+#executor.metric.reports=true
+#executor.metric.interval.default=60000
\ No newline at end of file
diff --git a/azkaban-soloserver/src/package/conf/azkaban.properties b/azkaban-soloserver/src/package/conf/azkaban.properties
index 386cd43..d13bf32 100644
--- a/azkaban-soloserver/src/package/conf/azkaban.properties
+++ b/azkaban-soloserver/src/package/conf/azkaban.properties
@@ -46,3 +46,7 @@ lockdown.create.projects=false
 # JMX stats
 jetty.connector.stats=true
 executor.connector.stats=true
+
+# uncomment to enable inmemory stats for azkaban
+#executor.metric.reports=true
+#executor.metric.interval.default=60000
\ No newline at end of file