Updated Branches: refs/heads/master a9523bb69 -> e93bb7c93
Added functionality to enable/disable load balancing statistics publisher Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/12559b54 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/12559b54 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/12559b54 Branch: refs/heads/master Commit: 12559b5422f82f8303fa181b60c219f8287cd6f9 Parents: c852a28 Author: Imesh Gunaratne <[email protected]> Authored: Fri Nov 22 10:39:07 2013 +0530 Committer: Imesh Gunaratne <[email protected]> Committed: Fri Nov 22 10:39:07 2013 +0530 ---------------------------------------------------------------------- .../statistics/LoadBalancerStatsPublisher.java | 11 +++++++++++ .../common/statistics/WSO2CEPStatsPublisher.java | 17 ++++++++++++++++- .../extension/api/LoadBalancerStatsNotifier.java | 7 ++++++- .../statistics/observers/WSO2CEPStatsObserver.java | 10 +++++++++- .../src/main/bin/haproxy-extension.sh | 1 + .../modules/distribution/src/main/bin/stratos.bat | 2 +- .../modules/distribution/src/main/bin/stratos.sh | 1 + 7 files changed, 45 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/12559b54/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/statistics/LoadBalancerStatsPublisher.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/statistics/LoadBalancerStatsPublisher.java b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/statistics/LoadBalancerStatsPublisher.java index 5687d76..46f9b35 100644 --- a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/statistics/LoadBalancerStatsPublisher.java +++ b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/statistics/LoadBalancerStatsPublisher.java @@ -27,6 +27,17 @@ import java.util.Map; public interface LoadBalancerStatsPublisher { /** + * Set statistics publisher enabled or disabled. + * @param enabled + */ + void setEnabled(boolean enabled); + + /** + * Return enabled state of the statistics publisher. + */ + boolean isEnabled(); + + /** * Publish statistics as a map of Cluster Id, In-flight Request Count. * @param stats */ http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/12559b54/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/statistics/WSO2CEPStatsPublisher.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/statistics/WSO2CEPStatsPublisher.java b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/statistics/WSO2CEPStatsPublisher.java index a5685a0..a781fba 100644 --- a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/statistics/WSO2CEPStatsPublisher.java +++ b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/statistics/WSO2CEPStatsPublisher.java @@ -19,6 +19,7 @@ package org.apache.stratos.load.balancer.common.statistics; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.wso2.carbon.databridge.agent.thrift.Agent; @@ -40,6 +41,7 @@ public class WSO2CEPStatsPublisher implements LoadBalancerStatsPublisher { private static final String CALL_CENTER_DATA_STREAM = "stratos.lb.stats"; private static final String VERSION = "1.0.0"; private AsyncDataPublisher asyncDataPublisher; + private boolean enabled = true; public WSO2CEPStatsPublisher() { AgentConfiguration agentConfiguration = new AgentConfiguration(); @@ -48,6 +50,10 @@ public class WSO2CEPStatsPublisher implements LoadBalancerStatsPublisher { //TODO read following from a config file? String ip = System.getProperty("thrift.receiver.ip"); String port = System.getProperty("thrift.receiver.port"); + String enabledStr = System.getProperty("load.balancer.stats.publisher.enabled"); + if(StringUtils.isNotBlank(enabledStr)) { + enabled = Boolean.getBoolean(enabledStr); + } // Using asynchronous data publisher asyncDataPublisher = new AsyncDataPublisher("tcp://"+ip+":"+port+"", "admin", "admin", agent); @@ -66,8 +72,17 @@ public class WSO2CEPStatsPublisher implements LoadBalancerStatsPublisher { } @Override - public void publish(Map<String, Integer> stats) { + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + @Override + public boolean isEnabled() { + return enabled; + } + @Override + public void publish(Map<String, Integer> stats) { for (Map.Entry<String, Integer> entry : stats.entrySet()) { Object[] payload = new Object[]{entry.getKey(), entry.getValue()}; http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/12559b54/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerStatsNotifier.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerStatsNotifier.java b/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerStatsNotifier.java index dc5a8a6..47a545e 100644 --- a/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerStatsNotifier.java +++ b/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerStatsNotifier.java @@ -66,7 +66,12 @@ public class LoadBalancerStatsNotifier implements Runnable { } } if (stats.size() > 0) { - statsPublisher.publish(stats); + if(statsPublisher.isEnabled()) { + statsPublisher.publish(stats); + } + else if (log.isWarnEnabled()) { + log.warn("Load balancer statistics publisher is disabled"); + } } } catch (Exception e) { if (log.isErrorEnabled()) { http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/12559b54/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/observers/WSO2CEPStatsObserver.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/observers/WSO2CEPStatsObserver.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/observers/WSO2CEPStatsObserver.java index b2e108a..ebc793b 100644 --- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/observers/WSO2CEPStatsObserver.java +++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/observers/WSO2CEPStatsObserver.java @@ -22,9 +22,12 @@ import java.util.Map; import java.util.Observable; import java.util.Observer; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.stratos.load.balancer.common.statistics.WSO2CEPStatsPublisher; public class WSO2CEPStatsObserver implements Observer{ + private static final Log log = LogFactory.getLog(WSO2CEPStatsObserver.class); private WSO2CEPStatsPublisher statsPublisher; public WSO2CEPStatsObserver() { @@ -34,7 +37,12 @@ public class WSO2CEPStatsObserver implements Observer{ public void update(Observable arg0, Object arg1) { if(arg1 != null && arg1 instanceof Map<?, ?>) { Map<String, Integer> stats = (Map<String, Integer>)arg1; - statsPublisher.publish(stats); + if(statsPublisher.isEnabled()) { + statsPublisher.publish(stats); + } + else if (log.isWarnEnabled()) { + log.warn("Load balancer statistics publisher is disabled"); + } } } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/12559b54/extensions/load-balancer/haproxy-extension/src/main/bin/haproxy-extension.sh ---------------------------------------------------------------------- diff --git a/extensions/load-balancer/haproxy-extension/src/main/bin/haproxy-extension.sh b/extensions/load-balancer/haproxy-extension/src/main/bin/haproxy-extension.sh index bc19205..124ba09 100755 --- a/extensions/load-balancer/haproxy-extension/src/main/bin/haproxy-extension.sh +++ b/extensions/load-balancer/haproxy-extension/src/main/bin/haproxy-extension.sh @@ -36,6 +36,7 @@ properties="-Djndi.properties.dir=${script_path}/../conf -Djavax.net.ssl.trustStorePassword=wso2carbon -Dthrift.receiver.ip=localhost -Dthrift.receiver.port=7615" + -Dstratos.messaging.topology.service.filter="" # Uncomment below line to enable remote debugging #debug="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/12559b54/products/load-balancer/modules/distribution/src/main/bin/stratos.bat ---------------------------------------------------------------------- diff --git a/products/load-balancer/modules/distribution/src/main/bin/stratos.bat b/products/load-balancer/modules/distribution/src/main/bin/stratos.bat index 5fe0d9a..be63ec7 100644 --- a/products/load-balancer/modules/distribution/src/main/bin/stratos.bat +++ b/products/load-balancer/modules/distribution/src/main/bin/stratos.bat @@ -154,7 +154,7 @@ set CARBON_CLASSPATH=.\lib;%CARBON_CLASSPATH% set JAVA_ENDORSED=".\lib\endorsed";"%JAVA_HOME%\jre\lib\endorsed";"%JAVA_HOME%\lib\endorsed" -set CMD_LINE_ARGS=-Xbootclasspath/a:%CARBON_XBOOTCLASSPATH% -Xms1500m -Xmx3000m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:-UseGCOverheadLimit -XX:+CMSClassUnloadingEnabled -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%CARBON_HOME%\repository\logs\heap-dump.hprof -Dcom.sun.management.jmxremote -classpath %CARBON_CLASSPATH% %JAVA_OPTS% -Djava.endorsed.dirs=%JAVA_ENDORSED% -Dcarbon.registry.root=/ -Dcarbon.home="%CARBON_HOME%" -Dloadbalancer.conf="file:///%CARBON_HOME%/repository/conf/loadbalancer.conf" -Dwso2.server.standalone=true -Djava.command="%JAVA_HOME%\bin\java" -Djava.opts="%JAVA_OPTS%" -Djava.io.tmpdir="%CARBON_HOME%\tmp" -Dcatalina.base="%CARBON_HOME%\lib\tomcat" -Dwso2.carbon.xml=%CARBON_HOME%\repository\conf\carbon.xml -Dwso2.registry.xml="%CARBON_HOME%\repository\conf\registry.xml" -Dwso2.user.mgt.xml="%CARBON_HOME%\repository\conf\user-mgt.xml" -Djava.util.logging.config.file="%CARBON_HOME%\repository\conf\log4j.properties" - Dcarbon.config.dir.path="%CARBON_HOME%\repository\conf" -Djndi.properties.dir="%CARBON_HOME%/repository/conf" -Dconf.location="%CARBON_HOME%\repository\conf" -Dcarbon.logs.path="%CARBON_HOME%\repository\logs" -Dcomponents.repo="%CARBON_HOME%\repository\components" -Dcom.atomikos.icatch.file="%CARBON_HOME%\lib\transactions.properties" -Dcom.atomikos.icatch.hide_init_file_path="true" -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dcom.sun.jndi.ldap.connect.pool.authentication=simple -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 -Dorg.terracotta.quartz.skipUpdateCheck=true -Dcarbon.classpath=%CARBON_CLASSPATH% -Dfile.encoding=UTF8 -Djavax.net.ssl.trustStore=$CARBON_HOME/repository/resources/security/client-truststore.jks -Djavax.net.ssl.trustStorePassword=wso2carbon -Dthrift.receiver.ip=localhost -Dthrift.receiver.port=7615 -Dstratos.messaging.topology.service.filter="" +set CMD_LINE_ARGS=-Xbootclasspath/a:%CARBON_XBOOTCLASSPATH% -Xms1500m -Xmx3000m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:-UseGCOverheadLimit -XX:+CMSClassUnloadingEnabled -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%CARBON_HOME%\repository\logs\heap-dump.hprof -Dcom.sun.management.jmxremote -classpath %CARBON_CLASSPATH% %JAVA_OPTS% -Djava.endorsed.dirs=%JAVA_ENDORSED% -Dcarbon.registry.root=/ -Dcarbon.home="%CARBON_HOME%" -Dloadbalancer.conf="file:///%CARBON_HOME%/repository/conf/loadbalancer.conf" -Dwso2.server.standalone=true -Djava.command="%JAVA_HOME%\bin\java" -Djava.opts="%JAVA_OPTS%" -Djava.io.tmpdir="%CARBON_HOME%\tmp" -Dcatalina.base="%CARBON_HOME%\lib\tomcat" -Dwso2.carbon.xml=%CARBON_HOME%\repository\conf\carbon.xml -Dwso2.registry.xml="%CARBON_HOME%\repository\conf\registry.xml" -Dwso2.user.mgt.xml="%CARBON_HOME%\repository\conf\user-mgt.xml" -Djava.util.logging.config.file="%CARBON_HOME%\repository\conf\log4j.properties" - Dcarbon.config.dir.path="%CARBON_HOME%\repository\conf" -Djndi.properties.dir="%CARBON_HOME%/repository/conf" -Dconf.location="%CARBON_HOME%\repository\conf" -Dcarbon.logs.path="%CARBON_HOME%\repository\logs" -Dcomponents.repo="%CARBON_HOME%\repository\components" -Dcom.atomikos.icatch.file="%CARBON_HOME%\lib\transactions.properties" -Dcom.atomikos.icatch.hide_init_file_path="true" -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dcom.sun.jndi.ldap.connect.pool.authentication=simple -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 -Dorg.terracotta.quartz.skipUpdateCheck=true -Dcarbon.classpath=%CARBON_CLASSPATH% -Dfile.encoding=UTF8 -Djavax.net.ssl.trustStore=$CARBON_HOME/repository/resources/security/client-truststore.jks -Djavax.net.ssl.trustStorePassword=wso2carbon -Dthrift.receiver.ip=localhost -Dthrift.receiver.port=7615 -Dstratos.messaging.topology.service.filter="" -Dload.balancer.stats.publisher.enabled="false" :runJava echo JAVA_HOME environment variable is set to %JAVA_HOME% http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/12559b54/products/load-balancer/modules/distribution/src/main/bin/stratos.sh ---------------------------------------------------------------------- diff --git a/products/load-balancer/modules/distribution/src/main/bin/stratos.sh b/products/load-balancer/modules/distribution/src/main/bin/stratos.sh index 1e17dcc..d4c53bb 100644 --- a/products/load-balancer/modules/distribution/src/main/bin/stratos.sh +++ b/products/load-balancer/modules/distribution/src/main/bin/stratos.sh @@ -299,6 +299,7 @@ exec "$JAVACMD" \ -Dthrift.receiver.ip=localhost \ -Dthrift.receiver.port=7615 \ -Dstratos.messaging.topology.service.filter="" \ + -Dload.balancer.stats.publisher.enabled="false" \ org.wso2.carbon.bootstrap.Bootstrap $*
