You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by mo...@apache.org on 2017/08/02 19:48:17 UTC

knox git commit: KNOX-986 - JMX Metric Reporter and OutOfMemory Issues (Zsombor Gegesy via Sandeep More)

Repository: knox
Updated Branches:
  refs/heads/master 659e02ce3 -> cbe21a0a0


KNOX-986 - JMX Metric Reporter and OutOfMemory Issues (Zsombor Gegesy via Sandeep More)


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

Branch: refs/heads/master
Commit: cbe21a0a0728106a8bdc7b85b5094a8b2ac5e7df
Parents: 659e02c
Author: Sandeep More <mo...@apache.org>
Authored: Wed Aug 2 15:48:00 2017 -0400
Committer: Sandeep More <mo...@apache.org>
Committed: Wed Aug 2 15:48:00 2017 -0400

----------------------------------------------------------------------
 .../gateway/config/impl/GatewayConfigImpl.java  |  4 +--
 .../metrics/impl/DefaultMetricsService.java     | 37 ++++++++++++--------
 .../config/impl/GatewayConfigImplTest.java      |  4 +--
 .../metrics/impl/DefaultMetricsServiceTest.java | 15 +++++++-
 4 files changed, 41 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/knox/blob/cbe21a0a/gateway-server/src/main/java/org/apache/hadoop/gateway/config/impl/GatewayConfigImpl.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/hadoop/gateway/config/impl/GatewayConfigImpl.java b/gateway-server/src/main/java/org/apache/hadoop/gateway/config/impl/GatewayConfigImpl.java
index 79140e0..3b7d19e 100644
--- a/gateway-server/src/main/java/org/apache/hadoop/gateway/config/impl/GatewayConfigImpl.java
+++ b/gateway-server/src/main/java/org/apache/hadoop/gateway/config/impl/GatewayConfigImpl.java
@@ -706,13 +706,13 @@ public class GatewayConfigImpl extends Configuration implements GatewayConfig {
 
   @Override
   public boolean isMetricsEnabled() {
-    String metricsEnabled = get( METRICS_ENABLED, "true" );
+    String metricsEnabled = get( METRICS_ENABLED, "false" );
     return "true".equals(metricsEnabled);
   }
 
   @Override
   public boolean isJmxMetricsReportingEnabled() {
-    String enabled = get( JMX_METRICS_REPORTING_ENABLED, "true" );
+    String enabled = get( JMX_METRICS_REPORTING_ENABLED, "false" );
     return "true".equals(enabled);
   }
 

http://git-wip-us.apache.org/repos/asf/knox/blob/cbe21a0a/gateway-server/src/main/java/org/apache/hadoop/gateway/services/metrics/impl/DefaultMetricsService.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/hadoop/gateway/services/metrics/impl/DefaultMetricsService.java b/gateway-server/src/main/java/org/apache/hadoop/gateway/services/metrics/impl/DefaultMetricsService.java
index c2a461a..f912256 100644
--- a/gateway-server/src/main/java/org/apache/hadoop/gateway/services/metrics/impl/DefaultMetricsService.java
+++ b/gateway-server/src/main/java/org/apache/hadoop/gateway/services/metrics/impl/DefaultMetricsService.java
@@ -48,18 +48,23 @@ public class DefaultMetricsService implements MetricsService {
 
   private MetricsContext context;
 
+  private GatewayConfig config;
+
   public static MetricRegistry getMetricRegistry() {
     return metrics;
   }
 
   @Override
   public void init(GatewayConfig config, Map<String, String> options) throws ServiceLifecycleException {
+    this.config = config;
     context = new DefaultMetricsContext(this);
     context.setProperty(METRICS_REGISTRY, getMetricRegistry());
     instrumentationProviders = new HashMap<>();
     metricsReporters = new ArrayList<>();
-    loadInstrumentationProviders();
-    loadAndInitReporters(config);
+    if (config.isMetricsEnabled()) {
+      loadInstrumentationProviders();
+      loadAndInitReporters(config);
+    }
   }
 
   private void loadInstrumentationProviders() {
@@ -86,12 +91,14 @@ public class DefaultMetricsService implements MetricsService {
 
   @Override
   public void start() throws ServiceLifecycleException {
-    for (MetricsReporter reporter : metricsReporters) {
-      if ( reporter.isEnabled() ) {
-        try {
-          reporter.start(context);
-        } catch ( MetricsReporterException e ) {
-          LOG.failedToStartReporter(reporter.getName(), e);
+    if (config.isMetricsEnabled()) {
+      for (MetricsReporter reporter : metricsReporters) {
+        if ( reporter.isEnabled() ) {
+          try {
+            reporter.start(context);
+          } catch ( MetricsReporterException e ) {
+            LOG.failedToStartReporter(reporter.getName(), e);
+          }
         }
       }
     }
@@ -99,12 +106,14 @@ public class DefaultMetricsService implements MetricsService {
 
   @Override
   public void stop() throws ServiceLifecycleException {
-    for (MetricsReporter reporter : metricsReporters) {
-      if (reporter.isEnabled()) {
-        try {
-          reporter.stop();
-        } catch ( MetricsReporterException e ) {
-          LOG.failedToStopReporter(reporter.getName(), e);
+    if (config.isMetricsEnabled()) {
+      for (MetricsReporter reporter : metricsReporters) {
+        if (reporter.isEnabled()) {
+          try {
+            reporter.stop();
+          } catch ( MetricsReporterException e ) {
+            LOG.failedToStopReporter(reporter.getName(), e);
+          }
         }
       }
     }

http://git-wip-us.apache.org/repos/asf/knox/blob/cbe21a0a/gateway-server/src/test/java/org/apache/hadoop/gateway/config/impl/GatewayConfigImplTest.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/test/java/org/apache/hadoop/gateway/config/impl/GatewayConfigImplTest.java b/gateway-server/src/test/java/org/apache/hadoop/gateway/config/impl/GatewayConfigImplTest.java
index 8c8835c..a9347f4 100644
--- a/gateway-server/src/test/java/org/apache/hadoop/gateway/config/impl/GatewayConfigImplTest.java
+++ b/gateway-server/src/test/java/org/apache/hadoop/gateway/config/impl/GatewayConfigImplTest.java
@@ -184,8 +184,8 @@ public class GatewayConfigImplTest {
   public void testMetricsSettings() {
     GatewayConfigImpl config = new GatewayConfigImpl();
     //test defaults
-    assertThat(config.isMetricsEnabled(), is(true));
-    assertThat(config.isJmxMetricsReportingEnabled(), is(true));
+    assertThat(config.isMetricsEnabled(), is(false));
+    assertThat(config.isJmxMetricsReportingEnabled(), is(false));
     assertThat(config.isGraphiteMetricsReportingEnabled(), is(false));
     assertThat(config.getGraphiteHost(), is("localhost"));
     assertThat(config.getGraphitePort(), is(32772));

http://git-wip-us.apache.org/repos/asf/knox/blob/cbe21a0a/gateway-server/src/test/java/org/apache/hadoop/gateway/services/metrics/impl/DefaultMetricsServiceTest.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/test/java/org/apache/hadoop/gateway/services/metrics/impl/DefaultMetricsServiceTest.java b/gateway-server/src/test/java/org/apache/hadoop/gateway/services/metrics/impl/DefaultMetricsServiceTest.java
index 6e9b4a9..6f549b0 100644
--- a/gateway-server/src/test/java/org/apache/hadoop/gateway/services/metrics/impl/DefaultMetricsServiceTest.java
+++ b/gateway-server/src/test/java/org/apache/hadoop/gateway/services/metrics/impl/DefaultMetricsServiceTest.java
@@ -46,10 +46,22 @@ public class DefaultMetricsServiceTest {
   }
 
   @Test
-  public void instrumentationProvidersLoading() throws Exception {
+  public void instrumentationProvidersLoadingDefaultIsEmpty() throws Exception {
     DefaultMetricsService service = new DefaultMetricsService();
     service.init(new GatewayConfigImpl(), null);
     Map<Class<?>, InstrumentationProvider> map = service.getInstrumentationProviders();
+    Assert.assertTrue(map.entrySet().isEmpty());
+    Assert.assertNull(service.getInstrumented(HttpClientBuilder.class));
+
+  }
+
+  @Test
+  public void instrumentationProvidersLoading() throws Exception {
+    DefaultMetricsService service = new DefaultMetricsService();
+    GatewayConfigImpl config = new GatewayConfigImpl();
+    config.set(GatewayConfigImpl.METRICS_ENABLED, "true");
+    service.init(config, null);
+    Map<Class<?>, InstrumentationProvider> map = service.getInstrumentationProviders();
     Assert.assertTrue(map.entrySet().size() >= 2);
     Assert.assertNotNull(service.getInstrumented(HttpClientBuilder.class));
 
@@ -59,6 +71,7 @@ public class DefaultMetricsServiceTest {
   public void reportersLoading() throws Exception {
     DefaultMetricsService service = new DefaultMetricsService();
     GatewayConfigImpl config = new GatewayConfigImpl();
+    config.set(GatewayConfigImpl.METRICS_ENABLED, "true");
     config.set(GatewayConfigImpl.JMX_METRICS_REPORTING_ENABLED, "false");
     service.init(config, null);
     List<MetricsReporter> reporters = service.getMetricsReporters();