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 {
