# Load Statistic Plugin Readme

## Overview

The statistic plugin prints usage information of the database connection pool, thread pool used for processing incoming traffic and the NIO networking layer.

## Installation

Copy the file, "statistic.jar" into the plugins directory of your Openfire installation. The plugin will then be automatically deployed.

## Configuration

At the moment there is no new page to configure the plugin. However, the plugin can be configured by setting a few system properties. Read the "Using the Plugin" section to learn which system properties to use.

## Using the Plugin

The plugin will collect information every few seconds and will print the collected information to a log file every minute. The log file is a comma delimited file that can be easily processed in Excel. You can configure the plugin by setting the system properties shown in the table below.

System Property | Description
--- | ---
statistic.frequency | Number of milliseconds to wait before collecting information. Default value is 5000 (5 seconds)
statistic.filename | Name of the file to use to store the statistics. The file will always be stored in the logs folder. Default value is "stats.txt".
statistic.connectionmanager | True if statistics will be collected for Connection Managers traffic or false when statistics will be collected for clients directly connected to the server. Default value is "false".

The format of the log file is the following:

1. Timestamp - Timestamp when the data was collected
2. DB min - Minimum number of connections the pool may have
3. DB max - Maximum number of connectiosn the pool may have
4. DB current - Current number of connections the pool has
5. DB used - Current number of connections being used
6. Core Threads - Number of threads for processing incoming traffic
7. Active Threads - Number of threads that are actually processing incoming traffic
8. Queue Tasks - Number of stanzas stored in the queue when all threads where busy
9. Completed Tasks - Total number of stanzas that were processed
10. Sessions - Current number of client sessions in the server
11. NIO Read - Total number of stanzas that were read
12. NIO Written - Total number of stanzas that were sent
13. Queued NIO events - Current number of stanzas that are queued. Stanzas are queued when the same client sends many stanzas and the server is still processing a previous stanza. Queued stanzas are not yet considered read.
14. Queues NIO writes - Current number of stanzas pending to be sent

When processing the file in Excel you may want to add the following columns:

- NIO Reads Delta - Difference between a NIO Read row and its previous row
- NIO Writtens Delta - Difference between a NIO Written row and its previous row
- Sessions delta - Difference between a Sessions row and its previous row

Excell charts are a great way for understanding the collected statistics. In particular, we found charts of the following columns useful.

- NIO Read and NIO Written
- NIO Reads Delta and NIO Writtens Delta
- Sessions
- Sessions delta
- Completed Tasks
- DB used
- Active Threads