Repository: incubator-gobblin
Updated Branches:
  refs/heads/master a5281123a -> ec8529885


[GOBBLIN-380] Add log about time elapsed for waiting services to be healthy

Closes #2254 from zxcware/msg


Project: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/commit/ec852988
Tree: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/tree/ec852988
Diff: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/diff/ec852988

Branch: refs/heads/master
Commit: ec8529885ca1024683bcfca6c0275a3e9ad6ea7d
Parents: a528112
Author: zhchen <[email protected]>
Authored: Mon Jan 22 17:01:22 2018 -0800
Committer: Hung Tran <[email protected]>
Committed: Mon Jan 22 17:01:22 2018 -0800

----------------------------------------------------------------------
 .../org/apache/gobblin/metrics/GobblinMetrics.java    | 14 +++++++++++---
 .../instance/StandardGobblinInstanceDriver.java       |  5 +++--
 .../runtime/scheduler/QuartzJobSpecScheduler.java     |  3 +++
 3 files changed, 17 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-gobblin/blob/ec852988/gobblin-metrics-libs/gobblin-metrics/src/main/java/org/apache/gobblin/metrics/GobblinMetrics.java
----------------------------------------------------------------------
diff --git 
a/gobblin-metrics-libs/gobblin-metrics/src/main/java/org/apache/gobblin/metrics/GobblinMetrics.java
 
b/gobblin-metrics-libs/gobblin-metrics/src/main/java/org/apache/gobblin/metrics/GobblinMetrics.java
index 76eb6d3..510f066 100644
--- 
a/gobblin-metrics-libs/gobblin-metrics/src/main/java/org/apache/gobblin/metrics/GobblinMetrics.java
+++ 
b/gobblin-metrics-libs/gobblin-metrics/src/main/java/org/apache/gobblin/metrics/GobblinMetrics.java
@@ -394,6 +394,8 @@ public class GobblinMetrics {
         .getProperty(ConfigurationKeys.METRICS_REPORT_INTERVAL_KEY, 
ConfigurationKeys.DEFAULT_METRICS_REPORT_INTERVAL));
     ScheduledReporter.setReportingInterval(properties, reportInterval, 
reportTimeUnit);
 
+    long startTime = System.currentTimeMillis();
+
     try {
       // Build and start the JMX reporter
       buildJmxMetricReporter(properties);
@@ -423,7 +425,8 @@ public class GobblinMetrics {
     }
 
     this.metricsReportingStarted = true;
-    LOGGER.info("Metrics reporting has been started: GobblinMetrics {}", 
this.toString());
+    LOGGER.info("Metrics reporting has been started in {} ms: GobblinMetrics 
{}",
+        System.currentTimeMillis() - startTime, this.toString());
   }
 
   /**
@@ -751,8 +754,13 @@ public class GobblinMetrics {
       if (CustomCodahaleReporterFactory.class.isAssignableFrom(clazz)) {
         CustomCodahaleReporterFactory customCodahaleReporterFactory =
             ((CustomCodahaleReporterFactory) 
clazz.getConstructor().newInstance());
-        com.codahale.metrics.ScheduledReporter scheduledReporter = 
this.codahaleReportersCloser
-            
.register(customCodahaleReporterFactory.newScheduledReporter(RootMetricContext.get(),
 properties));
+        com.codahale.metrics.ScheduledReporter scheduledReporter =
+            
customCodahaleReporterFactory.newScheduledReporter(RootMetricContext.get(), 
properties);
+        if (scheduledReporter == null) {
+          LOGGER.warn("Factory {} returns a null scheduledReporter", 
clazz.getSimpleName());
+          return;
+        }
+        this.codahaleReportersCloser.register(scheduledReporter);
         String reporterSinkMsg = reporterSink.isPresent()?"to " + 
reporterSink.get():"";
         LOGGER.info("Will start reporting metrics " + reporterSinkMsg + " 
using " + reporterClass);
         this.codahaleScheduledReporters.add(scheduledReporter);

http://git-wip-us.apache.org/repos/asf/incubator-gobblin/blob/ec852988/gobblin-runtime/src/main/java/org/apache/gobblin/runtime/instance/StandardGobblinInstanceDriver.java
----------------------------------------------------------------------
diff --git 
a/gobblin-runtime/src/main/java/org/apache/gobblin/runtime/instance/StandardGobblinInstanceDriver.java
 
b/gobblin-runtime/src/main/java/org/apache/gobblin/runtime/instance/StandardGobblinInstanceDriver.java
index 942be5a..4f1ae4c 100644
--- 
a/gobblin-runtime/src/main/java/org/apache/gobblin/runtime/instance/StandardGobblinInstanceDriver.java
+++ 
b/gobblin-runtime/src/main/java/org/apache/gobblin/runtime/instance/StandardGobblinInstanceDriver.java
@@ -129,10 +129,11 @@ public class StandardGobblinInstanceDriver extends 
DefaultGobblinInstanceDriverI
   protected void startUp() throws Exception {
     getLog().info("Starting driver ...");
     if (null != _subservices) {
-      getLog().info("Starting subservices");
+      getLog().info("Starting subservices. Timeout is {} ms", 
getInstanceCfg().getStartTimeoutMs());
+      long startTime = System.currentTimeMillis();
       _subservices.startAsync();
       _subservices.awaitHealthy(getInstanceCfg().getStartTimeoutMs(), 
TimeUnit.MILLISECONDS);
-      getLog().info("All subservices have been started.");
+      getLog().info("All subservices have been started. Time waited is {} ms", 
System.currentTimeMillis() - startTime);
     }
     else {
       getLog().info("No subservices found.");

http://git-wip-us.apache.org/repos/asf/incubator-gobblin/blob/ec852988/gobblin-runtime/src/main/java/org/apache/gobblin/runtime/scheduler/QuartzJobSpecScheduler.java
----------------------------------------------------------------------
diff --git 
a/gobblin-runtime/src/main/java/org/apache/gobblin/runtime/scheduler/QuartzJobSpecScheduler.java
 
b/gobblin-runtime/src/main/java/org/apache/gobblin/runtime/scheduler/QuartzJobSpecScheduler.java
index 909a6d1..4e46cee 100644
--- 
a/gobblin-runtime/src/main/java/org/apache/gobblin/runtime/scheduler/QuartzJobSpecScheduler.java
+++ 
b/gobblin-runtime/src/main/java/org/apache/gobblin/runtime/scheduler/QuartzJobSpecScheduler.java
@@ -142,7 +142,10 @@ public class QuartzJobSpecScheduler extends 
AbstractJobSpecScheduler {
     super.startUp();
     _scheduler.startAsync();
     // Start-up should not take long
+    getLog().info("Waiting QuartzJobSpecScheduler to run. Timeout is {} ms", 
_cfg.getStartUpTimeoutMs());
+    long startTime = System.currentTimeMillis();
     _scheduler.awaitRunning(_cfg.getStartUpTimeoutMs(), TimeUnit.MILLISECONDS);
+    getLog().info("QuartzJobSpecScheduler runs. Time waited is {} ms", 
System.currentTimeMillis() - startTime);
   }
 
   @Override protected void shutDown() throws TimeoutException {

Reply via email to