I think not, at the moment the following query is executed to send fault
member messages to the message broker:

<stream as="healthStats1" name="cartridge_agent_health_stats"
version="1.0.0"/>
...
[from healthStats1 [health_description == 'port_not_open'] select
cluster_id,network_partition_id,member_id insert into fault_message;



On Tue, Dec 17, 2013 at 10:47 AM, Lahiru Sandaruwan <[email protected]>wrote:

>
>
>
> On Tue, Dec 17, 2013 at 10:39 AM, Imesh Gunaratne <[email protected]>wrote:
>
>> I just noticed a potential issue in fault message generation process:
>>
>> It looks like the Cartridge Agent is sending ports_not_open messages to
>> CEP if the application ports are not open. I think this should happen other
>> way around. Otherwise if cartridge agent goes down the system will think
>> that the member is still active and another instance may not be spawned.
>> WDYT?
>>
>>
> If the agent goes down, CEP will detect it and it will send member fault
> event after waiting few cycles.
>
> I think this is already there...
>
> Thanks
>>
>>
>> On Tue, Dec 17, 2013 at 10:21 AM, Imesh Gunaratne <[email protected]>wrote:
>>
>>> Hi,
>>>
>>> I just wanted to document the inputs and outputs of the Complex Event
>>> Processor. Once this is finalized we could add this information to the Wiki.
>>>
>>>
>>> *Input Stream Payload Definitions*
>>> Following payload definitions describe the messages sent to CEP by load
>>> balancers and cartridge agents:
>>>
>>> *1. In-Flight Request Count:*
>>>
>>> <payloadData>
>>>      <property name="cluster_id" type="String"/>
>>>      <property name="network_partition_id" type="String"/>
>>>      <property name="in_flight_request_count" type="int"/>
>>> </payloadData>
>>>
>>> These messages are sent by load balancers to the CEP.
>>>
>>>  *2. Cartridge Agent Health Stats:*
>>>
>>> <payloadData>
>>>      <property name="cluster_id" type="String" />
>>>      <property name="network_partition_id" type="String"/>
>>>      <property name="member_id" type="String" />
>>>      <property name="health_description" type="String"/>
>>>      <property name="value" type="double"/>
>>> </payloadData>
>>>
>>> These messages are sent by cartridge agents to CEP.
>>>
>>> health_description: 'port_not_open', 'load_average', 'memory_consumption'
>>> Here I would like to suggest to rename "health_description" to something
>>> like "parameter".
>>>
>>>
>>> *Output Message Formats*
>>> Following are the formats of the messages sent by the CEP to the message
>>> broker:
>>>
>>> *1. Average In-Flight Requests:*
>>>
>>> {"average_in_flight_requests":{"cluster_id":"{{cluster_id}}","network_partition_id":"{{network_partition_id}}","value":"{{count}}"}}
>>>
>>> *2. Average Load Average:*
>>>
>>> {"average_load_average":{"cluster_id":"{{cluster_id}}","network_partition_id":"{{network_partition_id}}","value":"{{average_load_average}}"}}
>>>
>>> *3. Average Memory Consumption:*
>>>
>>> {"average_memory_consumption":{"cluster_id":"{{cluster_id}}","network_partition_id":"{{network_partition_id}}","value":"{{average_memory_consumption}}"}}
>>>
>>> *4. Fault Member:*
>>>
>>> {"member_fault":{"cluster_id":"{{cluster_id}}","network_partition_id":"{{network_partition_id}}","member_id":"{{member_id}}"}}
>>>
>>> *5. Gradient In-Flight Requests:*
>>>
>>> {"gradient_in_flight_requests":{"cluster_id":"{{cluster_id}}","network_partition_id":"{{network_partition_id}}","value":"{{count}}"}}
>>>
>>> *6. Gradient Load Average:*
>>>
>>> {"gradient_load_average":{"cluster_id":"{{cluster_id}}","network_partition_id":"{{network_partition_id}}","value":"{{gradient_load_average}}"}}
>>>
>>> *7. Gradient Memory Consumption:*
>>>
>>> {"gradient_memory_consumption":{"cluster_id":"{{cluster_id}}","network_partition_id":"{{network_partition_id}}","value":"{{gradient_memory_consumption}}"}}
>>>
>>> *8. Second Derivative In-Flight Requests:*
>>>
>>> {"second_derivative_in_flight_requests":{"cluster_id":"{{cluster_id}}","network_partition_id":"{{network_partition_id}}","value":"{{count}}"}}
>>>
>>> *9. Second Derivative Load Average:*
>>>
>>> {"second_derivative_load_average":{"cluster_id":"{{cluster_id}}","network_partition_id":"{{network_partition_id}}","value":"{{second_derivative_load_average}}"}}
>>>
>>> *10. Second Derivative Memory Consumption:*
>>>
>>> {"second_derivative_memory_consumption":{"cluster_id":"{{cluster_id}}","network_partition_id":"{{network_partition_id}}","value":"{{second_derivative_memory_consumption}}"}}
>>>
>>> I think we need to implement message processors and event listeners for
>>> these messages in messaging component and Autoscaler could use those to
>>> listen to required events.
>>>
>>>
>>> Many Thanks
>>> Imesh
>>>
>>
>>
>
>
> --
> --
> Lahiru Sandaruwan
> Software Engineer,
> Platform Technologies,
> WSO2 Inc., http://wso2.com
> lean.enterprise.middleware
>
> email: [email protected] cell: (+94) 773 325 954
> blog: http://lahiruwrites.blogspot.com/
> twitter: http://twitter.com/lahirus
> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>
>

Reply via email to