Working with Server Statistics


The TIBCO Enterprise Message Service server allows you to track incoming and outgoing message volume, message size, and message statistics for the server overall as well as for each producer, consumer, or route. You can configure the type of statistics collected, the interval for computing averages, and amount of detail for each type.

Statistic tracking can be set in the server’s configuration file, or you can change the configuration dynamically using commands in the administration tool or by creating your own application with the administration APIs.

Statistics can be viewed using the administration tool, or you can create your own application that performs more advanced analysis of statistics using the administration APIs.

This section details how to configure and view statistics using the configuration files and administration tool commands. For more information about the administration APIs, see the description of com.tibco.tibjms.admin in the online documentation.

The TIBCO Enterprise Message Service server tracks the number of incoming or outgoing messages, but only messages sent or received by a producer, consumer, or route are tracked. The server also sends system messages, but these are not included in the number of messages.
However, the server can add a small amount of data to a message for internal use by the server. This overhead is counted in the total message size, and you may notice that some messages have a greater message size than expected.

Overall Server Statistics

The server always collects certain overall server statistics. This includes the rate of inbound and outbound messages (expressed as number of messages per second), message memory usage, disk storage usage, and the number of destinations, connections, and durable subscriptions. Gathering this information consumes virtually no system resources, therefore these statistics are always available. You can view overall server statistics by executing either the show server or show config commands.

The default interval for collecting overall server statistics is 1 second. You may wish to view average system usage statistics over a larger interval. The server_rate_interval configuration parameter controls the collection interval for server statistics. The parameter can be set in the configuration file or dynamically using the set server command. This parameter can only be set to positive integers greater than zero.

Enabling Statistic Gathering

Each producer, consumer, destination, and route can gather overall statistics and statistics for each of its destinations. To enable statistic gathering, you must set the statistics parameter to enabled. This parameter can be specified in the configuration file, and it can be changed dynamically using the set server command.

The statistics parameter allows you to globally enable and disable statistic gathering. Statistics are kept in server memory for the life of each object. If you wish to reset the total statistics for all objects to zero, disable statistic gathering, then re-enable it. Server statistics are also reset when the server shuts down and restarts, or in the event of a fault-tolerant failover.

For each producer, consumer, destination, and route the total number of sent/received messages and total size of messages is maintained. Also, producers and consumers keep these statistics for each destination that they use to send or receive messages.

The rate of incoming/outgoing messages and message size is calculated over an interval. By default, the average is calculated every 3 seconds. You can increase or decrease this value by altering the rate_interval parameter. This parameter can be set in the configuration file or dynamically using the set server command. Setting this parameter to 0 disables the tracking of statistics over an interval—only the total statistics for the destination, route, producer, or consumer are kept.

Gathering total statistics for producers, consumers, destinations, and routes consumes few system resources. Under most circumstances, enabling statistic gathering and average calculations should not affect system performance.

Detailed Statistics

In some situations, the default statistic gathering may not be sufficient. For example, if a topic subscriber subscribes to wildcard topics, the total statistics for all topics that match the wildcard are kept. You may wish to get further detail in this case and track the statistics for each actual topic the subscriber receives.

The following situations may require detailed statistic gathering:

To enable detailed statistics, set the detailed_statistics parameter to the type of statistics you wish to receive. The parameter can have the following values:

You can set the detailed_statistics parameter to NONE or any combination of CONSUMERS, PRODUCERS, or ROUTES. To specify more than one type of detailed statistic gathering, provide a comma-separated list of values. You can set the detailed_statistics parameter in the configuration file or dynamically by using the set server command. For example, the following set server command enables detailed statistic tracking for producers and routes.

set server detailed_statistics = PRODUCERS,ROUTES 

Collecting detailed statistics does consume memory, and can adversely affect performance when gathering a high volume of statistics. There are two parameters that allow you to control resource consumption when collecting detailed statistics. First, you can control the amount of time statistics are kept, and second you can set a maximum amount of memory for detailed statistic gathering. When application programs create many dynamic destinations, we recommend against gathering detailed statistics.

The statistics_cleanup_interval parameter controls how long detailed statistics are kept. This parameter can be set either in the configuration file or dynamically with the set server command. By default, statistics are kept for 15 seconds. For example, if there is a topic subscriber for the topic foo.*, and the subscriber receives a message on topic foo.bar, if no new messages arrive for topic foo.bar within 15 seconds, statistics for topic foo.bar are deleted for that consumer. You can set this parameter to 0 to signify that all detailed statistics are to be kept indefinitely. Of course, statistics for an object only exist as long as the object itself exists. That is, if a message consumer terminates, all detailed statistics for that consumer are deleted from memory.

The max_stat_memory parameter controls the amount of memory used by detailed statistics. This parameter can be set either in the configuration file or dynamically with the set server command. By default, this parameter is set to 0 which signifies that detailed statistics have no memory limit. If no units are specified, the value of this parameter is in bytes. Optionally, you can specify units as KB, MB, or GB. When the specified limit is reached, the server stops collecting new statistics. The server will only resume collecting statistics if the amount of memory used decreases (for example, if the statistics_cleanup_interval is set and old statistics are removed).

Displaying Statistics

When statistic collecting is enabled, you can view statistics for producers, consumers, routes, and destinations using the show stat command in the administration tool.

The show stat command allows you to filter the statistics based on destination name, user name, connection ID, or any combination of criteria. You can optionally specify the total keyword to retrieve only the total statistics (this suppresses the detailed output). You can also optionally specify the "wide" keyword when displaying statistics for destinations or routes. This specifies that inbound and outbound message statistics should be displayed on the same line (the line can be 100 characters or more).

The following illustrates displaying statistics for a route where detailed statistic tracking is enabled.

tcp://server1:7322> show stat route B 
Inbound statistics for route 'B': 
                         Total Count      Rate/Second 
Destination              Msgs   Size      Msgs   Size 
<total>                   189   37.9 Kb     10    2.0 Kb 
Topic: dynamic.0           38    7.6 Kb      2    0.4 Kb 
Topic: dynamic.1           38    7.6 Kb      2    0.4 Kb 
Topic: dynamic.2           38    7.6 Kb      2    0.4 Kb 
Topic: dynamic.3           38    7.6 Kb      2    0.4 Kb 
Topic: dynamic.4           37    7.4 Kb      2    0.4 Kb 
Outbound statistics for route 'B': 
                         Total Count      Rate/Second 
Destination              Msgs   Size      Msgs   Size 
<total>                  9538    1.9 MB     10    2.1 Kb 
Topic: dynamic.0         1909  394.9 Kb      2    0.4 Kb 
Topic: dynamic.1         1908  394.7 Kb      2    0.4 Kb 
Topic: dynamic.2         1907  394.5 Kb      2    0.4 Kb 
Topic: dynamic.3         1907  394.5 Kb      2    0.4 Kb 
Topic: dynamic.4         1907  394.5 Kb      2    0.5 Kb 

See show stat for more information and detailed syntax of the show stat command.


TIBCO Enterprise Message Service™ User’s Guide
Software Release 4.3, February 2006
Copyright © TIBCO Software Inc. All rights reserved
www.tibco.com