Merge remote-tracking branch 'origin/master'
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/02b6b7fb Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/02b6b7fb Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/02b6b7fb Branch: refs/heads/master Commit: 02b6b7fb4dad8b9e28b243aa1084a63655116df2 Parents: 4b8ef10 5f2b804 Author: Imesh Gunaratne <[email protected]> Authored: Wed Dec 11 21:18:24 2013 +0530 Committer: Imesh Gunaratne <[email protected]> Committed: Wed Dec 11 21:18:24 2013 +0530 ---------------------------------------------------------------------- .../processor/ClusterStatusEventProcessor.java | 48 ++++++- .../execution-plans/AverageHeathRequest.xml | 7 +- .../AverageRequestsInflightFinder.xml | 6 +- .../execution-plans/GradientOfHealthRequest.xml | 17 ++- .../GradientOfRequestsInFlightFinder.xml | 8 +- .../SecondDerivativeOfHealthRequest.xml | 12 +- ...SecondDerivativeOfRequestsInFlightFinder.xml | 8 +- .../stream-manager-config.xml | 18 +++ .../distribution/src/main/assembly/bin.xml | 8 +- .../distribution/src/main/conf/autoscaler.drl | 81 ------------ .../distribution/src/main/conf/mincheck.drl | 73 +++++++++++ .../distribution/src/main/conf/scaling.drl | 127 +++++++++++++++++++ .../src/main/bin/health-publisher.sh | 2 +- .../agent/health/publisher/HealthPublisher.java | 22 ++-- 14 files changed, 308 insertions(+), 129 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/02b6b7fb/extensions/cep/artifacts/execution-plans/AverageHeathRequest.xml ---------------------------------------------------------------------- diff --cc extensions/cep/artifacts/execution-plans/AverageHeathRequest.xml index ccca3fd,0000000..75c599d mode 100644,000000..100644 --- a/extensions/cep/artifacts/execution-plans/AverageHeathRequest.xml +++ b/extensions/cep/artifacts/execution-plans/AverageHeathRequest.xml @@@ -1,24 -1,0 +1,23 @@@ +<?xml version="1.0" encoding="UTF-8"?> +<executionPlan name="AverageHeathRequest" statistics="disable" + trace="enable" xmlns="http://wso2.org/carbon/eventprocessor"> + <description>This will average health stats of an instance over a minute.</description> + <siddhiConfiguration> + <property name="siddhi.enable.distributed.processing">false</property> + <property name="siddhi.persistence.snapshot.time.interval.minutes">0</property> + </siddhiConfiguration> + <importedStreams> + <stream as="healthStats1" name="stratos.agent.health.stats" version="1.0.0"/> + </importedStreams> - <queryExpressions><![CDATA[define partition healthStats1Partition by member_id; - from healthStats1 [health_description == 'port_not_open'] select member_id, cluster_id insert into fault_message partition by healthStats1Partition; - from healthStats1 [health_description == 'load_average'] #window.timeBatch(1 min) select member_id, avg(value) as average_load_average insert into average_load_average_stats partition by healthStats1Partition; - from healthStats1 [health_description == 'memory_consumption'] #window.timeBatch(1 min) select member_id, avg(value) as average_memory_consumption insert into average_memory_consumption_stats partition by healthStats1Partition;]]></queryExpressions> ++ <queryExpressions><![CDATA[from healthStats1 [health_description == 'port_not_open'] select cluster_id,partition_id,member_id group by cluster_id,partition_id insert into fault_message; ++ from healthStats1 [health_description == 'load_average'] #window.timeBatch(1 min) select cluster_id,partition_id,member_id, avg(value) as average_load_average group by cluster_id,partition_id insert into average_load_average_stats; ++ from healthStats1 [health_description == 'memory_consumption'] #window.timeBatch(1 min) select cluster_id,partition_id,member_id, avg(value) as average_memory_consumption group by cluster_id,partition_id insert into average_memory_consumption_stats;]]></queryExpressions> + <exportedStreams> + <stream name="average_load_average_stats" passthroughFlow="disable" + valueOf="average_load_average_stats" version="1.0.0"/> + <stream name="average_memory_consumption_stats" passthroughFlow="disable" + valueOf="average_memory_consumption_stats" version="1.0.0"/> + <stream name="fault_message" passthroughFlow="disable" + valueOf="fault_message" version="1.0.0"/> + </exportedStreams> +</executionPlan> http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/02b6b7fb/extensions/cep/artifacts/execution-plans/AverageRequestsInflightFinder.xml ---------------------------------------------------------------------- diff --cc extensions/cep/artifacts/execution-plans/AverageRequestsInflightFinder.xml index 6ec19fc,0000000..4f72ece mode 100644,000000..100644 --- a/extensions/cep/artifacts/execution-plans/AverageRequestsInflightFinder.xml +++ b/extensions/cep/artifacts/execution-plans/AverageRequestsInflightFinder.xml @@@ -1,19 -1,0 +1,19 @@@ +<?xml version="1.0" encoding="UTF-8"?> +<executionPlan name="AverageRequestsInflightFinder" statistics="disable" + trace="enable" xmlns="http://wso2.org/carbon/eventprocessor"> + <description>This will average the number of requests in flight over a minute.</description> + <siddhiConfiguration> + <property name="siddhi.enable.distributed.processing">false</property> + <property name="siddhi.persistence.snapshot.time.interval.minutes">0</property> + </siddhiConfiguration> + <importedStreams> - <stream as="lbStats1" name="stratos.lb.in.flight.req.count" version="1.0.0"/> ++ <stream as="lbStats1" name="stratos.lb.stats" version="1.0.0"/> + </importedStreams> - <queryExpressions><![CDATA[define partition lbStats1Partition by cluster_id; ++ <queryExpressions><![CDATA[ +from lbStats1#window.timeBatch(1 min) - select cluster_id, avg(in_flight_request_count) as count insert into aggregated_requests_stats partition by lbStats1Partition;]]></queryExpressions> ++select cluster_id,partition_id, avg(in_flight_requests) as count group by cluster_id,partition_id insert into aggregated_requests_stats;]]></queryExpressions> + <exportedStreams> + <stream name="aggregated_requests_stats" + valueOf="aggregated_requests_stats" version="1.0.0"/> + </exportedStreams> +</executionPlan> http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/02b6b7fb/extensions/cep/artifacts/execution-plans/GradientOfHealthRequest.xml ---------------------------------------------------------------------- diff --cc extensions/cep/artifacts/execution-plans/GradientOfHealthRequest.xml index 4a5d2cb,0000000..a286c12 mode 100644,000000..100644 --- a/extensions/cep/artifacts/execution-plans/GradientOfHealthRequest.xml +++ b/extensions/cep/artifacts/execution-plans/GradientOfHealthRequest.xml @@@ -1,24 -1,0 +1,23 @@@ +<?xml version="1.0" encoding="UTF-8"?> +<executionPlan name="GradientOfHealthRequest" statistics="disable" - trace="enable" xmlns="http://wso2.org/carbon/eventprocessor"> ++ trace="disable" xmlns="http://wso2.org/carbon/eventprocessor"> + <description>This will find the gradient of the heath request over a minute.</description> + <siddhiConfiguration> + <property name="siddhi.enable.distributed.processing">false</property> + <property name="siddhi.persistence.snapshot.time.interval.minutes">0</property> + </siddhiConfiguration> + <importedStreams> + <stream as="healthStats2" name="stratos.agent.health.stats" version="1.0.0"/> + </importedStreams> - <queryExpressions><![CDATA[define partition healthStats2Partition by member_id; - from healthStats2 #window.stratos:faultHandling(1min, member_id) select member_id, cluster_id insert into fault_message partition by healthStats2Partition; - from healthStats2 [health_description == 'load_average'] #window.stratos:gradient(1 min, value) select member_id, value as gradient_load_average insert into gradient_load_average_stats partition by healthStats2Partition; - from healthStats2 [health_description == 'memory_consumption'] #window.stratos:gradient(1 min, value) select member_id, value as gradient_memory_consumption insert into gradient_memory_consumption_stats partition by healthStats2Partition;]]></queryExpressions> ++ <queryExpressions><![CDATA[ ++ from healthStats2 #window.stratos:faultHandling(1min, member_id) select cluster_id,partition_id,member_id group by cluster_id,partition_id insert into fault_message; ++ from healthStats2 [health_description == 'load_average'] #window.stratos:gradient(1 min, value) select cluster_id,partition_id, member_id, value as gradient_load_average group by cluster_id,partition_id insert into gradient_load_average_stats; ++ from healthStats2 [health_description == 'memory_consumption'] #window.stratos:gradient(1 min, value) select cluster_id,partition_id,member_id, value as gradient_memory_consumption group by cluster_id,partition_id insert into gradient_memory_consumption_stats;]]></queryExpressions> + <exportedStreams> - <stream name="gradient_load_average_stats" passthroughFlow="disable" ++ <stream name="gradient_load_average_stats" + valueOf="gradient_load_average_stats" version="1.0.0"/> - <stream name="gradient_memory_consumption_stats" passthroughFlow="disable" ++ <stream name="gradient_memory_consumption_stats" + valueOf="gradient_memory_consumption_stats" version="1.0.0"/> - <stream name="fault_message" passthroughFlow="disable" - valueOf="fault_message" version="1.0.0"/> ++ <stream name="fault_message" valueOf="fault_message" version="1.0.0"/> + </exportedStreams> +</executionPlan> http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/02b6b7fb/extensions/cep/artifacts/execution-plans/GradientOfRequestsInFlightFinder.xml ---------------------------------------------------------------------- diff --cc extensions/cep/artifacts/execution-plans/GradientOfRequestsInFlightFinder.xml index a8be5fa,0000000..27286fe mode 100644,000000..100644 --- a/extensions/cep/artifacts/execution-plans/GradientOfRequestsInFlightFinder.xml +++ b/extensions/cep/artifacts/execution-plans/GradientOfRequestsInFlightFinder.xml @@@ -1,18 -1,0 +1,18 @@@ +<?xml version="1.0" encoding="UTF-8"?> +<executionPlan name="GradientOfRequestsInFlightFinder" + statistics="disable" trace="enable" xmlns="http://wso2.org/carbon/eventprocessor"> + <description>This will find the gradient of the number of requests in flight over a minute.</description> + <siddhiConfiguration> + <property name="siddhi.enable.distributed.processing">false</property> + <property name="siddhi.persistence.snapshot.time.interval.minutes">0</property> + </siddhiConfiguration> + <importedStreams> - <stream as="lbStats2" name="stratos.lb.in.flight.req.count" version="1.0.0"/> ++ <stream as="lbStats2" name="stratos.lb.stats" version="1.0.0"/> + </importedStreams> - <queryExpressions><![CDATA[define partition lbStats1Partition by cluster_id; - from lbStats2#window.stratos:gradient(1 min, in_flight_request_count) - select cluster_id, in_flight_request_count as count insert into gradient_stats partition by lbStats1Partition;]]></queryExpressions> ++ <queryExpressions><![CDATA[ ++from lbStats2#window.stratos:gradient(1 min, in_flight_requests) ++select cluster_id,partition_id,in_flight_requests as count group by cluster_id,partition_id insert into gradient_stats;]]></queryExpressions> + <exportedStreams> + <stream name="gradient_stats" valueOf="gradient_stats" version="1.0.0"/> + </exportedStreams> +</executionPlan> http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/02b6b7fb/extensions/cep/artifacts/execution-plans/SecondDerivativeOfHealthRequest.xml ---------------------------------------------------------------------- diff --cc extensions/cep/artifacts/execution-plans/SecondDerivativeOfHealthRequest.xml index fd7c8d9,0000000..f059c8a mode 100644,000000..100644 --- a/extensions/cep/artifacts/execution-plans/SecondDerivativeOfHealthRequest.xml +++ b/extensions/cep/artifacts/execution-plans/SecondDerivativeOfHealthRequest.xml @@@ -1,21 -1,0 +1,21 @@@ +<?xml version="1.0" encoding="UTF-8"?> +<executionPlan name="SecondDerivativeOfHealthRequest" - statistics="disable" trace="enable" xmlns="http://wso2.org/carbon/eventprocessor"> ++ statistics="disable" trace="disable" xmlns="http://wso2.org/carbon/eventprocessor"> + <description>This will find the second derivative of health stats over a minute.</description> + <siddhiConfiguration> + <property name="siddhi.enable.distributed.processing">false</property> + <property name="siddhi.persistence.snapshot.time.interval.minutes">0</property> + </siddhiConfiguration> + <importedStreams> + <stream as="healthStats3" name="stratos.agent.health.stats" version="1.0.0"/> + </importedStreams> - <queryExpressions><![CDATA[define partition healthStats3Partition by member_id; - from healthStats3 [health_description == 'memory_consumption'] #window.stratos:secondDerivative(1 min, value) select member_id, value as second_derivative_memory_consumption insert into second_derivative_memory_consumption_stats partition by healthStats3Partition; - from healthStats3 [health_description == 'load_average'] #window.stratos:secondDerivative(1 min, value) select member_id, value as second_derivative_load_average insert into second_derivative_load_average_stats partition by healthStats3Partition;]]></queryExpressions> ++ <queryExpressions><![CDATA[ ++ from healthStats3 [health_description == 'memory_consumption'] #window.stratos:secondDerivative(1 min, value) select cluster_id,partition_id,member_id, value as second_derivative_memory_consumption group by cluster_id,partition_id insert into second_derivative_memory_consumption_stats; ++ from healthStats3 [health_description == 'load_average'] #window.stratos:secondDerivative(1 min, value) select cluster_id,partition_id,member_id, value as second_derivative_load_average group by cluster_id,partition_id insert into second_derivative_load_average_stats;]]></queryExpressions> + <exportedStreams> - <stream name="second_derivative_memory_consumption_stats" passthroughFlow="disable" ++ <stream name="second_derivative_memory_consumption_stats" + valueOf="second_derivative_memory_consumption_stats" version="1.0.0"/> - <stream name="second_derivative_load_average_stats" passthroughFlow="disable" ++ <stream name="second_derivative_load_average_stats" + valueOf="second_derivative_load_average_stats" version="1.0.0"/> + </exportedStreams> +</executionPlan> http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/02b6b7fb/extensions/cep/artifacts/execution-plans/SecondDerivativeOfRequestsInFlightFinder.xml ---------------------------------------------------------------------- diff --cc extensions/cep/artifacts/execution-plans/SecondDerivativeOfRequestsInFlightFinder.xml index 1afde17,0000000..80863b0 mode 100644,000000..100644 --- a/extensions/cep/artifacts/execution-plans/SecondDerivativeOfRequestsInFlightFinder.xml +++ b/extensions/cep/artifacts/execution-plans/SecondDerivativeOfRequestsInFlightFinder.xml @@@ -1,19 -1,0 +1,19 @@@ +<?xml version="1.0" encoding="UTF-8"?> +<executionPlan name="SecondDerivativeOfRequestsInFlightFinder" + statistics="disable" trace="enable" xmlns="http://wso2.org/carbon/eventprocessor"> + <description>This will find the second derivative of the number of requests in flight over a minute.</description> + <siddhiConfiguration> + <property name="siddhi.enable.distributed.processing">false</property> + <property name="siddhi.persistence.snapshot.time.interval.minutes">0</property> + </siddhiConfiguration> + <importedStreams> - <stream as="lbStats3" name="stratos.lb.in.flight.req.count" version="1.0.0"/> ++ <stream as="lbStats3" name="stratos.lb.stats" version="1.0.0"/> + </importedStreams> - <queryExpressions><![CDATA[define partition lbStats1Partition by cluster_id; - from lbStats3#window.stratos:secondDerivative(1 min, in_flight_request_count) - select cluster_id, in_flight_request_count as count insert into second_derivative_of_requests_stats partition by lbStats1Partition;]]></queryExpressions> ++ <queryExpressions><![CDATA[ ++from lbStats3#window.stratos:secondDerivative(1 min, in_flight_requests) ++select cluster_id,partition_id,in_flight_requests as count group by cluster_id,partition_id insert into second_derivative_of_requests_stats;]]></queryExpressions> + <exportedStreams> + <stream name="second_derivative_of_requests_stats" + valueOf="second_derivative_of_requests_stats" version="1.0.0"/> + </exportedStreams> +</executionPlan> http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/02b6b7fb/extensions/cep/artifacts/stream-definitions/stream-manager-config.xml ---------------------------------------------------------------------- diff --cc extensions/cep/artifacts/stream-definitions/stream-manager-config.xml index f45cdd8,0000000..d5ce719 mode 100755,000000..100755 --- a/extensions/cep/artifacts/stream-definitions/stream-manager-config.xml +++ b/extensions/cep/artifacts/stream-definitions/stream-manager-config.xml @@@ -1,164 -1,0 +1,182 @@@ +<streamManagerConfiguration xmlns="http://wso2.org/carbon/streammanager"> + + <streamDefinition name="stratos.lb.in.flight.req.count" version="1.0.0"> + <description>cluster partition in-flight request count</description> + <nickName>in-flight request count</nickName> + <metaData> + </metaData> + <correlationData> + </correlationData> + <payloadData> + <property name="cluster_id" type="String"/> + <property name="partition_id" type="String"/> + <property name="in_flight_request_count" type="int"/> + </payloadData> + </streamDefinition> + + <streamDefinition name="gradient_stats" version="1.0.0"> + <description>gradient stats</description> + <nickName>gradient stats</nickName> + <metaData> + </metaData> + <correlationData> + </correlationData> + <payloadData> ++ <property name="partition_id" type="String"/> + <property name="cluster_id" type="String"/> + <property name="count" type="double"/> + </payloadData> + </streamDefinition> + + <streamDefinition name="aggregated_requests_stats" version="1.0.0"> + <description>aggregated requests stats</description> + <nickName>aggregated requests stats</nickName> + <metaData> + </metaData> + <correlationData> + </correlationData> + <payloadData> ++ <property name="partition_id" type="String"/> + <property name="cluster_id" type="String"/> + <property name="count" type="double"/> + </payloadData> + </streamDefinition> + + <streamDefinition name="second_derivative_of_requests_stats" version="1.0.0"> + <description>second derivative of requests stats</description> + <nickName>second derivative of requests stats</nickName> + <metaData> + </metaData> + <correlationData> + </correlationData> + <payloadData> ++ <property name="partition_id" type="String"/> + <property name="cluster_id" type="String"/> + <property name="count" type="double"/> + </payloadData> + </streamDefinition> + + <!-- This section is for health stat --> + + <streamDefinition name="stratos.agent.health.stats" version="1.0.0"> + <description>agent health stats</description> + <nickName>agent health stats</nickName> + <metaData> + </metaData> + <correlationData> + </correlationData> + <payloadData> + <property name="health_description" type="String"/> + <property name="value" type="double"/> + <property name="member_id" type="String" /> + <property name="cluster_id" type="String" /> ++ <property name="partition_id" type="String"/> + </payloadData> + </streamDefinition> + + <streamDefinition name="average_load_average_stats" version="1.0.0"> + <description>average load average stats</description> + <nickName>average load average stats</nickName> + <metaData> + </metaData> + <correlationData> + </correlationData> + <payloadData> ++ <property name="cluster_id" type="String" /> ++ <property name="partition_id" type="String"/> + <property name="member_id" type="String"/> + <property name="average_load_average" type="double"/> + </payloadData> + </streamDefinition> + + <streamDefinition name="average_memory_consumption_stats" version="1.0.0"> + <description>average memory consumption stats</description> + <nickName>average memory consumption stats</nickName> + <metaData> + </metaData> + <correlationData> + </correlationData> + <payloadData> ++ <property name="cluster_id" type="String"/> ++ <property name="partition_id" type="String"/> + <property name="member_id" type="String"/> + <property name="average_memory_consumption" type="double"/> + </payloadData> + </streamDefinition> + + <streamDefinition name="gradient_load_average_stats" version="1.0.0"> + <description>gradient load average stats</description> + <nickName>gradient load average stats</nickName> + <metaData> + </metaData> + <correlationData> + </correlationData> + <payloadData> ++ <property name="cluster_id" type="String" /> ++ <property name="partition_id" type="String"/> + <property name="member_id" type="String"/> + <property name="gradient_load_average" type="double"/> + </payloadData> + </streamDefinition> + + <streamDefinition name="gradient_memory_consumption_stats" version="1.0.0"> + <description>gradient memoryconsumption stats</description> + <nickName>gradient memoryconsumption stats</nickName> + <metaData> + </metaData> + <correlationData> + </correlationData> + <payloadData> ++ <property name="cluster_id" type="String" /> ++ <property name="partition_id" type="String"/> + <property name="member_id" type="String"/> + <property name="gradient_memory_consumption" type="double"/> + </payloadData> + </streamDefinition> + + <streamDefinition name="second_derivative_memory_consumption_stats" version="1.0.0"> + <description>second derivative memory consumption stats</description> + <nickName>second derivative memory consumption stats</nickName> + <metaData> + </metaData> + <correlationData> + </correlationData> + <payloadData> ++ <property name="cluster_id" type="String" /> ++ <property name="partition_id" type="String"/> + <property name="member_id" type="String"/> + <property name="second_derivative_memory_consumption" type="double"/> + </payloadData> + </streamDefinition> + + <streamDefinition name="second_derivative_load_average_stats" version="1.0.0"> + <description>second derivative load average stats</description> + <nickName>second derivative load average stats</nickName> + <metaData> + </metaData> + <correlationData> + </correlationData> + <payloadData> ++ <property name="cluster_id" type="String" /> ++ <property name="partition_id" type="String"/> + <property name="member_id" type="String"/> + <property name="second_derivative_load_average" type="double"/> + </payloadData> + </streamDefinition> + + <streamDefinition name="fault_message" version="1.0.0"> + <description>fault message</description> + <nickName>fault message</nickName> + <metaData> + </metaData> + <correlationData> + </correlationData> + <payloadData> ++ <property name="cluster_id" type="String"/> ++ <property name="partition_id" type="String"/> + <property name="member_id" type="String"/> + <property name="cluster_id" type="String" /> + </payloadData> + </streamDefinition> + +</streamManagerConfiguration>
