Repository: incubator-slider Updated Branches: refs/heads/develop a3b6fa5b0 -> 6ef541c5b
SLIDER-319 JMX publishing Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/6507b1b4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/6507b1b4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/6507b1b4 Branch: refs/heads/develop Commit: 6507b1b417317ded96601b25ba01ca9523ab0824 Parents: a3b6fa5 Author: Steve Loughran <[email protected]> Authored: Tue Nov 25 19:51:32 2014 +0000 Committer: Steve Loughran <[email protected]> Committed: Tue Nov 25 19:51:32 2014 +0000 ---------------------------------------------------------------------- .../server/appmaster/RoleLaunchService.java | 2 +- .../management/MetricsBindingService.java | 27 ++++++++++++-------- 2 files changed, 17 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/6507b1b4/slider-core/src/main/java/org/apache/slider/server/appmaster/RoleLaunchService.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/RoleLaunchService.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/RoleLaunchService.java index 9264991..7701cfe 100644 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/RoleLaunchService.java +++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/RoleLaunchService.java @@ -237,7 +237,7 @@ public class RoleLaunchService TimeUnit.SECONDS)); } catch (Exception e) { log.error("Exception thrown while trying to start {}: {}", - containerRole, e); + containerRole, e, e); raisedException = e; } } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/6507b1b4/slider-core/src/main/java/org/apache/slider/server/appmaster/management/MetricsBindingService.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/management/MetricsBindingService.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/management/MetricsBindingService.java index b49cf30..7fa102f 100644 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/management/MetricsBindingService.java +++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/management/MetricsBindingService.java @@ -18,6 +18,7 @@ package org.apache.slider.server.appmaster.management; +import com.codahale.metrics.JmxReporter; import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.ScheduledReporter; import com.codahale.metrics.ganglia.GangliaReporter; @@ -65,7 +66,8 @@ public class MetricsBindingService extends AbstractService { public static final int DEFAULT_GANGLIA_PORT = 8649; private final MetricRegistry metrics; - private ScheduledReporter reporter; + private ScheduledReporter gangliaReporter; + private JmxReporter jmxReporter; public MetricsBindingService(String name, MetricRegistry metrics) { @@ -89,9 +91,15 @@ public class MetricsBindingService extends AbstractService { protected void serviceStart() throws Exception { super.serviceStart(); Configuration conf = getConfig(); - boolean enabled = conf.getBoolean(METRICS_GANGLIA_ENABLED, false); - - if (enabled) { + + // always start the JMX binding + jmxReporter = JmxReporter.forRegistry(metrics).build(); + jmxReporter.start(); + + + boolean gangliaEnabled = conf.getBoolean(METRICS_GANGLIA_ENABLED, false); + + if (gangliaEnabled) { String host = conf.getTrimmed(METRICS_GANGLIA_HOST, ""); int port = conf.getInt(METRICS_GANGLIA_PORT, DEFAULT_GANGLIA_PORT); int interval = conf.getInt(METRICS_GANGLIA_REPORT_INTERVAL, 60); @@ -107,22 +115,19 @@ public class MetricsBindingService extends AbstractService { mcast, ttl, ganglia31); - reporter = GangliaReporter.forRegistry(metrics) + gangliaReporter = GangliaReporter.forRegistry(metrics) .convertRatesTo(TimeUnit.SECONDS) .convertDurationsTo(TimeUnit.MILLISECONDS) .build(ganglia); - reporter.start(interval, TimeUnit.SECONDS); + gangliaReporter.start(interval, TimeUnit.SECONDS); } } @Override protected void serviceStop() throws Exception { - IOUtils.closeStream(reporter); + IOUtils.closeStream(gangliaReporter); + IOUtils.closeStream(jmxReporter); super.serviceStop(); } - - public boolean isEnabled() { - return reporter != null; - } }
