com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_links' is unknown.

JMX Monitoring

Java Management Extensions (JMX) is a technology that lets you implement management interfaces for Java applications. JConsole is a JMX-compliant monitoring tool, which comes with the Java Development Kit (JDK) 1.5 or later versions. Therefore, when you use a WSO2 product, JMX is enabled by default, which allows you to monitor the product using JConsole. 

Go to the  WSO2 Administration Guide for detailed instructions on how to configure JMX for a WSO2 product and how to use JConsole for monitoring a product.

MBeans for WSO2 EI 

When JMX is enabled, WSO2 EI exposes a number of management resources as JMX Management Beans (MBeans) that can be used for managing and monitoring the running server.  When you start JConsole, you can monitor these MBeans from the  MBeans tab. While some of these MBeans (ServerAdmin and DataSource) are common to all WSO2 products, some MBeans are specific to WSO2 EI. 

The common MBeans are explained in detail in the WSO2 Administration Guide. Listed below are the MBeans that are specific to WSO2 EI.

For details on using JMX based mediation flow statistics in your EI server and detailed explanation of the relevant MBeans, see Monitoring JMX Based Statistics

This section summarizes the attributes and operations available for the following WSO2 EI specific MBeans:

Connection MBeans

These MBeans provide connection statistics for the HTTP and HTTPS transports. 

You can view the following Connection MBeans:

  • org.apache.synapse/PassThroughConnections/http-listener
  • org.apache.synapse/PassThroughConnections/http-sender
  • org.apache.synapse/PassThroughConnections/https-listener
  • org.apache.synapse/PassThroughConnections/https-sender

Attributes

Attribute NameDescription
ActiveConnectionsNumber of currently active connections.
ActiveConnectionsPerHostsA map of the number of connections against hosts.
LastXxxConnectionsThe number of connections created during last Xxx time period.
RequestSizesMapA map of the number of requests against their sizes.
ResponseSizesMapA map of the number of responses against their sizes.
LastResetTimeThe time when the connection-statistic recordings were last reset.

Operations

Operation NameDescription
reset()Clear recorded connection statistics and restart recording.

Latency MBeans

This view provides statistics of the latencies from all backend services connected through the HTTP  and HTTPS transports. These statistics are provided as an aggregate value.

You can view the following Latency MBeans:

  • org.apache.synapse/PassthroughLatencyView/nio-http-http
  • org.apache.synapse/PassthroughLatencyView/nio-https-https

Attributes

Attribute NameDescription
AllTimeAvgLatencyAverage latency since the latency recording was last reset.
LastxxxAvgLatencyAverage latency for last xxx time period. For example, LastHourAvgLatency returns the average latency for the last hour.
LastResetTime

The time when the latency-statistic recordings were last reset.

Operations

Operation NameDescription
reset()Clear recorded latency statistics and restart recording.

Threading MBeans

These MBeans are only available in the NHTTP transport and not in the default Pass-Through transport.

You can view the following Threading MBeans:

  • org.apache.synapse/Threading/HttpClientWorker
  • org.apache.synapse/Threading/HttpServerWorker

Attributes

Attribute NameDescription
TotalWorkerCountTotal worker threads related to this server/client.
AvgUnblockedWorkerPercentageTime-averaged unblocked worker thread percentage.
AvgBlockedWorkerPercentageTime-averaged blocked worker thread percentage.
LastXxxBlockedWorkerPercentageBlocked worker thread percentage averaged for last Xxx time period.
DeadLockedWorkersNumber of deadlocked worker threads since last statistics reset.
LastResetTimeThe time the thread statistic recordings were last reset.

Operations

Operation NameDescription
reset()Clear recorded thread statistic and restart recording.

Transport MBeans

For each transport listener and sender enabled in WSO2 EI, there will be an MBean under the org.apache.axis2/Transport domain. For example, when the JMS transport is enabled, the following MBean will be exposed:

  • org.apache.axis2/Transport/jms-sender-n

You can also view the following Transport MBeans:

  • org.apache.synapse/Transport/passthru-http-receiver
  • org.apache.synapse/Transport/passthru-http-sender
  • org.apache.synapse/Transport/passthru-https-receiver
  • org.apache.synapse/Transport/passthru-https-sender

Attributes

Attribute NameDescription
ActiveThreadCountThreads active in this transport listener/sender.
AvgSizeReceivedThe average size of received messages.
AvgSizeSentThe average size of sent messages.
BytesReceivedThe number of bytes received through this transport.
BytesSentThe number of bytes sent through this transport.
FaultsReceivingThe number of faults encountered while receiving.
FaultsSendingThe number of faults encountered while sending.
LastResetTimeThe time when the last transport listener/sender statistic recording was reset.
MaxSizeReceivedMaximum message size of received messages.
MaxSizeSentMaximum message size of sent messages.
MetricsWindowTime difference between current time and last reset time in milliseconds.
MinSizeReceivedMinimum message size of received messages.
MinSizeSentMinimum message size of sent messages.
MessagesReceivedThe total number of messages received through this transport.
MessagesSentThe total number of messages sent through this transport.
QueueSizeThe number of messages currently queued. Messages get queued if all the worker threads in this transport thread pool are busy.
ResponseCodeTableThe number of messages sent against their response codes.
TimeoutsReceivingMessage receiving timeout.
TimeoutsSendingMessage sending timeout.

  Operations

Operation NameDescription
start()Start this transport listener/sender.
stop()Stop this transport listener/sender.
resume()Resume this transport listener/sender which is currently paused.
resetStatistics()Clear recorded transport listener/sender statistics and restart recording.
pause()Pause this transport listener/sender which has been started.
maintenenceShutdown(long gracePeriod)Stop processing new messages, and wait the specified maximum time for in-flight requests to complete before a controlled shutdown for maintenence.

Broker-specific MBeans

You can also view the following MBeans that are specific to the Brokering profile of WSO2 EI:

  • org.wso2.andes/ClusterManagementInformation

    Attribute NameDescription
    ClusteringEnabledIf the clustering mode is enabled in the Brokering profile or not.
    AllClusterNodeAddressesRetrieve the addresses of the members in a cluster
    MyNodeIDRetrieve the ID that is assigned to the node
    StoreHealthRetrieve the health status of the message store
  • org.wso2.andes/MessageStatusInformation

    Operation NameDescription
    dumpMessageStatusInfo()Retrieve the lifecycle status of the messages in the store to a specified Excel sheet.
  • org.wso2.andes/QueueManageInformation
    Attributes

    Attribute NameDescription
    NamesOfAllDurableQueuesRetrieve the names of all durable queues.
    AllQueueCountsRetrieve the number of messages in all the queues of the message store
    AllQueueNamesRetrieve the names of all the queues in the message store
    MessageCountOfQueuesAsCompositeDataRetrieve the number of messages that are in the queues as Composite data

    Operations

    Operation NameDescription
    getMessageCount()Get the number of messages in the store
    restoreSelectedMessagesFromDeadLetterChannel()Restore the messages you select from the dead letter channel
    rerouteSelectedMessagesFromDeadLetterChannel()Reroute the messages you select from the dead letter channel
    deleteMessagesFromDeadLetterQueue()Delete the messages you specify, from the dead letter channel
    getNumberOfMessagesInDLCForQueue()Retrieve the message count in the dead letter channel of a queue
    getMessagesInDLCForQueue()Retrieve the messages in the dead letter channel of a queue
    browseQueue()Retrieve information of a queue by browsing it.
    getMessageMetadataInDeadLetterChannel()Retrieve metadata of messages in a dead letter channel
    rerouteAllMessagesInDeadLetterChannelForQueue()Reroute all the messages in a dead letter channel of a queue
    isQueueExists()Check if a queue exists by a given name
    deleteAllMessagesInQueue()Delete all the messages in a queue with the specified name
    getDLCQueueInformation()Retrieve information of the dead letter channel of a specified queue
    getSubscriptionCount()Retrieve the number of subscriptions of a specified queue
  • org.wso2.andes/Subscription/ManagementInformation

    Operation NameDescription
    getMessageCount()Retrieve the number of messages of a specified subscription
    getSubscriptions()Retrieve all subscriptions
    getFilteredSubscriptions()Retrieve only a set of specified subscriptions
    getTotalSubscriptionCountForSearchResult()Retrieve the total number of subscriptions for a specified search
    getPendingMessageCount()Retrieve the pending number of messages in all subscriptions
    removeSubscription()Remove a specified subscription

Disabling the JMX thread view

Dumping JMX threads is an expensive operation that affects the CPU consumption when many threads are being processed at the same time.

WSO2 EI has enabled thread dumping by default. Therefore, to avoid dumping all the threads here, you can configure the property given below.  

It is recommended not to dump the thread especially when you have enabled WSO2 EI analytics in a production environment.

  1. Open the <EI_HOME>/synapse.properties file.
  2. Add the following property to the file and save the file.

    synapse.jmx.thread.view.enabled=false
com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_links2' is unknown.