Updated Branches: refs/heads/master e93bb7c93 -> 4df9f714c
Moved statistics publisher initialization logic to init() method Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/4df9f714 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/4df9f714 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/4df9f714 Branch: refs/heads/master Commit: 4df9f714c24f7f6e7e3134034c879397e1eec601 Parents: e93bb7c Author: Imesh Gunaratne <[email protected]> Authored: Fri Nov 22 11:30:35 2013 +0530 Committer: Imesh Gunaratne <[email protected]> Committed: Fri Nov 22 11:30:35 2013 +0530 ---------------------------------------------------------------------- .../statistics/WSO2CEPStatsPublisher.java | 29 +++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/4df9f714/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 a781fba..0cb250e 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 @@ -38,24 +38,32 @@ import java.util.Map; */ public class WSO2CEPStatsPublisher implements LoadBalancerStatsPublisher { private static final Log log = LogFactory.getLog(WSO2CEPStatsPublisher.class); + private static final String CALL_CENTER_DATA_STREAM = "stratos.lb.stats"; private static final String VERSION = "1.0.0"; private AsyncDataPublisher asyncDataPublisher; + private String ip; + private String port; private boolean enabled = true; public WSO2CEPStatsPublisher() { - AgentConfiguration agentConfiguration = new AgentConfiguration(); - Agent agent = new Agent(agentConfiguration); - - //TODO read following from a config file? - String ip = System.getProperty("thrift.receiver.ip"); - String port = System.getProperty("thrift.receiver.port"); + //TODO: Move system properties to a config file + ip = System.getProperty("thrift.receiver.ip"); + port = System.getProperty("thrift.receiver.port"); String enabledStr = System.getProperty("load.balancer.stats.publisher.enabled"); if(StringUtils.isNotBlank(enabledStr)) { enabled = Boolean.getBoolean(enabledStr); } + if(enabled) { + init(); + } + } - // Using asynchronous data publisher + private void init() { + AgentConfiguration agentConfiguration = new AgentConfiguration(); + Agent agent = new Agent(agentConfiguration); + + // Initialize asynchronous data publisher asyncDataPublisher = new AsyncDataPublisher("tcp://"+ip+":"+port+"", "admin", "admin", agent); String streamDefinition = "{" + " 'name':'" + CALL_CENTER_DATA_STREAM + "'," + @@ -74,6 +82,9 @@ public class WSO2CEPStatsPublisher implements LoadBalancerStatsPublisher { @Override public void setEnabled(boolean enabled) { this.enabled = enabled; + if(this.enabled) { + init(); + } } @Override @@ -83,6 +94,10 @@ public class WSO2CEPStatsPublisher implements LoadBalancerStatsPublisher { @Override public void publish(Map<String, Integer> stats) { + if(!isEnabled()) { + throw new RuntimeException("Statistics publisher is not enabled"); + } + for (Map.Entry<String, Integer> entry : stats.entrySet()) { Object[] payload = new Object[]{entry.getKey(), entry.getValue()};
