From cf5467f311cb39e5cb3fc7cdcfcc936762b3a446 Mon Sep 17 00:00:00 2001 From: VishakaSekar Date: Wed, 23 Jan 2019 13:58:16 -0800 Subject: [PATCH 1/3] fixing useSsl null ptr --- .../com/appdynamics/extensions/kafka/JMXConnectionAdapter.java | 2 +- .../java/com/appdynamics/extensions/kafka/KafkaMonitorTask.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/appdynamics/extensions/kafka/JMXConnectionAdapter.java b/src/main/java/com/appdynamics/extensions/kafka/JMXConnectionAdapter.java index 06c0817..589f67c 100644 --- a/src/main/java/com/appdynamics/extensions/kafka/JMXConnectionAdapter.java +++ b/src/main/java/com/appdynamics/extensions/kafka/JMXConnectionAdapter.java @@ -56,7 +56,7 @@ JMXConnector open(Map connectionMap) throws IOException { JMXConnector jmxConnector; final Map env = new HashMap<>(); - if(Boolean.valueOf(connectionMap.get(Constants.USE_SSL).toString())) { + if(Boolean.valueOf((String)connectionMap.get(Constants.USE_SSL))) { //TODO this is not needed as even if you comment it the SSL connections still work. SslRMIClientSocketFactory sslRMIClientSocketFactory = new SslRMIClientSocketFactory(); env.put(RMIConnectorServer.RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE, sslRMIClientSocketFactory); diff --git a/src/main/java/com/appdynamics/extensions/kafka/KafkaMonitorTask.java b/src/main/java/com/appdynamics/extensions/kafka/KafkaMonitorTask.java index fd5c04b..7a038ae 100644 --- a/src/main/java/com/appdynamics/extensions/kafka/KafkaMonitorTask.java +++ b/src/main/java/com/appdynamics/extensions/kafka/KafkaMonitorTask.java @@ -100,6 +100,7 @@ private BigDecimal openJMXConnection () { Map requestMap = buildRequestMap(); jmxAdapter = JMXConnectionAdapter.create(requestMap); Map connectionMap = (Map) getConnectionParameters(); + connectionMap.put(Constants.USE_SSL, this.kafkaServer.get(Constants.USE_SSL)); logger.debug("[useSsl] is set [{}] for server [{}]", connectionMap.get(Constants.USE_SSL), this.kafkaServer.get(Constants.DISPLAY_NAME)); if (configuration.getConfigYml().containsKey(Constants.ENCRYPTION_KEY) && From 0279aa412497f39d3151ea18e6585239e02089a3 Mon Sep 17 00:00:00 2001 From: VishakaSekar Date: Wed, 23 Jan 2019 14:20:21 -0800 Subject: [PATCH 2/3] removing typecast after testing --- .../kafka/JMXConnectionAdapter.java | 2 +- .../extensions/kafka/KafkaMonitor.java | 37 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/appdynamics/extensions/kafka/JMXConnectionAdapter.java b/src/main/java/com/appdynamics/extensions/kafka/JMXConnectionAdapter.java index 589f67c..06c0817 100644 --- a/src/main/java/com/appdynamics/extensions/kafka/JMXConnectionAdapter.java +++ b/src/main/java/com/appdynamics/extensions/kafka/JMXConnectionAdapter.java @@ -56,7 +56,7 @@ JMXConnector open(Map connectionMap) throws IOException { JMXConnector jmxConnector; final Map env = new HashMap<>(); - if(Boolean.valueOf((String)connectionMap.get(Constants.USE_SSL))) { + if(Boolean.valueOf(connectionMap.get(Constants.USE_SSL).toString())) { //TODO this is not needed as even if you comment it the SSL connections still work. SslRMIClientSocketFactory sslRMIClientSocketFactory = new SslRMIClientSocketFactory(); env.put(RMIConnectorServer.RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE, sslRMIClientSocketFactory); diff --git a/src/main/java/com/appdynamics/extensions/kafka/KafkaMonitor.java b/src/main/java/com/appdynamics/extensions/kafka/KafkaMonitor.java index 407603d..0342380 100644 --- a/src/main/java/com/appdynamics/extensions/kafka/KafkaMonitor.java +++ b/src/main/java/com/appdynamics/extensions/kafka/KafkaMonitor.java @@ -13,11 +13,21 @@ import com.appdynamics.extensions.kafka.utils.Constants; import com.appdynamics.extensions.kafka.utils.SslUtils; import com.appdynamics.extensions.util.AssertUtils; +import com.google.common.collect.Maps; +import com.singularity.ee.agent.systemagent.api.exception.TaskExecutionException; +import org.apache.log4j.ConsoleAppender; +import org.apache.log4j.Level; +import org.apache.log4j.PatternLayout; import org.slf4j.LoggerFactory; import java.io.File; +import java.io.IOException; +import java.io.OutputStreamWriter; import java.util.List; import java.util.Map; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; import static com.appdynamics.extensions.kafka.utils.Constants.DEFAULT_METRIC_PREFIX; @@ -60,4 +70,31 @@ protected int getTaskCount () { return servers.size(); } + public static void main(String[] args) throws TaskExecutionException, IOException { + + ConsoleAppender ca = new ConsoleAppender(); + ca.setWriter(new OutputStreamWriter(System.out)); + ca.setLayout(new PatternLayout("%-5p [%t]: %m%n")); + ca.setThreshold(Level.DEBUG); + org.apache.log4j.Logger.getRootLogger().addAppender(ca); + + + KafkaMonitor monitor = new KafkaMonitor(); + final Map taskArgs = Maps.newHashMap(); + taskArgs.put("config-file", "/Users/vishaka.sekar/AppDynamics/kafka-monitoring-extension/src/main/resources/conf/config.yml"); + ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); + scheduler.scheduleAtFixedRate(new Runnable() { + public void run() { + try { + monitor.execute(taskArgs, null); + } catch (Exception e) { + logger.error("Error while running the task", e); + } + } + }, 2, 60, TimeUnit.SECONDS); + + } + + + } \ No newline at end of file From a1d699942678971541f5206d7ffa26e2866edae1 Mon Sep 17 00:00:00 2001 From: VishakaSekar Date: Wed, 23 Jan 2019 14:23:05 -0800 Subject: [PATCH 3/3] removing main block --- .../extensions/kafka/KafkaMonitor.java | 37 ------------------- 1 file changed, 37 deletions(-) diff --git a/src/main/java/com/appdynamics/extensions/kafka/KafkaMonitor.java b/src/main/java/com/appdynamics/extensions/kafka/KafkaMonitor.java index 0342380..407603d 100644 --- a/src/main/java/com/appdynamics/extensions/kafka/KafkaMonitor.java +++ b/src/main/java/com/appdynamics/extensions/kafka/KafkaMonitor.java @@ -13,21 +13,11 @@ import com.appdynamics.extensions.kafka.utils.Constants; import com.appdynamics.extensions.kafka.utils.SslUtils; import com.appdynamics.extensions.util.AssertUtils; -import com.google.common.collect.Maps; -import com.singularity.ee.agent.systemagent.api.exception.TaskExecutionException; -import org.apache.log4j.ConsoleAppender; -import org.apache.log4j.Level; -import org.apache.log4j.PatternLayout; import org.slf4j.LoggerFactory; import java.io.File; -import java.io.IOException; -import java.io.OutputStreamWriter; import java.util.List; import java.util.Map; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; import static com.appdynamics.extensions.kafka.utils.Constants.DEFAULT_METRIC_PREFIX; @@ -70,31 +60,4 @@ protected int getTaskCount () { return servers.size(); } - public static void main(String[] args) throws TaskExecutionException, IOException { - - ConsoleAppender ca = new ConsoleAppender(); - ca.setWriter(new OutputStreamWriter(System.out)); - ca.setLayout(new PatternLayout("%-5p [%t]: %m%n")); - ca.setThreshold(Level.DEBUG); - org.apache.log4j.Logger.getRootLogger().addAppender(ca); - - - KafkaMonitor monitor = new KafkaMonitor(); - final Map taskArgs = Maps.newHashMap(); - taskArgs.put("config-file", "/Users/vishaka.sekar/AppDynamics/kafka-monitoring-extension/src/main/resources/conf/config.yml"); - ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); - scheduler.scheduleAtFixedRate(new Runnable() { - public void run() { - try { - monitor.execute(taskArgs, null); - } catch (Exception e) { - logger.error("Error while running the task", e); - } - } - }, 2, 60, TimeUnit.SECONDS); - - } - - - } \ No newline at end of file