TibcoEMS Monitoring Extension




An AppDynamics Machine Agent add-on to report metrics from a Tibco EMS Server and its queues.


Tibco EMS is messaging middleware that provides persistent queues as well as a publish/subscribe mechanism. It can be used as a JMS provider, or it can be used directly via native API’s.


This extension requires the Java Machine Agent.



Before starting this monitor, make sure your EMS server is configured to report statistics. You can do this by editing the file tibemsd.conf in your TIBCO_HOME, or by using the tibemsadmin command line utility.


Configuring statistics by editing tibemsd.conf

  1. Add the following line to tibemsd.conf:

        statistics = enabled
  2. Restart Tibco EMS.

Configuring statistics using the command line

Use the tibemsadmin utility to change the server configuration.

    root# tibemsadmin -server localhost:7222

    TIBCO Enterprise Message Service Administration Tool.
    Copyright 2003-2013 by TIBCO Software Inc.
    All rights reserved.

    Version 8.0.0 V9 6/7/2013

    Login name (admin):
    Connected to: tcp://localhost:7222
    Type 'help' for commands help, 'exit' to exit:
    tcp://localhost:7222> set server statistics=enabled
    Server parameters have been changed
    tcp://localhost:7222> quit


  1. Download TibcoEMSMonitor.zip from the Community.
  2. Copy TibcoEMSMonitor.zip into the directory where you installed the machine agent, under $AGENT_HOME/monitors.
  3. Unzip the file. This will create a new directory called TibcoEMSMonitor.
  4. In $AGENT_HOME/monitors/TibcoEMSMonitor, edit the file monitor.xml and configure the extension for your Tibco EMS installation.
  5. Restart the machine agent.


Configuration for this monitor is in the monitor.xml file in the monitor directory. All of the configurable options are in the <task-arguments> section.


Name or IP address of the Tibco EMS server. Required.
TCP port number where the Tibco server is listening. The default value is 7222. Required.
Administrative user ID for the Tibco admin interface. The default value is “admin”. Required.
Password for the administrative user ID. The default value is an empty password. Required.
Name of the tier in AppDynamics for which the monitor should register its metrics. If not specified, the metrics will be registered on all tiers. Optional.
An additional folder to create under the “Custom Metrics” folder. Optional.
If set to true, the monitor will report metrics on temporary queues (defined as any queue whose name starts with $TMP$.). NOTE: Enabling this option can potentially cause the agent to overflow its metric limit.
If set to true, the monitor will report metrics on system queues (defined as any queue whose name starts with $sys.).


Metrics Provided


Global Instance Metrics

Metric NameDescription
DiskReadRateRate at which messages are being read from disk, in bytes per second
DiskWriteRateRate at which messages are being written to disk, in bytes per second
ConnectionCountCurrent number of connections
MaxConnectionsMaximum number of connections allowed by the server
ProducerCountTotal number of producers
ConsumerCountTotal number of consumers
PendingMessageCountTotal number of pending messages
PendingMessageSizeTotal size of pending messages in bytes
InboundMessageCountNumber of inbound messages
InboundMessageRateNumber of inbound messages per second
InboundBytesRateVolume of inbound bytes per second
OutboundMessageCountNumber of outbound messages
OutboundMessageRateNumber of outbound messages per second
OutboundBytesRateVolume of outbound bytes per second


Per-Queue Metrics

Metric NameDescription
ConsumerCountNumber of consumers for this destination
ReceiverCountNumber of active receivers on this queue
DeliveredMessageCountTotal number of messages that have been delivered to consumer applications but have not yet been acknowledged
PendingMessageCountTotal number of pending messages for this destination
InTransitCountTotal number of messages that have been delivered to the queue owner but have not yet been acknowledged
FlowControlMaxBytesVolume of pending messages (in bytes) at which flow control is enabled for this destination
PendingMessageSizeTotal size for all pending messages for this destination
MaxMsgsMaximum number of messages that the server will store for pending messages bound for this destination
MaxBytesMaximum number of message bytes that the server will store for pending messages bound for this destination
InboundByteRateBytes received per second
InboundMessageRateMessages received per second
InboundByteCountTotal number of bytes received
InboundMessageCountTotal number of messages received
OutboundByteRateBytes sent per second
OutboundMessageRateMessages sent per second
OutboundByteCountTotal number of bytes sent
OutboundMessageCountTotal number of messages sent



This monitor can potentially register hundred of new metrics, depending on how many queues are in EMS. By default, the Machine Agent will only report 200 metrics to the controller, so you may need to increase that limit when installing this monitor. To increase the metric limit, you must add a parameter when starting the Machine Agent, like this:

java -Dappdynamics.agent.maxMetrics=1000 -jar machineagent.jar

Please note that the maximum value you can provide is 5000.



For any questions or feature requests, please contact the AppDynamics Center of Excellence.


Version: 2.3.7
Controller Compatibility: 3.6 or later
Last Updated: 20-Aug-2015
Author: Todd Radel

Release Notes

Version 2.3.7

  • Added missing commons-lang.jar to classpath.

Version 2.3.6

  • Changed logging level in shouldMonitorDestination() from INFO to DEBUG.

Version 2.3.5

  • Adds new SSL configuration properties: sslIdentityFile, sslIdentityPassword, sslTrustedCerts, sslIssuerCerts, sslDebug, sslVendor, sslVerifyHost, sslVerifyHostName. Please check the monitor.xml bundled with this release for details.

Version 2.3.4

  • Adding support for SSL and topics.

Version 2.3.2

  • Added new derived metrics: InboundMessagesPerMinute, OutboundMessagesPerMinute, InboundBytesPerMinute, and OutboundBytesPerMinute.
  • General cleanup of code.

Version 2.3.1

  • Added queuesToExclude option to configuration.

Version 2.3

  • Added protocol (tcp/ssl) option to configuration.

Version 2.2.1

  • Recompiled for target JDK 1.5.

Version 2.2.0

  • Cleaned up directory structure.
  • Rebuilt Ant scripts.