Context

Calypso use a JMS server to spread events to different modules. The JMS server is called Event Server in Calypso documentation.

Through the different Calypso version from V14, the Event Server implementation has changed :

  • V14-V16 : HornetQ or ActiveMQ-Artemis implementation
  • V17+ : ActiveMQ

The consequence is that metrics gathered are not exactly the same.

The main goal is to count number of undelivered messages, and monitor the JMS server health.

Metrics

The Semantics column gives how each metric adds up over time, see Metric semantics.

All events metrics are store with the prefix Hpa|Messaging. Under this level we have different branches :

HornetQ/Artemis based implementation (V14-V16)

The next level is a list of queues with :

  • The queue name is <username>+<hash of the event filter>
    • (full filter is available in the log file of the agent)
  • For each queue, the following metrics are available :
Metrics Comment Semantics
MessageCount Number of messages in the queue UNKNOWN
ScheduledCount Number of scheduled messages in the queue UNKNOWN
DeliveringCount Number of messages being delivered UNKNOWN
TotalCount Total number of messages ever sent to the queue UNKNOWN

An additional metric is also recorded, the JMS pool size availability for the JMS threads. It has the prefix : ̀Hpa|Pool|JBossMessaging-.
It is displayed in the Resources tab of each JVM where it is available.

Metrics Comment Semantics
available Number of threads available in the pool GAUGE
queueSize Size of queue for the awaiting messages GAUGE

Example :

Hpa|Messaging|admin-690182985:DeliveringCount
Hpa|Pool|JBossMessaging-ActiveMQThreadPoolExecutor:available
Hpa|Pool|JBossMessaging-ActiveMQThreadPoolExecutor:queueSize

ActiveMQ based implementation (V17+)

For ActiveMQ, the next levels are :

  • Brokers|Usage|<broker name>_jobScheduler
  • Brokers|Usage|<broker name>_memory
  • Brokers|Usage|<broker name>_store
  • Brokers|Usage|<broker name>_temp
  • <broker name>|<clientHost>|<userName>|<topic name>|<event filter>

The following metric is available per broker resources type :

Metrics Comment Semantics
percentUsage Used percentage of the given resources. This metric is given directly by ActiveMQ. GAUGE

The following metrics are available per topic, also read from ActiveMQ.
More details on ActiveMQ documentation

Metrics Comment Semantics
MessageCount Size of queue for messages not delivered (the dispatched queue size) on the selected period GAUGE
DequeueCount number of messages removed from the queue (ack’d by consumer) on the selected period DELTA
EnqueueCount number of messages sent to the queue on the selected period DELTA

Examples :

Hpa|Messaging|Brokers|Usage|default_memory_topic_//topic/calypso_memory:percentUsage
Hpa|Messaging|Brokers|Usage|default_temp_topic_//topic/calypso_temp:percentUsage
Hpa|Messaging|Brokers|Usage|default_jobScheduler_topic_//topic/calypso_jobScheduler:percentUsage
Hpa|Messaging|Brokers|Usage|default_store_topic_//topic/calypso_store:percentUsage
Hpa|Messaging|EventServer|hex-perf1|admin|topic/calypso|EventType in ('PSEventDist','PSEventDispatcherStart'):MessageCount
Hpa|Messaging|EventServer|hex-perf1|admin|topic/calypso|EventType in ('PSEventTrade','PSEventProcessTrade','PSEventTime','PSEventEngineRequest','PSEventDomainChange','PSEventManualLiquidatedPosition','PSEventQuote','PSEventQuoteRemoved','PSEventMarketDataChange','PSEventMDataConfigChange','PSEventCreditRating','PSEventProductCreditRating'):DequeueCount