Repository: incubator-slider
Updated Branches:
  refs/heads/feature/SLIDER-671_publish_to_maven_central [created] 6ca0e9793


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/feature/SLIDER-671_publish_to_maven_central
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;
-  }
 
 }

Reply via email to