View Source

A Petals ESB container is composed of several internal components. Each one can be monitored and provides several metrics:
* the transporters:
** the local transporter:
*** [delivered messages|#localTransporter_DeliveredMsg],
** the remote transporter:
*** [delivered outgoing messages|#remoteTransporter_DeliveredMsg],
*** [delivered incoming messages|#remoteTransporter_DeliveredMsg],
*** [outgoing connection pools|#remoteTransporter_OutgoingConnectionPools],
*** [incoming connection pools|#remoteTransporter_IncomingConnectionPools].

h1. Monitoring the transporters

h2. Monitoring the local transporter

{anchor:localTransporter_DeliveredMsg}
h3. Delivered messages

!petals-local-transporter-delivered-messages.png|align=center!

The number of messages delivered by the local transporter can be graphed:
* by message exchange status, see [Creating a graph using a simple data|How to create a graph with Cacti#Creating a graph using a simple data]:
** Script/Command of the data input method: {{petals-cli.sh \-h <petals_host> \-n <petals_jmx_port> \-u <petals_jmx_user> \-p <petals_jmx_password> \-c \-- monitoring \-o local-transporter \-f delivered-messages \-- \-m}}
** Output fields of the script/command:
|| Name || Description || Type ||
| Active | Number of delivered message with status 'Active' | COUNTER |
| Done | Number of delivered message with status 'Done' | COUNTER |
| Error | Number of delivered message with status 'Error' | COUNTER |
* by message exchange status and filtered for a dedicated endpoint, or a service, or an interface, see [Creating a graph using a data query|How to create a graph with Cacti#Creating a graph using a data query]:
** the data query definition to put in a file:
{code}
<interface>
<name>Get Delivered Messages by the Local transporter to an endpoint</name>
<script_path>petals-cli.sh</script_path>
<arg_prepend>-h localhost -n 7700 -u petals -p petals -c -- monitoring -o local-transporter -f delivered-messages</arg_prepend>
<arg_index>-- --list-endpoints</arg_index>
<arg_query>-- --query-endpoints</arg_query>
<arg_get>-- --query-endpoints</arg_get>
<output_delimeter>!</output_delimeter>
<index_order>filterName</index_order>
<index_order_type>alphanumeric</index_order_type>
<!--index_title_format>|chosen_order_field|</index_title_format-->

<fields>
<filterName>
<name>Endpoint name</name>
<direction>input</direction>
<query_name>NAME</query_name>
</filterName>
<activeDeliveredMsgs>
<name>Active Message exchange delivered counter</name>
<direction>output</direction>
<query_name>ACTIVE</query_name>
</activeDeliveredMsgs>
<doneDeliveredMsgs>
<name>Done Message exchange delivered counter</name>
<direction>output</direction>
<query_name>DONE</query_name>
</doneDeliveredMsgs>
<errorDeliveredMsgs>
<name>Error Message exchange delivered counter</name>
<direction>output</direction>
<query_name>ERROR</query_name>
</errorDeliveredMsgs>
</fields>
</interface>
{code}
To filter by {{service}}, replace {{<arg_index>}}, {{<arg_query>}} and {{<arg_get>}} by:
{code}
<arg_index>-- --list-services</arg_index>
<arg_query>-- --query-services</arg_query>
<arg_get>-- --query-services</arg_get>
{code}
To filter by {{interface}}, replace {{<arg_index>}}, {{<arg_query>}} and {{<arg_get>}} by:
{code}
<arg_index>-- --list-interfaces</arg_index>
<arg_query>-- --query-interfaces</arg_query>
<arg_get>-- --query-interfaces</arg_get>
{code}
|| Name || Description || Type ||
| activeDeliveredMsgs | Number of delivered message with status 'Active' | COUNTER |
| doneDeliveredMsgs | Number of delivered message with status 'Done' | COUNTER |
| errorDeliveredMsgs | Number of delivered message with status 'Error' | COUNTER |

h2. Monitoring the remote transporter

{anchor:remoteTransporter_DeliveredMsg}
h3. Delivered messages (incoming or outgoing messages)

The number of messages delivered by the remote transporter can be graphed:
* by delivery status and filtered for a dedicated remote container, see [Creating a graph using a data query|How to create a graph with Cacti#Creating a graph using a data query]:
** the data query definition to put in a file:
{code}
<interface>
<name>Outgoing messages delivered by the remote transporter to the given remote container</name>
<script_path>petals-cli.sh</script_path>
<arg_prepend>-h localhost -n 7700 -u petals -p petals -c -- monitoring -o tcp-transporter -f delivered-outgoing-messages</arg_prepend>
<arg_index>-- --list-containers</arg_index>
<arg_query>-- --query-containers</arg_query>
<arg_get>-- --query-containers</arg_get>
<output_delimeter>!</output_delimeter>
<index_order>filterName</index_order>
<index_order_type>alphanumeric</index_order_type>
<!--index_title_format>|chosen_order_field|</index_title_format-->

<fields>
<filterName>
<name>Remote container name</name>
<direction>input</direction>
<query_name>NAME</query_name>
</filterName>
<pendingDeliveredMsgs>
<name>Pending message delivery counter</name>
<direction>output</direction>
<query_name>PENDING</query_name>
</pendingDeliveredMsgs>
<succeededDeliveredMsgs>
<name>Succeeded message delivery counter</name>
<direction>output</direction>
<query_name>SUCCEEDED</query_name>
</succeededDeliveredMsgs>
<errorDeliveredMsgs>
<name>Error message delivery counter</name>
<direction>output</direction>
<query_name>ERROR</query_name>
</errorDeliveredMsgs>
</fields>
</interface>
{code}

|| Name || Description || Type ||
| pendingDeliveredMsgs | Number of delivered message with status 'Pending' | COUNTER |
| succeededDeliveredMsgs | Number of delivered message with status 'Succeeded' | COUNTER |
| errorDeliveredMsgs | Number of delivered message with status 'Error' | COUNTER |

{anchor:remoteTransporter_OutgoingConnectionPools}
h3. Outgoing connection pools

The metrics of outgoing connection pools of the remote transporter can be graphed for a given remote container as [a graph using simple data|How to create a graph with Cacti#Creating a graph using a simple data]:
* Script/Command of the data input method: {{petals-cli.sh \-h <petals_host> \-n <petals_jmx_port> \-u <petals_jmx_user> \-p <petals_jmx_password> \-c \-- monitoring \-o tcp-transporter \-f outgoing-connections \-- \-c <remote-container-name>}}
* Output fields of the script/command:
|| Name || Description || Type ||
| {{ActiveConnectionsMax}} | The maximum number of active connections (established and used) | GAUGE |
| {{ActiveConnectionsCurrent}} | The current number of active connections (established and used) | GAUGE |
| {{IdleConnectionsMax}} | The maximum number of idle connections (established but not used) | GAUGE |
| {{IdleConnectionsCurrent}} | The current number of idle connections (established but not used) | GAUGE |
| {{MaxSize}} | The maximum size of the connection pool | GAUGE |
| {{MinSize}} | The minimum size of the connection pool | GAUGE |
| {{EstablishedConnections}} | The number of connection established since the last start of the remote transporter | COUNTER |

{anchor:remoteTransporter_IncomingConnectionPools}
h3. Incoming connection pools

The metrics of incoming connection pools of the remote transporter can be graphed for a given remote container as [a graph using simple data|How to create a graph with Cacti#Creating a graph using a simple data]:
* Script/Command of the data input method: {{petals-cli.sh \-h <petals_host> \-n <petals_jmx_port> \-u <petals_jmx_user> \-p <petals_jmx_password> \-c \-- monitoring \-o tcp-transporter \-f incoming-connections \-- \-c <remote-container-name>}}
* Output fields of the script/command:
|| Name || Description || Type ||
| {{ActiveConnectionsMax}} | The maximum number of active connections (established and used) | GAUGE |
| {{ActiveConnectionsCurrent}} | The current number of active connections (established and used) | GAUGE |
| {{IdleConnectionsMax}} | The maximum number of idle connections (established but not used) | GAUGE |
| {{IdleConnectionsCurrent}} | The current number of idle connections (established but not used) | GAUGE |
| {{EstablishedConnections}} | The number of connection established since the last start of the remote transporter | COUNTER |