<% set_title(product_name, "Statistics List")%>

<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

<a id="statistics_list"></a>


This section describes the primary statistics gathered by <%=vars.product_name%> when statistics are enabled.

All statistics gathering requires the `gemfire.properties` `statistic-sampling-enabled` in `gemfire.properties` file to be true. Statistics that use time require the `gemfire.properties` `enable-time-statistics` to be true.

Performance statistics are collected for each Java application or cache server that connects to a cluster.

-   **[Cache Performance (CachePerfStats)](#section_DEF8D3644D3246AB8F06FE09A37DC5C8)**

-   **[Cache Server (CacheServerStats)](#section_EF5C2C59BFC74FFB8607F9571AB9A471)**

-   **[Client-Side Notifications (CacheClientUpdaterStats)](#section_B08C0783BBF9489E8BB48B4AEC597C62)**

-   **[Client-to-Server Messaging Performance (ClientStats)](#section_04B7D7387E584712B7710B5ED1E876BB)**

-   **[Client Connection Pool (PoolStats)](#section_6C247F61DB834C079A16BE92789D4692)**

-   **[Continuous Querying (CqQueryStats)](#section_66C0E7748501480B85209D57D24256D5)**

-   **[Delta Propagation (DeltaPropagationStatistics)](#section_D4ABED3FF94245C0BEE0F6FC9481E867)**

-   **[Disk Space Usage (DiskDirStatistics)](#section_6C2BECC63A83456190B029DEDB8F4BE3)**

-   **[Disk Store Statistics (DiskStoreStatistics)](#section_3456190B026C2BECC63A89DEDB8F4BE3)**

-   **[Disk Usage and Performance (DiskRegionStatistics)](#section_983BFC6D53C74829A04A91C39E06315F)**

-   **[Distributed System Messaging (DistributionStats)](#section_ACB4161F10D64BC0B15871D003FF6FDF)**

-   **[Distributed Lock Services (DLockStats)](#section_78D346A580724E1EA645E31626EECE40)**

-   **[Function Execution (FunctionServiceStatistics)](#section_5E211DDB0E8640689AD0A4659511E17A)**

-   **[Gateway Queue (GatewaySenderStatistics)](#section_C4199A541B1F4B82B6178C416C0FAE4B)**

-   **[Indexes (IndexStats)](#section_86A61860024B480592DAC67FFB882538)**

-   **[JVM Performance](#section_607C3867602E410CAE5FAB26A7FF1CB9)**

-   **[Locator (LocatorStats)](#section_C48B654F973E4B44AD825D459C23A6CD)**

-   **[Lucene Indexes (LuceneIndexStats)](#LuceneStats)**

-   **[Off-Heap (OffHeapMemoryStats)](#topic_ohc_tjk_w5)**

-   **[Operating System Statistics - Linux](#section_923B28F01BC3416786D3AFBD87F22A5E)**

-   **[Partitioned Regions (PartitionedRegion&lt;partitioned\_region\_name&gt;Statistics)](#section_35AC170770C944C3A336D9AEC2D2F7C5)**

-   **[Region Entry Eviction – Count-Based (LRUStatistics)](#section_374FBD92A3B74F6FA08AA23047929B4F)**

-   **[Region Entry Eviction - Heap-based eviction (HeapLRUStatistics)](#section_3B74F6FA08A374FBD92AA23047929B4F)**

-   **[Region Entry Eviction – Size-based (MemLRUStatistics)](#section_3D2AA2BCE5B6485699A7B6ADD1C49FF7)**

-   **[Server Notifications for All Clients (CacheClientNotifierStatistics)](#section_5362EF9AECBC48D69475697109ABEDFA)**

-   **[Server Notifications for Single Client (CacheClientProxyStatistics)](#section_E03865F509E543D9B8F9462B3DA6255E)**

-   **[Server-to-Client Messaging Performance (ClientSubscriptionStats)](#section_3AB1C0AA55014163A2BBF68E13D25E3A)**

-   **[Statistics Collection (StatSampler)](#section_55F3AF6413474317902845EE4996CC21)**

## <a id="section_DEF8D3644D3246AB8F06FE09A37DC5C8" class="no-quick-link"></a>Cache Performance (CachePerfStats)

Statistics for the <%=vars.product_name%> cache. These can be used to determine the type and number of cache operations being performed and how much time they consume.

Regarding <%=vars.product_name%> cache transactions, transaction-related statistics are compiled and stored as properties in the CachePerfStats statistic resource. Because the transaction’s data scope is the cache, these statistics are collected on a per-cache basis.

The primary statistics are:

| Statistic                        | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `cacheListenerCallsCompleted`    | Total number of times a cache listener call has completed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `cacheListenerCallsInProgress`   | Current number of threads doing a cache listener call.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `cacheListenerCallTime`          | Total time spent doing cache listener calls.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `cacheWriterCallsCompleted`      | Total number of times a cache writer call has completed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `cacheWriterCallsInProgress`     | Current number of threads doing a cache writer call.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `cacheWriterCallTime`            | Total time spent doing cache writer calls.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `compressions`                   | Total number of compression operations.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `compressTime`                   | Total time, in nanoseconds, spent compressing data.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `conflatedEvents`                | The number of events that were conflated, and not delivered to event listeners or gateway senders on this member. Events are typically conflated because a later event was already applied to the cache, or because a concurrent event was ignored to ensure cache consistency. Note that some members may discard an update while other members apply the update, depending on the order in which each member receives the update. For this reason, the `conflatedEvents` statistic will differ for each <%=vars.product_name%> member. See [Consistency for Region Updates](../developing/distributed_regions/region_entry_versions.html#topic_CF2798D3E12647F182C2CEC4A46E2045). |
| `creates`                        | The total number of times an entry is added to this cache.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `decompressions`                 | Total number of decompression operations.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `decompressTime`                 | Total time, in nanoseconds, spent decompressing data.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `destroys`                       | The total number of times a cache object entry has been destroyed in this cache.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `diskTasksWaiting`                       | The current number of disk tasks, such as oplog compactions and asynchronous recoveries, that are waiting for a thread to run the operation.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `eventQueueSize`                 | The number of cache events waiting to be processed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `eventQueueThrottleCount`        | The total number of times a thread was delayed in adding an event to the event queue.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `eventQueueThrottleTime`         | The total amount of time, in nanoseconds, spent delayed by the event queue throttle.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `eventThreads`                   | The number of threads currently processing events.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `getInitialImageKeysReceived`    | Total number of keys received while doing getInitialImage operations.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `getInitialImagesCompleted`      | Total number of times getInitialImages initiated by this cache have completed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `getInitialImagesInProgressDesc` | Current number of getInitialImage operations currently in progress.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `getInitialImageTime`            | Total time spent doing getInitialImages for region creation.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `getsDesc`                       | The total number of times a successful get has been done on this cache.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `getTime`                        | Total time spent doing get operations from this cache (including netsearch and netload).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `invalidates`                    | The total number of times an existing cache object entry value in this cache has been invalidated.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `loadsCompleted`                 | Total number of times a load on this cache has completed as a result of either a local get() or a remote netload.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `loadsInProgress`                | Current number of threads in this cache doing a cache load.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `loadTime`                       | Total time spent invoking loaders on this cache.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `misses`                         | Total number of times a get on the cache did not find a value already in local memory. The number of hits (that is, gets that did not miss) can be calculated by subtracting misses from gets.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `netloadsCompleted`              | Total number of times a network load initiated on this cache has completed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `netloadsInProgress`             | Current number of threads doing a network load initiated by a get() in this cache.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `netloadTime`                    | Total time spent doing network loads on this cache.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `netsearchesCompleted`           | Total number of times network searches initiated by this cache have completed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `netsearchesInProgress`          | Current number of threads doing a network search initiated by a get() in this cache.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `netsearchTimeDesc`              | Total time spent doing network searches for cache values.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `nonReplicatedTombstonesSize`    | The approximate number of bytes that are currently consumed by tombstones in non-replicated regions. See [Consistency for Region Updates](../developing/distributed_regions/region_entry_versions.html#topic_CF2798D3E12647F182C2CEC4A46E2045).                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `partitionedRegions`             | The current number of partitioned regions in the cache.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `postCompressedBytes`            | Total number of bytes after compressing.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `preCompressedBytes`             | Total number of bytes before compressing.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `putAlls`                        | The total number of times a map is added or replaced in this cache as a result of a local operation. Note, this only counts putAlls done explicitly on this cache; it does not count updates pushed from other caches.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `putallTime`                     | Total time spent replacing a map in this cache as a result of a local operation. This includes synchronizing on the map, invoking cache callbacks, sending messages to other caches and waiting for responses (if required).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `puts`                           | The total number of times an entry is added or replaced in this cache as a result of a local operation (put(), create(), or get() which results in load, netsearch, or netloading a value). Note, this only counts puts done explicitly on this cache; it does not count updates pushed from other caches.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `putTime`                        | Total time spent adding or replacing an entry in this cache as a result of a local operation. This includes synchronizing on the map, invoking cache callbacks, sending messages to other caches, and waiting for responses (if required).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `queryExecutions`                | Total number of times some query has been executed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `queryExecutionTime`             | Total time spent executing queries.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `regions`                        | The current number of regions in the cache.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `replicatedTombstonesSize`       | The approximate number of bytes that are currently consumed by tombstones in replicated or partitioned regions. See [Consistency for Region Updates](../developing/distributed_regions/region_entry_versions.html#topic_CF2798D3E12647F182C2CEC4A46E2045).                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `tombstoneCount`                 | The total number of tombstone entries created for performing concurrency checks. See [Consistency for Region Updates](../developing/distributed_regions/region_entry_versions.html#topic_CF2798D3E12647F182C2CEC4A46E2045).                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `tombstoneGCCount`               | The total number of tombstone garbage collection cycles that a member has performed. See [Consistency for Region Updates](../developing/distributed_regions/region_entry_versions.html#topic_CF2798D3E12647F182C2CEC4A46E2045).                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `txCommitChanges`                | Total number of changes made by committed transactions.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `txCommits`                      | Total number of times a transaction commit has succeeded.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `txCommitTime`                   | The total amount of time, in nanoseconds, spent doing successful transaction commits.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `txConflictCheckTime`            | The total amount of time, in nanoseconds, spent doing conflict checks during transaction commit.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `txFailedLifeTime`               | The total amount of time, in nanoseconds, spent in a transaction before a failed commit. The time measured starts at transaction begin and ends when commit is called.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `txFailureChanges`               | Total number of changes lost by failed transactions.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `txFailures`                     | Total number of times a transaction commit has failed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `txFailureTime`                  | The total amount of time, in nanoseconds, spent doing failed transaction commits.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `txRollbackChanges`              | Total number of changes lost by explicit transaction rollbacks.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `txRollbackLifeTime`             | The total amount of time, in nanoseconds, spent in a transaction before an explicit rollback. The time measured starts at transaction begin and ends when rollback is called.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `txRollbacks`                    | Total number of times a transaction has been explicitly rolled back.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `txRollbackTime`                 | The total amount of time, in nanoseconds, spent doing explicit transaction rollbacks.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `txSuccessLifeTime`              | The total amount of time, in nanoseconds, spent in a transaction before a successful commit. The time measured starts at transaction begin and ends when commit is called.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `updates`                        | The total number of updates originating remotely that have been applied to this cache.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `updateTime`                     | Total time spent performing an update.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |

## <a id="section_EF5C2C59BFC74FFB8607F9571AB9A471" class="no-quick-link"></a>Cache Server (CacheServerStats)

Statistics used for cache servers and for gateway receivers are recorded in CacheServerStats in a cache server. The primary statistics are:

| Statistic                                 | Description                                                                                                                                    |
|-------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|
| `abandonedReadRequests`                   | Number of read operations (requests) abandoned by clients.                                                                                     |
| `abandonedWriteRequests`                  | Number of write operations (requests) abandoned by clients.                                                                                    |
| `acceptsInProgress`                       | Current number of server accepts that are attempting to do the initial handshake with the client.                                              |
| `acceptThreadStarts`                      | Total number of threads created (starts) to deal with an accepted socket. Note, this is not the current number of threads.                     |
| `batchSize`                               | The size (in bytes) of the batches received.                                                                                                   |
| `clearRegionRequests`                     | Number of cache client operations clearRegion requests.                                                                                        |
| `clearRegionResponses`                    | Number of clearRegion responses written to the cache client.                                                                                   |
| `clientNotificationRequests`              | Number of cache client operations notification requests.                                                                                       |
| `clientReadyRequests`                     | Number of cache client ready requests.                                                                                                         |
| `clientReadyResponses`                    | Number of client ready responses written to the cache client.                                                                                  |
| `closeConnectionRequests`                 | Number of cache client close connection operations requests.                                                                                   |
| `connectionLoad`                          | The load from client to server connections as reported by the load probe installed in this server.                                             |
| `connectionsTimedOut`                     | Total number of connections that have been timed out by the server because of client inactivity.                                               |
| `connectionThreads`                       | Current number of threads dealing with a client connection.                                                                                    |
| `connectionThreadStarts`                  | Total number of threads created (starts) to deal with a client connection. Note, this is not the current number of threads.                    |
| `containsKeyRequests`                     | Number of cache client operations containsKey requests.                                                                                        |
| `containsKeyResponses`                    | Number of containsKey responses written to the cache client.                                                                                   |
| `currentClientConnections`                | Number of sockets accepted.                                                                                                                    |
| `currentClients`                          | Number of client virtual machines (clients) connected.                                                                                         |
| `destroyRegionRequests`                   | Number of cache client operations destroyRegion requests.                                                                                      |
| `destroyRegionResponses`                  | Number of destroyRegion responses written to the cache client.                                                                                 |
| `destroyRequests`                         | Number of cache client operations destroy requests.                                                                                            |
| `destroyResponses`                        | Number of destroy responses written to the cache client.                                                                                       |
| `failedConnectionAttempts`                | Number of failed connection attempts.                                                                                                          |
| `getRequests`                             | Number of cache client operations get requests.                                                                                                |
| `getResponses`                            | Number of getResponses written to the cache client.                                                                                            |
| `loadPerConnection`                       | The estimate of how much load is added for each new connection as reported by the load probe installed in this server.                         |
| `loadPerQueue`                            | The estimate of how much load would be added for each new subscription connection as reported by the load probe installed in this server.      |
| `messageBytesBeingReceived`               | Current number of bytes consumed by messages being received or processed.                                                                      |
| `messagesBeingReceived`                   | Current number of messages being received off the network or being processed after reception.                                                  |
| `outOfOrderGatewayBatchIds`               | Number of Out of Order batch IDs (batches).                                                                                                    |
| `processBatchRequests`                    | Number of cache client operations processBatch requests.                                                                                       |
| `processBatchResponses`                   | Number of processBatch responses written to the cache client.                                                                                  |
| `processBatchTime`                        | Total time, in nanoseconds, spent in processing a cache client processBatch request.                                                           |
| `processClearRegionTime`                  | Total time, in nanoseconds, spent in processing a cache client clearRegion request, including the time to clear the region from the cache.     |
| `processClientNotificationTime`           | Total time, in nanoseconds, spent in processing a cache client notification request.                                                           |
| `processClientReadyTime`                  | Total time, in nanoseconds, spent in processing a cache client ready request, including the time to destroy an object from the cache.          |
| `processCloseConnectionTime`              | Total time, in nanoseconds, spent in processing a cache client close connection request.                                                       |
| `processContainsKeyTime`                  | Total time spent, in nanoseconds, processing a containsKey request.                                                                            |
| `processDestroyRegionTime`                | Total time, in nanoseconds, spent in processing a cache client destroyRegion request, including the time to destroy the region from the cache. |
| `processDestroyTime`                      | Total time, in nanoseconds, spent in processing a cache client destroy request, including the time to destroy an object from the cache.        |
| `processGetTime`                          | Total time, in nanoseconds, spent in processing a cache client get request, including the time to get an object from the cache.                |
| `processPutAllTime`                       | Total time, in nanoseconds, spent in processing a cache client putAll request, including the time to put all objects into the cache.           |
| `processPutTime`                          | Total time, in nanoseconds, spent in processing a cache client put request, including the time to put an object into the cache.                |
| `processQueryTime`                        | Total time, in nanoseconds, spent in processing a cache client query request, including the time to destroy an object from the cache.          |
| `processUpdateClientNotificationTime`     | Total time, in nanoseconds, spent in processing a client notification update request.                                                          |
| `putAllRequests`                          | Number of cache client operations putAll requests.                                                                                             |
| `putAllResponses`                         | Number of putAllResponses written to the cache client.                                                                                         |
| `putRequests`                             | Number of cache client operations put requests.                                                                                                |
| `putResponses`                            | Number of putResponses written to the cache client.                                                                                            |
| `queryRequests`                           | Number of cache client operations query requests.                                                                                              |
| `queryResponses`                          | Number of query responses written to the cache client.                                                                                         |
| `queueLoad`                               | The load from subscription queues as reported by the load probe installed in this server                                                       |
| `readClearRegionRequestTime`              | Total time, in nanoseconds, spent in reading clearRegion requests.                                                                             |
| `readClientNotificationRequestTime`       | Total time, in nanoseconds, spent in reading client notification requests.                                                                     |
| `readClientReadyRequestTime`              | Total time, in nanoseconds, spent in reading cache client ready requests.                                                                      |
| `readCloseConnectionRequestTime`          | Total time, in nanoseconds, spent in reading close connection requests.                                                                        |
| `readContainsKeyRequestTime`              | Total time, in nanoseconds, spent reading containsKey requests.                                                                                |
| `readDestroyRegionRequestTime`            | Total time, in nanoseconds, spent in reading destroyRegion requests.                                                                           |
| `readDestroyRequestTime`                  | Total time, in nanoseconds, spent in reading destroy requests.                                                                                 |
| `readGetRequestTime`                      | Total time, in nanoseconds, spent in reading get requests.                                                                                     |
| `readProcessBatchRequestTime`             | Total time, in nanoseconds, spent in reading processBatch requests.                                                                            |
| `readPutAllRequestTime`                   | Total time, in nanoseconds, spent in reading putAll requests.                                                                                  |
| `readPutRequestTime`                      | Total time, in nanoseconds, spent in reading put requests.                                                                                     |
| `readQueryRequestTime`                    | Total time, in nanoseconds, spent in reading query requests.                                                                                   |
| `readUpdateClientNotificationRequestTime` | Total time, in nanoseconds, spent in reading client notification update requests.                                                              |
| `receivedBytes`                           | Total number of bytes received from clients.                                                                                                   |
| `sentBytes`                               | Total number of bytes sent to clients.                                                                                                         |
| `threadQueueSize`                         | Current number of connections waiting for a thread to start processing their message.                                                          |
| `updateClientNotificationRequests`        | Number of cache client notification update requests.                                                                                           |
| `writeClearRegionResponseTime`            | Total time, in nanoseconds, spent in writing clearRegion responses.                                                                            |
| `writeClientReadyResponseTime`            | Total time, in nanoseconds, spent in writing client ready responses.                                                                           |
| `writeContainsKeyResponseTime`            | Total time, in nanoseconds, spent writing containsKey responses.                                                                               |
| `writeDestroyRegionResponseTime`          | Total time, in nanoseconds, spent in writing destroyRegion responses.                                                                          |
| `writeDestroyResponseTime`                | Total time, in nanoseconds, spent in writing destroy responses.                                                                                |
| `writeGetResponseTime`                    | Total time, in nanoseconds, spent in writing get responses.                                                                                    |
| `writeProcessBatchResponseTime`           | Total time, in nanoseconds, spent in writing processBatch responses.                                                                           |
| `writePutAllResponseTime`                 | Total time, in nanoseconds, spent in writing putAll responses.                                                                                 |
| `writePutResponseTime`                    | Total time, in nanoseconds, spent in writing put responses.                                                                                    |
| `writeQueryResponseTime`                  | Total time, in nanoseconds, spent in writing query responses.                                                                                  |

## <a id="section_B08C0783BBF9489E8BB48B4AEC597C62" class="no-quick-link"></a>Client-Side Notifications (CacheClientUpdaterStats)

Statistics in a client that pertain to server-to-client data pushed from the server over a queue to the client (they are the client side of the server’s `CacheClientNotifierStatistics`) :

| Statistic                   | Description                                                                                  |
|-----------------------------|----------------------------------------------------------------------------------------------|
| `receivedBytes`             | Total number of bytes received from the server.                                              |
| `messagesBeingReceived`     | Current number of message being received off the network or being processed after reception. |
| `messageBytesBeingReceived` | Current number of bytes consumed by messages being received or processed.                    |

## <a id="section_04B7D7387E584712B7710B5ED1E876BB" class="no-quick-link"></a>Client-to-Server Messaging Performance (ClientStats & ClientSendStats)

These statistics are in a client and they describe all the messages sent from the client to a specific server. The primary statistics of ClientStats are:

| Statistic                              | Description                                                                                   |
|----------------------------------------|-----------------------------------------------------------------------------------------------|
| `clearFailures`                        | Total number of clear attempts that have failed.                                              |
| `clears`                               | Total number of clears completed successfully.                                                |
| `clearsInProgress`                     | Current number of clears being executed.                                                      |
| `clearTime`                            | Total amount of time, in nanoseconds, spent doing clears.                                     |
| `clearTimeouts`                        | Total number of clear attempts that have timed out.                                           |
| `closeConFailures`                     | Total number of closeCon attempts that have failed.                                           |
| `closeCons`                            | Total number of closeCons that have completed successfully.                                   |
| `closeConsInProgress`                  | Current number of closeCons being executed.                                                   |
| `closeConTime`                         | Total amount of time, in nanoseconds, spent doing closeCons.                                  |
| `closeConTimeouts`                     | Total number of closeCon attempts that have timed out.                                        |
| `connections`                          | Current number of connections.                                                                |
| `connects`                             | Total number of times a connection has been created.                                          |
| `containsKeyFailures`                  | Total number of containsKey attempts that have failed.                                        |
| `containsKeys`                         | Total number of containsKeys that completed successfully.                                     |
| `containsKeysInProgress`               | Current number of containsKeys being executed.                                                |
| `containsKeyTime`                      | Total amount of time, in nanoseconds, spent doing containsKeys.                               |
| `containsKeyTimeouts`                  | Total number of containsKey attempts that have timed out.                                     |
| `destroyFailures`                      | Total number of destroy attempts that have failed.                                            |
| `destroyRegionFailures`                | Total number of destroyRegion attempts that have failed.                                      |
| `destroyRegions`                       | Total number of destroyRegions that have completed successfully.                              |
| `destroyRegionsInProgress`             | Current number of destroyRegions being executed.                                              |
| `destroyRegionTime`                    | Total amount of time, in nanoseconds, spent doing destroyRegions.                             |
| `destroyRegionTimeouts`                | Total number of destroyRegion attempts that have timed out.                                   |
| `destroys`                             | Total number of destroys that have completed successfully.                                    |
| `destroysInProgress`                   | Current number of destroys being executed.                                                    |
| `destroyTime`                          | Total amount of time, in nanoseconds, spent doing destroys.                                   |
| `destroyTimeouts`                      | Total number of destroy attempts that have timed out.                                         |
| `disconnects`                          | Total number of times a connection has been destroyed.                                        |
| `gatewayBatchFailures`                 | Total number of gatewayBatch attempts that have failed.                                       |
| `gatewayBatchs`                        | Total number of gatewayBatchs completed successfully.                                         |
| `gatewayBatchsInProgress`              | Current number of gatewayBatchs being executed.                                               |
| `gatewayBatchTime`                     | Total amount of time, in nanoseconds, spent doing gatewayBatchs.                              |
| `gatewayBatchTimeouts`                 | Total number of gatewayBatch attempts that have timed out.                                    |
| `getAllFailures`                       | Total number of getAll attempts that have failed.                                             |
| `getAlls`                              | Total number of getAlls that have completed successfully.                                     |
| `getAllsInProgress`                    | Current number of getAlls being executed.                                                     |
| `getAllTime`                           | Total amount of time, in nanoseconds, spent doing getAlls.                                    |
| `getAllTimeouts`                       | Total number of getAll attempts that have timed out.                                          |
| `getFailures`                          | Total number of get attempts that have failed.                                                |
| `gets`                                 | Total number of gets that have completed successfully.                                        |
| `getsInProgress`                       | Current number of gets being executed.                                                        |
| `getTime`                              | Total amount of time, in nanoseconds, spent doing gets.                                       |
| `getTimeouts`                          | Total number of get attempts that have timed out.                                             |
| `keySetFailures`                       | Total number of keySet attempts that have failed.                                             |
| `keySets`                              | Total number of keySets that have completed successfully.                                     |
| `keySetsInProgress`                    | Current number of keySets being executed.                                                     |
| `keySetTime`                           | Total amount of time, in nanoseconds, spent doing keySets.                                    |
| `keySetTimeouts`                       | Total number of keySet attempts that have timed out.                                          |
| `makePrimaryFailures`                  | Total number of makePrimary attempts that have failed.                                        |
| `makePrimarys`                         | Total number of makePrimarys that have completed successfully.                                |
| `makePrimarysInProgress`               | Current number of makePrimarys being executed.                                                |
| `makePrimaryTime`                      | Total amount of time, in nanoseconds, spent doing makePrimarys.                               |
| `makePrimaryTimeouts`                  | Total number of makePrimary attempts that have timed out.                                     |
| `messageBytesBeingReceived`            | Current number of bytes consumed by messages being received or processed.                     |
| `messagesBeingReceived`                | Current number of messages being received off the network or being processed after reception. |
| `opFailures`                           | Total number of op attempts that have failed.                                                 |
| `ops`                                  | Total number of ops that have completed successfully.                                         |
| `opsInProgress`                        | Current number of ops being executed.                                                         |
| `opTime`                               | Total amount of time, in nanoseconds, spent doing ops.                                        |
| `opTimeouts`                           | Total number of op attempts that have timed out.                                              |
| `pingFailures`                         | Total number of ping attempts that have failed.                                               |
| `pings`                                | Total number of pings that have completed successfully.                                       |
| `pingsInProgress`                      | Current number of pings being executed.                                                       |
| `pingTime`                             | Total amount of time, in nanoseconds, spent doing pings.                                      |
| `pingTimeouts`                         | Total number of ping attempts that have timed out.                                            |
| `primaryAckFailures`                   | Total number of primaryAck attempts that have failed.                                         |
| `primaryAcks`                          | Total number of primaryAcks that have completed successfully.                                 |
| `primaryAckTime`                       | Total amount of time, in nanoseconds, spent doing primaryAcks.                                |
| `primaryAckTimeouts`                   | Total number of primaryAck attempts that have timed out.                                      |
| `putAllFailures`                       | Total number of putAll attempts that have failed.                                             |
| `putAlls`                              | Total number of putAlls that have completed successfully.                                     |
| `putAllsInProgress`                    | Current number of putAlls being executed.                                                     |
| `putAllTime`                           | Total amount of time, in nanoseconds, spent doing putAlls.                                    |
| `putAllTimeouts`                       | Total number of putAll attempts that have timed out.                                          |
| `putFailures`                          | Total number of put attempts that have failed.                                                |
| `puts`                                 | Total number of puts that have completed successfully.                                        |
| `putsInProgress`                       | Current number of puts being executed.                                                        |
| `putTime`                              | Total amount of time, in nanoseconds, spent doing puts.                                       |
| `putTimeouts`                          | Total number of put attempts that have timed out.                                             |
| `queryFailures`                        | Total number of query attempts that have failed.                                              |
| `querys`                               | Total number of querys completed successfully.                                                |
| `querysInProgress`                     | Current number of querys being executed.                                                      |
| `queryTime`                            | Total amount of time, in nanoseconds. spent doing querys.                                     |
| `queryTimeouts`                        | Total number of query attempts that have timed out.                                           |
| `readyForEvents`                       | Total number of readyForEventss that have completed successfully.                             |
| `readyForEventsFailures`               | Total number of readyForEvents attempts that have failed.                                     |
| `readyForEventsInProgress`             | Current number of readyForEventss being executed                                              |
| `readyForEventsTime`                   | Total amount of time, in nanoseconds, spent doing readyForEvents.                             |
| `readyForEventsTimeouts`               | Total number of readyForEvents attempts that have timed out.                                  |
| `receivedBytes`                        | Total number of bytes received from the server.                                               |
| `registerInstantiators`                | Total number of registerInstantiators completed successfully                                  |
| `registerInstantiatorsFailures`        | Total number of registerInstantiators attempts that have failed.                              |
| `registerInstantiatorssInProgress`     | Current number of registerInstantiators being executed                                        |
| `registerInstantiatorsTime`            | Total amount of time, in nanoseconds, spent doing registerInstantiators.                      |
| `registerInstantiatorsTimeouts`        | Total number of registerInstantiators attempts that have timed out.                           |
| `registerInterestFailures`             | Total number of registerInterest attempts that have failed.                                   |
| `registerInterests`                    | Total number of registerInterests that have completed successfully.                           |
| `registerInterestsInProgress`          | Current number of registerInterests being executed.                                           |
| `registerInterestTime`                 | Total amount of time, in nanoseconds, spent doing registerInterests.                          |
| `registerInterestTimeouts`             | Total number of registerInterest attempts that have timed out.                                |
| `sentBytes`                            | Total number of bytes sent to the server.                                                     |
| `unregisterInterestFailures`           | Total number of unregisterInterest attempts that have failed.                                 |
| `unregisterInterests`                  | Total number of unregisterInterests that have completed successfully                          |
| `unregisterInterestsInProgress`        | Current number of unregisterInterests being executed.                                         |
| `unregisterInterestTime`               | Total amount of time, in nanoseconds, spent doing unregisterInterests.                        |
| `unregisterInterestTimeouts`           | Total number of unregisterInterest attempts that have timed out.                              |

The primary statistics of ClientSendStats are:

| Statistic                                     | Description                                                                                                                                                         |
|-----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `addPdxTypeSendFailures`                      | Total number of addPdxType operation's request messages not sent successfully from the client to server.                                                            |
| `addPdxTypeSendsSuccessful`                   | Total number of addPdxType operation's request messages sent successfully from the client to server.                                                                |
| `addPdxTypeSendsInProgress`                   | Current number of addPdxType operation's request messages being send from the client to server.                                                                     |
| `addPdxTypeSendTime`                          | Total amount of time, in nanoseconds spent sending addPdxType operation's request messages successfully/unsuccessfully from the client to server.                   |
| `clearSendFailures`                           | Total number of clearSends that have failed.                                                                                                                        |
| `clearSends`                                  | Total number of clearSends that have completed successfully.                                                                                                        |
| `clearSendsInProgress`                        | Current number of clearSends being executed.                                                                                                                        |
| `clearSendTime`                               | Total amount of time, in nanoseconds, spent doing clearSends.                                                                                                       |
| `closeConSendFailures`                        | Total number of closeConSends that have failed.                                                                                                                     |
| `closeConSends`                               | Total number of closeConSends that have completed successfully.                                                                                                     |
| `closeConSendsInProgress`                     | Current number of closeConSends being executed.                                                                                                                     |
| `closeConSendTime`                            | Total amount of time, in nanoseconds, spent doing closeConSends.                                                                                                    |
| `closeCQSendFailures`                         | Total number of closeCQ sends that have failed.                                                                                                                     |
| `closeCQSends`                                | Total number of closeCQ sends that have completed successfully.                                                                                                     |
| `closeCQSendsInProgress`                      | Current number of closeCQ sends being executed.                                                                                                                     |
| `closeCQSendTime`                             | Total amount of time, in nanoseconds spent doing closeCQ sends.                                                                                                     |
| `createCQSendFailures`                        | Total number of createCQ sends that have failed.                                                                                                                    |
| `createCQSends`                               | Total number of createCQ sends that have completed successfully.                                                                                                    |
| `createCQSendsInProgress`                     | Current number of createCQ sends being executed.                                                                                                                    |
| `createCQSendTime`                            | Total amount of time, in nanoseconds spent doing createCQ sends.                                                                                                    |
| `commitSendFailures`                          | Total number of commit sends that have failed.                                                                                                                      |
| `commitSends`                                 | Total number of commit sends that have completed successfully.                                                                                                      |
| `commitSendsInProgress`                       | Current number of commit sends being executed.                                                                                                                      |
| `commitSendTime`                              | Total amount of time, in nanoseconds spent doing commits.                                                                                                           |
| `containsKeySendFailures`                     | Total number of containsKeySends that have failed.                                                                                                                  |
| `containsKeySends`                            | Total number of containsKeySends that have completed successfully.                                                                                                  |
| `containsKeySendsInProgress`                  | Current number of containsKeySends being executed.                                                                                                                  |
| `containsKeySendTime`                         | Total amount of time, in nanoseconds, spent doing containsKeyends.                                                                                                  |
| `destroyRegionSendFailures`                   | Total number of destroyRegionSends that have failed.                                                                                                                |
| `destroyRegionSends`                          | Total number of destroyRegionSends that have completed successfully.                                                                                                |
| `destroyRegionSendsInProgress`                | Current number of destroyRegionSends being executed.                                                                                                                |
| `destroyRegionSendTime`                       | Total amount of time, in nanoseconds, spent doing destroyRegionSends.                                                                                               |
| `destroySendFailures`                         | Total number of destroySends that have failed.                                                                                                                      |
| `destroySends`                                | Total number of destroySends that have completed successfully.                                                                                                      |
| `destroySendsInProgress`                      | Current number of destroySends being executed.                                                                                                                      |
| `destroySendTime`                             | Total amount of time, in nanoseconds, spent doing destroySends.                                                                                                     |
| `executeFunctionSendFailures`                 | Total number of Function sends that have failed.                                                                                                                    |
| `executeFunctionSends`                        | Total number of Function sends that have completed successfully.                                                                                                    |
| `executeFunctionSendsInProgress`              | Current number of Function sends being executed.                                                                                                                    |
| `executeFunctionSendTime`                     | Total amount of time, in nanoseconds spent doing Function sends.                                                                                                    |
| `gatewayBatchSendFailures`                    | Total number of gatewayBatchSends that have failed.                                                                                                                 |
| `gatewayBatchSends`                           | Total number of gatewayBatchSends that have completed successfully.                                                                                                 |
| `gatewayBatchSendsInProgress`                 | Current number of gatewayBatchSends being executed.                                                                                                                 |
| `gatewayBatchSendTime`                        | Total amount of time, in nanoseconds, spent doing gatewayBatchSends.                                                                                                |
| `getAllSendFailures`                          | Total number of getAllSends that have failed.                                                                                                                       |
| `getAllSends`                                 | Total number of getAllSends that have completed successfully.                                                                                                       |
| `getAllSendsInProgress`                       | Current number of getAllSends being executed.                                                                                                                       |
| `getAllSendTime`                              | Total amount of time, in nanoseconds, spent doing getAllSends.                                                                                                      |
| `getClientPartitionAttributesSendFailures`    | Total number of getClientPartitionAttributes operation's request messages not sent successfully from the client to server.                                          |
| `getClientPartitionAttributesSendsInProgress` | Current number of getClientPartitionAttributes operation's request messages being send from the client to server.                                                   |
| `getClientPartitionAttributesSendsSuccessful` | Total number of getClientPartitionAttributes operation's request messages sent successfully from the client to server.                                              |
| `getClientPartitionAttributesSendTime`        | Total amount of time, in nanoseconds spent sending getClientPartitionAttributes operation's request messages successfully/unsuccessfully from the client to server. |
| `getClientPRMetadataSendFailures`             | Total number of getClientPRMetadata operation's request messages not sent successfully from the client to server.                                                   |
| `getClientPRMetadataSendsInProgress`          | Current number of getClientPRMetadata operation's request messages being send from the client to server.                                                            |
| `getClientPRMetadataSendsSuccessful`          | Total number of getClientPRMetadata operation's request messages sent successfully from the client to server.                                                       |
| `getClientPRMetadataSendTime`                 | Total amount of time, in nanoseconds spent sending getClientPRMetadata operation's request messages successfully/unsuccessfully from the client to server.          |
| `getPDXIdForTypeSendFailures`                 | Total number of getPDXIdForType operation's request messages not sent successfully from the client to server.                                                       |
| `getPDXIdForTypeSendsInProgress`              | Current number of getPDXIdForType operation's request messages being send from the client to server.                                                                |
| `getPDXIdForTypeSendsSuccessful`              | Total number of getPDXIdForType operation's request messages sent successfully from the client to server.                                                           |
| `getPDXIdForTypeSendTime`                     | Total amount of time, in nanoseconds spent sending getPDXIdForType operation's request messages successfully/unsuccessfully from the client to server.              |
| `getPDXTypeByIdSendFailures`                  | Total number of getPDXTypeById operation's request messages not sent successfully from the client to server.                                                        |
| `getPDXTypeByIdSendsInProgress`               | Current number of getPDXTypeById operation's request messages being send from the client to server.                                                                 |
| `getPDXTypeByIdSendsSuccessful`               | Total number of getPDXTypeById operation's request messages sent successfully from the client to server.                                                            |
| `getPDXTypeByIdSendTime`                      | Total amount of time, in nanoseconds spent sending getPDXTypeById operation's request messages successfully/unsuccessfully from the client to server.               |
| `getEntrySendFailures`                        | Total number of getEntry sends that have failed.                                                                                                                    |
| `getEntrySends`                               | Total number of getEntry sends that have completed successfully.                                                                                                    |
| `getEntrySendsInProgress`                     | Current number of getEntry sends being executed.                                                                                                                    |
| `getEntrySendTime`                            | Total amount of time, in nanoseconds spent sending getEntry messages.                                                                                               |
| `getDurableCQsSendFailures`                   | Total number of getDurableCQs sends that have failed.                                                                                                               |
| `getDurableCQsSends`                          | Total number of getDurableCQs sends that have completed successfully.                                                                                               |
| `getDurableCQsSendsInProgress`                | Current number of getDurableCQs sends being executed.                                                                                                               |
| `getDurableCQsSendTime`                       | Total amount of time, in nanoseconds spent doing getDurableCQs sends.                                                                                               |
| `getSendFailures`                             | Total number of getSends that have failed.                                                                                                                          |
| `getSends`                                    | Total number of getSends that have completed successfully.                                                                                                          |
| `getSendsInProgress`                          | Current number of getSends being executed.                                                                                                                          |
| `getSendTime`                                 | Total amount of time, in nanoseconds, spent doing getSends.                                                                                                         |
| `invalidateSendFailures`                      | Total number of invalidate sends that have failed.                                                                                                                  |
| `invalidateSends`                             | Total number of invalidate sends that have completed successfully.                                                                                                  |
| `invalidateSendsInProgress`                   | Current number of invalidate sends being executed.                                                                                                                  |
| `invalidateSendTime`                          | Total amount of time, in nanoseconds spent doing invalidates.                                                                                                       |
| `jtaSynchronizationSendFailures`              | Total number of jtaSynchronization sends that have failed.                                                                                                          |
| `jtaSynchronizationSends`                     | Total number of jtaSynchronization sends that have completed successfully.                                                                                          |
| `jtaSynchronizationSendsInProgress`           | Current number of jtaSynchronization sends being executed.                                                                                                          |
| `jtaSynchronizationSendTime`                  | Total amount of time, in nanoseconds spent doing jtaSynchronizations.                                                                                               |
| `keySetSendFailures`                          | Total number of keySetSends that have failed.                                                                                                                       |
| `keySetSends`                                 | Total number of keySetSends that have completed successfully.                                                                                                       |
| `keySetSendsInProgress`                       | Current number of keySetSends being executed.                                                                                                                       |
| `keySetSendTime`                              | Total amount of time, in nanoseconds, spent doing keySetSends.                                                                                                      |
| `makePrimarySendFailures`                     | Total number of makePrimarySends that have failed.                                                                                                                  |
| `makePrimarySends`                            | Total number of makePrimarySends that have completed successfully.                                                                                                  |
| `makePrimarySendsInProgress`                  | Current number of makePrimarySends being executed.                                                                                                                  |
| `makePrimarySendTime`                         | Total amount of time, in nanoseconds, spent doing makePrimarySends.                                                                                                 |
| `pingSendFailures`                            | Total number of pingSends that have failed.                                                                                                                         |
| `pingSends`                                   | Total number of pingSends that have completed successfully.                                                                                                         |
| `pingSendsInProgress`                         | Current number of pingSends being executed.                                                                                                                         |
| `pingSendTime`                                | Total amount of time, in nanoseconds, spent doing pingSends.                                                                                                        |
| `primaryAckSendFailures`                      | Total number of primaryAckSends that have failed.                                                                                                                   |
| `primaryAckSends`                             | Total number of primaryAckSends that have completed successfully.                                                                                                   |
| `primaryAckSendTime`                          | Total amount of time, in nanoseconds, spent doing primaryAckSends.                                                                                                  |
| `primaryAcksInProgress`                       | Current number of primaryAcks being executed.                                                                                                                       |
| `putAllSendFailures`                          | Total number of putAllSends that have failed.                                                                                                                       |
| `putAllSends`                                 | Total number of putAllSends that have completed successfully.                                                                                                       |
| `putAllSendsInProgress`                       | Current number of putAllSends being executed.                                                                                                                       |
| `putAllSendTime`                              | Total amount of time, in nanoseconds, spent doing putAllSends.                                                                                                      |
| `putSendFailures`                             | Total number of putSends that have failed.                                                                                                                          |
| `putSends`                                    | Total number of putSends that have completed successfully.                                                                                                          |
| `putSendsInProgress`                          | Current number of putSends being executed.                                                                                                                          |
| `putSendTime`                                 | Total amount of time, in nanoseconds, spent doing putSends.                                                                                                         |
| `querySendFailures`                           | Total number of querySends that have failed.                                                                                                                        |
| `querySends`                                  | Total number of querySends that have completed successfully.                                                                                                        |
| `querySendsInProgress`                        | Current number of querySends being executed.                                                                                                                        |
| `querySendTime`                               | Total amount of time, in nanoseconds, spent doing querySends.                                                                                                       |
| `readyForEventsSendFailures`                  | Total number of readyForEventsSends that have failed.                                                                                                               |
| `readyForEventsSends`                         | Total number of readyForEventsSends that have completed successfully.                                                                                               |
| `readyForEventsSendsInProgress`               | Current number of readyForEventsSends being executed.                                                                                                               |
| `readyForEventsSendTime`                      | Total amount of time, in nanoseconds, spent doing readyForEventsSends.                                                                                              |
| `registerDataSerializersSendFailures`         | Total number of registerDataSerializers sends that have failed.                                                                                                     |
| `registerDataSerializersSends`                | Total number of registerDataSerializers sends that have completed successfully.                                                                                     |
| `registerDataSerializersSendInProgress`       | Current number of registerDataSerializers sends being executed.                                                                                                     |
| `registerDataSerializersSendTime`             | Total amount of time, in nanoseconds spent doing registerDataSerializers sends.                                                                                     |
| `registerInstantiatorsSendFailures`           | Total number of registerInstantiators sends that have failed                                                                                                        |
| `registerInstantiatorsSends`                  | Total number of registerInstantiators sends that have completed successfully                                                                                        |
| `registerInstantiatorsSendsInProgress`        | Current number of registerInstantiators sends being executed                                                                                                        |
| `registerInstantiatorsSendTime`               | Total amount of time, in nanoseconds, spent doing registerInstantiatorsSends.                                                                                       |
| `registerInterestSendFailures`                | Total number of registerInterestSends that have failed.                                                                                                             |
| `registerInterestSends`                       | Total number of registerInterestSends that have completed successfully.                                                                                             |
| `registerInterestSendsInProgress`             | Current number of registerInterestSends being executed.                                                                                                             |
| `registerInterestSendTime`                    | Total amount of time, in nanoseconds, spent doing registerInterestSends.                                                                                            |
| `removeAllSendFailures`                       | Total number of removeAll sends that have failed.                                                                                                                   |
| `removeAllSends`                              | Total number of removeAll sends that have completed successfully.                                                                                                   |
| `removeAllSendsInProgress`                    | Current number of removeAll sends being executed.                                                                                                                   |
| `removeAllSendTime`                           | Total amount of time, in nanoseconds spent doing removeAll sends.                                                                                                   |
| `rollbackSendFailures`                        | Total number of rollback sends that have failed.                                                                                                                    |
| `rollbackSends`                               | Total number of rollback sends that have completed successfully.                                                                                                    |
| `rollbackSendsInProgress`                     | Current number of rollback sends being executed.                                                                                                                    |
| `rollbackSendTime`                            | Total amount of time, in nanoseconds spent doing rollbacks.                                                                                                         |
| `sizeSendFailures`                            | Total number of size sends that have failed.                                                                                                                        |
| `sizeSends`                                   | Total number of size sends that have completed successfully.                                                                                                        |
| `sizeSendsInProgress`                         | Current number of size sends being executed.                                                                                                                        |
| `sizeSendTime`                                | Total amount of time, in nanoseconds spent doing sizes.                                                                                                             |
| `stopCQSendFailures`                          | Total number of stopCQ sends that have failed.                                                                                                                      |
| `stopCQSends`                                 | Total number of stopCQ sends that have completed successfully.                                                                                                      |
| `stopCQSendsInProgress`                       | Current number of stopCQ sends being executed.                                                                                                                      |
| `stopCQSendTime`                              | Total amount of time, in nanoseconds spent doing stopCQ sends.                                                                                                      |
| `txFailoverSendFailures`                      | Total number of txFailover sends that have failed.                                                                                                                  |
| `txFailoverSends`                             | Total number of txFailover sends that have completed successfully.                                                                                                  |
| `txFailoverSendsInProgress`                   | Current number of txFailover sends being executed.                                                                                                                  |
| `txFailoverSendTime`                          | Total amount of time, in nanoseconds spent doing txFailovers.                                                                                                       |
| `unregisterInterestSendFailures`              | Total number of unregisterInterestSends that have failed.                                                                                                           |
| `unregisterInterestSends`                     | Total number of unregisterInterestSends that have completed successfully.                                                                                           |
| `unregisterInterestSendsInProgress`           | Current number of unregisterInterestSends being executed.                                                                                                           |
| `unregisterInterestSendTime`                  | Total amount of time, in nanoseconds, spent doing unregisterInterestSends.                                                                                          |


## <a id="section_6C247F61DB834C079A16BE92789D4692" class="no-quick-link"></a>Client Connection Pool (PoolStats)

These statistics are in a client and they describe one of the client’s connection pools. The primary statistics are:

| Statistic                   | Description                                                                                                          |
|-----------------------------|----------------------------------------------------------------------------------------------------------------------|
| `connections`               | Current number of connections.                                                                                       |
| `connectionWaits`           | Total number of times a thread completed waiting for a connection (either by timing out or by getting a connection). |
| `connectionWaitsInProgress` | Current number of threads waiting for a connection.                                                                  |
| `connectionWaitTime`        | Total time, in nanoseconds, spent waiting for a connection.                                                          |
| `connects`                  | Total number of times a connection has been created.                                                                 |
| `disconnects`               | Total number of times a connection has been destroyed.                                                               |
| `ENDPOINTS_KNOWN`           | Current number of servers discovered.                                                                                |
| `idleChecks`                | Total number of checks done for idle expiration.                                                                     |
| `idleDisconnects`           | Total number of disconnects done due to idle expiration.                                                             |
| `INITIAL_CONTACTS`          | Number of contacts initially made the user.                                                                          |
| `KNOWN_LOCATORS`            | Current number of locators discovered.                                                                               |
| `lifetimeChecks`            | Total number of checks done for lifetime expiration.                                                                 |
| `lifetimeConnects`          | Total number of connects done due to lifetime expiration.                                                            |
| `lifetimeDisconnects`       | Total number of disconnects done due to lifetime expiration.                                                         |
| `lifetimeExtensions`        | Total number of times a connection's lifetime has been extended because the servers are still balanced.              |
| `minPoolSizeConnects`       | Total number of connects done to maintain minimum pool size.                                                         |
| `QUEUE_SERVERS`             | Number of servers hosting this client.s subscription queue.                                                          |
| `REQUESTS_TO_LOCATOR`       | Number of requests from this connection pool to a locator.                                                           |
| `RESPONSES_FROM_LOCATOR`    | Number of responses from the locator to this connection pool.                                                        |

## <a id="section_66C0E7748501480B85209D57D24256D5" class="no-quick-link"></a>Continuous Querying (CqQueryStats)

These statistics are for continuous querying information. The statistics are:

| Statistic                        | Description                                                                                                            |
|----------------------------------|------------------------------------------------------------------------------------------------------------------------|
| `CQS_CREATED`                    | Number of CQ operations created.                                                                                       |
| `CQS_ACTIVE`                     | Number of CQ operations actively executing. The quantity reported for partitioned regions may be larger than that of replicated regions, as each redundant copy contributes the the count. |
| `CQS_STOPPED`                    | Number of CQ operations stopped. The quantity reported for partitioned regions may be larger than that of replicated regions, as each redundant copy contributes the the count. |
| `CQS_CLOSED`                     | Number of CQ operations closed. The quantity reported for partitioned regions may be larger than that of replicated regions, as each redundant copy contributes the the count. |
| `CQS_ON_CLIENT`                  | Number of CQ operations on the client.                                                                                 |
| `CLIENTS_WITH_CQS`               | Number of Clients with CQ operations.                                                                                  |
| `CQ_QUERY_EXECUTION_TIME`        | Time taken, in nanoseconds, for CQ query execution.                                                                    |
| `CQ_QUERY_EXECUTIONS_COMPLETED`  | Number of CQ query executions operations.                                                                              |
| `CQ_QUERY_EXECUTION_IN_PROGRESS` | CQ Query execution operations in progress.                                                                             |
| `UNIQUE_CQ_QUERY`                | Number of unique CQ queries.                                                                                           |
| `closeCQFailures`                | Total number of closeCQ attempts that have failed. For client-to-server messaging performance.                         |
| `closeCQs`                       | Total number of closeCQs that have completed successfully. For client-to-server messaging performance.                 |
| `closeCQSendFailures`            | Total number of closeCQSends that have failed. For client-to-server messaging performance.                             |
| `closeCQSends`                   | Total number of closeCQSends that have completed successfully. For client-to-server messaging performance.             |
| `closeCQSendsInProgress`         | Current number of closeCQSends being executed. For client-to-server messaging performance.                             |
| `closeCQSendTime`                | Total amount of time, in nanoseconds, spent doing closeCQSends. For client-to-server messaging performance.            |
| `closeCQsInProgress`             | Current number of closeCQs being executed. For client-to-server messaging performance.                                 |
| `closeCQTime`                    | Total amount of time, in nanoseconds, spent doing closeCQs. For client-to-server messaging performance.                |
| `closeCQTimeouts`                | Total number of closeCQ attempts that have timed out. For client-to-server messaging performance.                      |
| `createCQFailures`               | Total number of createCQ attempts that have failed. For client-to-server messaging performance.                        |
| `createCQs`                      | Total number of createCQs that have completed successfully. For client-to-server messaging performance.                |
| `createCQSendFailures`           | Total number of createCQSends that have failed. For client-to-server messaging performance.                            |
| `createCQSends`                  | Total number of createCQSends that have completed successfully. For client-to-server messaging performance.            |
| `createCQSendsInProgress`        | Current number of createCQSends being executed. For client-to-server messaging performance.                            |
| `createCQSendTime`               | Total amount of time, in nanoseconds, spent doing createCQSends. For client-to-server messaging performance.           |
| `createCQsInProgress`            | Current number of createCQs being executed. For client-to-server messaging performance.                                |
| `createCQTime`                   | Total amount of time, in nanoseconds, spent doing createCQs. For client-to-server messaging performance.               |
| `createCQTimeouts`               | Total number of createCQ attempts that have timed out. For client-to-server messaging performance.                     |
| `stopCQFailures`                 | Total number of stopCQ attempts that have failed. For client-to-server messaging performance.                          |
| `stopCQs`                        | Total number of stopCQs that have completed successfully. For client-to-server messaging performance.                  |
| `stopCQSendFailures`             | Total number of stopCQSends that have failed. For client-to-server messaging performance.                              |
| `stopCQSends`                    | Total number of stopCQSends that have completed successfully. For client-to-server messaging performance.              |
| `stopCQSendsInProgress`          | Current number of stopCQSends being executed. For client-to-server messaging performance.                              |
| `stopCQSendTime`                 | Total amount of time, in nanoseconds, spent doing stopCQSends. For client-to-server messaging performance.             |
| `stopCQsInProgress`              | Current number of stopCQs being executed. For client-to-server messaging performance.                                  |
| `stopCQTime`                     | Total amount of time, in nanoseconds, spent doing stopCQs. For client-to-server messaging performance.                 |
| `stopCQTimeouts`                 | Total number of stopCQ attempts that have timed out. For client-to-server messaging performance.                       |
| `cqCount`                        | Number of CQs operations on the client. For server notification to a single client.                                    |
| `cqProcessingTime`               | Total time, in nanoseconds, spent by the cache client notifier processing CQs. For server notification to all clients. |

## <a id="section_D4ABED3FF94245C0BEE0F6FC9481E867" class="no-quick-link"></a>Delta Propagation (DeltaPropagationStatistics)

These statistics are for delta propagation between members. The primary statistics are:

| Statistic                                      | Description                                                                                                                                                                 |
|------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `deltaFullValuePuts`                           | Total number of full value puts processed successfully in response to failed delta puts.                                                                                    |
| `deltaFullValueRequests`                       | Number of full value requests received from a client after failing to apply delta and processed successfully by this server.                                                |
| `deltaMessageFailures`                         | The number of distribution messages containing delta that could not be processed at receiving side.                                                                         |
| `deltaMessageFailures`                         | Current number of delta messages received but could not be processed after reception.                                                                                       |
| `deltaPutFailures`                             | Number of failures encountered while processing delta received from a client on this server.                                                                                |
| `deltaPuts`                                    | Total number of puts containing delta.                                                                                                                                      |
| `deltaPutsTime`                                | Total amount of time, in nanoseconds, spent constructing delta part of puts.                                                                                                |
| `fullDeltaMessages`                            | Current number of full value delta messages received off network and processed after reception.                                                                             |
| `fullDeltaRequests`                            | Number of full value requests made by this server to the sender client after failing to apply delta.                                                                        |
| `fullValueDeltaMessagesRequested`              | The number of distribution messages containing full value requested by this <%=vars.product_name%> system after failing to apply received delta.                |
| `fullValueDeltaMessagesSent`                   | The number of distribution messages sent in response to full value requests by a remote <%=vars.product_name%> System as a result of failure in applying delta. |
| `partitionMessagesWithDeltaFailures`           | Number of failures while processing PartitionMessages containing delta.                                                                                                     |
| `partitionMessagesWithDeltaProcessed`          | Number of PartitionMessages containing delta processed.                                                                                                                     |
| `partitionMessagesWithDeltaProcessedTime`      | Total time spent applying deltas.                                                                                                                                           |
| `partitionMessagesWithDeltaSent`               | Number of PartitionMessages containing delta sent.                                                                                                                          |
| `partitionMessagesWithDeltaSentTime`           | Total time spent extractng deltas.                                                                                                                                          |
| `partitionMessagesWithFullValueDeltaRequested` | Number of requests for PartitionMessages containing full delta value as a result of failure in applying delta.                                                              |
| `partitionMessagesWithFullValueDeltaSent`      | Number of PartitionMessages containing full delta value sent.                                                                                                               |
| `preparedDeltaMessages`                        | The number of distribution messages containing delta that this <%=vars.product_name%> system has prepared for distribution.                                     |
| `preparedDeltaMessages`                        | Number of client messages being prepared for dispatch, which have delta part in them.                                                                                       |
| `preparedDeltaMessagesTime`                    | The total amount of time this distribution manager has spent preparing delta parts of messages.                                                                             |
| `processedDeltaMessages`                       | The number of distribution messages containing delta that this <%=vars.product_name%> system has processed.                                                     |
| `processedDeltaMessages`                       | Current number of delta messages received off network and processed after reception.                                                                                        |
| `processedDeltaMessagesTime`                   | The amount of time this distribution manager has spent in applying delta on its existing value.                                                                             |
| `processedDeltaMessagesTime`                   | Total time spent applying received delta parts on existing messages at clients.                                                                                             |
| `processedDeltaPuts`                           | Number of cache client put requests containing delta received from a client and processed successfuly.                                                                      |
| `processedDeltaPutsTime`                       | Total time spent in applying delta received from a client on existing value in this server's region.                                                                        |

## <a id="section_6C2BECC63A83456190B029DEDB8F4BE3" class="no-quick-link"></a>Disk Space Usage (DiskDirStatistics)

These statistics pertain to the disk usage for a region’s disk directory. The primary statistics are:

| Statistic               | Description                                                                                                                                                |
|-------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `diskSpace`             | The total number of bytes currently being used on disk in this directory for oplog files.                                                                  |
| `maximumSpace`          | The configured maximum number of bytes allowed in this directory for oplog files. Note that some product configurations allow this maximum to be exceeded. |
| `volumeFreeSpace`       | The total free space in bytes on the disk volume.                                                                                                          |
| `volumeFreeSpaceChecks` | The total number of disk space checks.                                                                                                                     |
| `volumeFreeSpaceTime`   | The total time, in nanseconds, spent checking disk usage.                                                                                                  |
| `volumeSize`            | The total size in bytes of the disk volume.                                                                                                                |

## <a id="section_3456190B026C2BECC63A89DEDB8F4BE3" class="no-quick-link"></a>Disk Store Statistics (DiskStoreStatistics)

Statistics about a Region's use of the disk. The primary statistics are:

| Statistic                        | Description                                                                                                                                                            |
|----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `backupsCompleted`               | The number of backups of this disk store that have been taking while this VM was alive.                                                                                |
| `backupsInProgress`              | The current number of backups in progress on this disk store.                                                                                                          |
| `compactableOplogs`              | Current number of oplogs ready to be compacted.                                                                                                                        |
| `compactDeletes`                 | Total number of times an oplog compact did a delete.                                                                                                                   |
| `compactDeleteTime`              | Total amount of time, in nanoseconds, spent doing deletes during a compact.                                                                                            |
| `compactInserts`                 | Total number of times an oplog compact did a db insert.                                                                                                                |
| `compactInsertTime`              | Total amount of time, in nanoseconds, spent doing inserts during a compact.                                                                                            |
| `compacts`                       | Total number of completed oplog compacts.                                                                                                                              |
| `compactsInProgress`             | Current number of oplog compacts that are in progress.                                                                                                                 |
| `compactTime`                    | Total amount of time, in nanoseconds, spent compacting oplogs.                                                                                                         |
| `compactUpdates`                 | Total number of times an oplog compact did an update.                                                                                                                  |
| `compactUpdateTime`              | Total amount of time, in nanoseconds, spent doing updates during a compact.                                                                                            |
| `flushedBytes`                   | The total number of bytes written to disk by async queue flushes.                                                                                                      |
| `flushes`                        | The total number of times the an entry has been flushed from the async queue.                                                                                          |
| `flushesInProgress`              | Current number of oplog flushes that are in progress.                                                                                                                  |
| `flushTime`                      | The total amount of time spent doing an async queue flush.                                                                                                             |
| `inactiveOplogs`                 | Current number of oplogs that are no longer being written but are not ready ready to compact.                                                                          |
| `openOplogs`                     | Current number of oplogs this disk store has open.                                                                                                                     |
| `oplogReads`                     | Total number of oplog reads.                                                                                                                                           |
| `oplogRecoveries`                | The total number of oplogs recovered.                                                                                                                                  |
| `oplogRecoveryTime`              | The total amount of time spent doing an oplog recovery.                                                                                                                |
| `oplogRecoveredBytes`            | The total number of bytes that have been read from oplogs during a recovery.                                                                                           |
| `oplogSeeks`                     | Total number of oplog seeks.                                                                                                                                           |
| `queueSize`                      | The current number of entries in the async queue waiting to be flushed to disk.                                                                                        |
| `readBytes`                      | The total number of bytes that have been read from disk.                                                                                                               |
| `reads`                          | The total number of region entries that have been read from disk.                                                                                                      |
| `readTime`                       | The total amount of time spent reading from disk.                                                                                                                      |
| `recoveriesInProgress`           | Current number of persistent regions being recovered from disk.                                                                                                        |
| `recoveredBytes`                 | The total number of bytes that have been read from disk during a recovery.                                                                                             |
| `recoveredEntryCreates`          | The total number of entry create records processed while recovering oplog data.                                                                                        |
| `recoveredEntryDestroys`         | The total number of entry destroy records processed while recovering oplog data.                                                                                       |
| `recoveredEntryUpdates`          | The total number of entry update records processed while recovering oplog data.                                                                                        |
| `recoveredValuesSkippedDueToLRU` | The total number of entry values that did not need to be recovered due to the LRU.                                                                                     |
| `recoveryRecordsSkipped`         | The total number of oplog records skipped during recovery.                                                                                                             |
| `recoveryTime`                   | The total amount of time spent doing a recovery.                                                                                                                       |
| `removes`                        | The total number of region entries that have been removed from disk.                                                                                                   |
| `removeTime`                     | The total amount of time spent removing from disk.                                                                                                                     |
| `uncreatedRecoveredRegions`      | The current number of regions that have been recovered but have not yet been created.                                                                                  |
| `writes`                         | The total number of region entries that have been written to disk. A write is done every time an entry is created on disk or every time its value is modified on disk. |
| `writesInProgress`               | Current number of oplog writes that are in progress.                                                                                                                   |
| `writeTime`                      | The total amount of time spent writing to disk.                                                                                                                        |
| `writtenBytes`                   | The total number of bytes that have been written to disk.                                                                                                              |

## <a id="section_983BFC6D53C74829A04A91C39E06315F" class="no-quick-link"></a>Disk Usage and Performance (DiskRegionStatistics)

Statistics regarding operations performed on a disk region for persistence/overflow. The primary statistics are:

| Statistic        | Description                                                                                                                                                                            |
|------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `bufferSize`     | Current number of bytes buffered to be written to the disk.                                                                                                                            |
| `bytesOnlyOnDisk`  | The current number of bytes on disk and not in memory. It includes overflowed entries and recovered entries that have not yet been faulted in. |
| `commits`        | Total number of commits.                                                                                                                                                               |
| `commitTime`     | Total amount of time, in nanoseconds, spent doing commits.                                                                                                                             |
| `entriesInVM`    | Current number of entries whose value resides in the member. The value may also have been written to the disk.                                                                         |
| `entriesOnlyOnDisk`  | Current number of entries whose value is on the disk and is not in memory. This is true of overflowed entries. It is also true of recovered entries that have not yet been faulted in. |
| `flushedBytes`   | Total number of bytes flushed out of the async write buffer to the disk.                                                                                                               |
| `flushes`        | Total number of times the async write buffer has been flushed.                                                                                                                         |
| `flushTime`      | Total amount of time, in nanoseconds, spent doing a buffer flush.                                                                                                                      |
| `readBytes`      | Total number of bytes that have been read from the disk.                                                                                                                               |
| `reads`          | Total number of region entries that have been read from the disk.                                                                                                                      |
| `readTime`       | Total amount of time, in nanoseconds, spent reading from the disk.                                                                                                                     |
| `recoveredBytes` | Total number of bytes that have been read from disk during a recovery.                                                                                                                 |
| `recoveryTime`   | Total amount of time, in nanoseconds, spent doing a recovery.                                                                                                                          |
| `removes`        | Total number of region entries that have been removed from the disk.                                                                                                                   |
| `removeTime`     | Total amount of time, in nanoseconds, spent removing from the disk.                                                                                                                    |
| `writes`         | Total number of region entries that have been written to disk. A write is done every time an entry is created on disk or every time its value is modified on the disk.                 |
| `writeTime`      | Total amount of time, in nanoseconds, spent writing to the disk.                                                                                                                       |
| `writtenBytes`   | Total number of bytes that have been written to the disk.                                                                                                                              |

## <a id="section_ACB4161F10D64BC0B15871D003FF6FDF" class="no-quick-link"></a>Distributed System Messaging (DistributionStats)

Statistics on the <%=vars.product_name%> distribution layer. These statistics can be used to tell how much message traffic exists between this member and other cluster members.

The primary statistics are:

| Statistic                              | Description                                                                                                                                                                                                                                     |
|----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `asyncConflatedMsgsDesc`               | The total number of queued conflated messages used for asynchronous queues.                                                                                                                                                                     |
| `asyncDequeuedMsgsDesc`                | The total number of queued messages that have been removed from the queue and successfully sent.                                                                                                                                                |
| `asyncDistributionTimeoutExceededDesc` | Total number of times the async-distribution-timeout has been exceeded during a socket write.                                                                                                                                                   |
| `asyncQueueAddTime`                    | Total amount of time, in nanoseconds, spent in adding messages to async queue.                                                                                                                                                                  |
| `asyncQueuedMsgsDesc`                  | The total number of queued messages used for asynchronous queues.                                                                                                                                                                               |
| `asyncQueueFlushesCompletedDesc`       | Total number of asynchronous queue flushes completed.                                                                                                                                                                                           |
| `asyncQueueFlushesInProgressDesc`      | Current number of asynchronous queues being flushed.                                                                                                                                                                                            |
| `asyncQueueFlushTimeDesc`              | Total time spent flushing asynchronous queues.                                                                                                                                                                                                  |
| `asyncQueueRemoveTime`                 | Total amount of time, in nanoseconds, spent in removing messages from async queue.                                                                                                                                                              |
| `asyncQueuesDesc`                      | Current number of queues for asynchronous messaging.                                                                                                                                                                                            |
| `asyncQueueSizeDesc`                   | Current size in bytes used for asynchronous queues.                                                                                                                                                                                             |
| `asyncQueueSizeExceededDesc`           | Total number of asynchronous queues that have exceeded the maximum size.                                                                                                                                                                        |
| `asyncQueueTimeoutExceededDesc`        | Total number of asynchronous queues that have timed out by being blocked for more than async-queue-timeout milliseconds.                                                                                                                        |
| `asyncSocketWriteBytes`                | Total number of bytes sent out on non-blocking sockets.                                                                                                                                                                                         |
| `asyncSocketWriteRetries`              | Total number of retries needed to write a single block of data using non-blocking socket write calls.                                                                                                                                           |
| `asyncSocketWrites`                    | Total number of non-blocking socket write calls completed.                                                                                                                                                                                      |
| `asyncSocketWritesInProgress`          | Current number of non-blocking socket write calls in progress.                                                                                                                                                                                  |
| `asyncSocketWriteTime`                 | Total amount of time, in nanoseconds, spent in non-blocking socket write calls.                                                                                                                                                                 |
| `asyncThreadCompletedDesc`             | Total number of iterations of work performed by asynchronous message queue threads.                                                                                                                                                             |
| `asyncThreadInProgressDesc`            | Current iterations of work performed by asynchronous message queue threads.                                                                                                                                                                     |
| `asyncThreadsDesc`                     | Total number of asynchronous message queue threads.                                                                                                                                                                                             |
| `asyncThreadTimeDesc`                  | Total time spent by asynchronous message queue threads performing iterations.                                                                                                                                                                   |
| `batchSendTime`                        | Total amount of time, in nanoseconds, spent queueing and flushing message batches.                                                                                                                                                              |
| `batchWaitTime`                        | Reserved for future use                                                                                                                                                                                                                         |
| `broadcastMessagesDesc`                | The number of distribution messages that the <%=vars.product_name%> system has broadcast. A broadcast message is one sent to every other manager in the group.                                                                      |
| `broadcastMessagesTimeDesc`            | The total amount of time this distribution manager has spent broadcasting messages. A broadcast message is one sent to every other manager in the group.                                                                                        |
| `bufferAcquires`                       | Total number of times a buffer has been acquired.                                                                                                                                                                                               |
| `bufferAcquiresInProgress`             | Current number of threads waiting to acquire a buffer.                                                                                                                                                                                          |
| `bufferAcquireTime`                    | Total amount of time, in nanoseconds, spent acquiring a socket.                                                                                                                                                                                 |
| `commitWaitsDesc`                      | The number of transaction commits that had to wait for a response before they could complete.                                                                                                                                                   |
| `deserializations`                     | Total number of object deserialization calls.                                                                                                                                                                                                   |
| `deserializationTime`                  | Total amount of time, in nanoseconds, spent deserializing objects.                                                                                                                                                                              |
| `deserializedBytes`                    | Total number of bytes consumed by object deserialization.                                                                                                                                                                                       |
| `distributeMessageTimeDesc`            | The amount of time it takes to prepare a message and send it on the network. This includes sentMessagesTime.                                                                                                 |
| `failedAcceptsDesc`                    | Total number of times an accept (receiver creation) of a connect from some other member has failed.                                                                                                                                             |
| `failedConnectsDesc`                   | Total number of times a connect (sender creation) to some other member has failed.                                                                                                                                                              |
| `finalCheckRequestsReceived`           | The number of final check requests that this member has received.                                                                                                                                                                               |
| `finalCheckRequestsSent`               | The number of final check requests that this member has sent.                                                                                                                                                                                   |
| `finalCheckResponsesReceived`          | The number of final check responses that this member has received.                                                                                                                                                                                   |
| `finalCheckResponsesSent`               | The number of final check responses that this member has sent.                                                                                                                                                                                   |
| `heartbeatRequestsSent`            | The number of heartbeat request messages that this member has sent.                                                                                                                                                                                 |
| `heartbeatRequestsReceived`        | The number of heartbeat request messages that this member has received.                                                                                                                                                                             |
| `heartbeatsReceived`               | The number of heartbeat messages that this member has received.                                                                                                                                                                                     |
| `heartbeatsSent`                    | The number of heartbeat messages that this member has sent.                                                                                                                                                                                 |
| `highPriorityQueueSizeDesc`            | The number of high priority distribution messages currently waiting to be processed.                                                                                                                                                            |
| `highPriorityQueueThrottleCounDesc`    | The total number of times a thread was delayed in adding a normal message to the high priority queue.                                                                                                                                           |
| `highPriorityQueueThrottleTimeDesc`    | The total amount of time, in nanoseconds, spent delayed by the high priority queue throttle.                                                                                                                                                    |
| `highPriorityThreadJobsDesc`           | The number of messages currently being processed by high priority processor threads.                                                                                                                                                            |
| `highPriorityThreadsDesc`              | The number of threads currently processing high priority messages.                                                                                                                                                                              |
| `highPriorityThreadStarts`             | Total number of times a thread has been created for the pool handling high priority messages.                                                                                                                                                   |
| `jgDirAckdownTime`                     | Time, in nanoseconds, spent in JGroups DirAck processing down events.                                                                                                                                                                           |
| `jgDirAcksReceived`                    | Number of DirAck acks received.                                                                                                                                                                                                                 |
| `jgDirAckupTime`                       | Time, in nanoseconds, spent in JGroups DirAck processing up events.                                                                                                                                                                             |
| `jgDISCOVERYdownTime`                  | Time, in nanoseconds, spent in JGroups DISCOVERY processing down events.                                                                                                                                                                        |
| `jgDISCOVERYupTime`                    | Time, in nanoseconds, spent in JGroups DISCOVERY processing up events.                                                                                                                                                                          |
| `jgFCdownTime`                         | Time, in nanoseconds, spent in JGroups FC processing down events.                                                                                                                                                                               |
| `jgFCupTime`                           | Time, in nanoseconds, spent in JGroups FC processing up events.                                                                                                                                                                                 |
| `jgFDdownTime`                         | Time, in nanoseconds, spent in JGroups FD processing down events.                                                                                                                                                                               |
| `jgFDupTime`                           | Time, in nanoseconds, spent in JGroups FD processing up events.                                                                                                                                                                                 |
| `jgFRAG2downTime`                      | Time, in nanoseconds, spent in JGroups FRAG2 processing down events.                                                                                                                                                                            |
| `jgFRAG2upTime`                        | Time, in nanoseconds, spent in JGroups FRAG2 processing up events.                                                                                                                                                                              |
| `jgFragmentationsPerformed`            | Number of message fragmentation operations performed.                                                                                                                                                                                           |
| `jgFragmentsCreated`                   | Number of message fragments created.                                                                                                                                                                                                            |
| `jgGMSdownTime`                        | Time, in nanoseconds, spent in JGroups GMS processing down events.                                                                                                                                                                              |
| `jgGMSupTime`                          | Time, in nanoseconds, spent in JGroups GMS processing up events.                                                                                                                                                                                |
| `jgNAKACKdownTime`                     | Time, in nanoseconds, spent in JGroups NAKACK processing down events.                                                                                                                                                                           |
| `jgNAKACKupTime`                       | Time, in nanoseconds, spent in JGroups NAKACK processing up events.                                                                                                                                                                             |
| `jgSTABLEdownTime`                     | Time, in nanoseconds, spent in JGroups STABLE processing down events.                                                                                                                                                                           |
| `jgSTABLEupTime`                       | Time, in nanoseconds, spent in JGroups STABLE processing up events.                                                                                                                                                                             |
| `jgTCPGOSSIPdownTime`                  | Time, in nanoseconds, spent in JGroups TCPGOSSIP processing down events.                                                                                                                                                                        |
| `jgTCPGOSSIPupTime`                    | Time, in nanoseconds, spent in JGroups TCPGOSSIP processing up events.                                                                                                                                                                          |
| `jgUDPdownTime`                        | Time, in nanoseconds, spent in JGroups UDP processing down events.                                                                                                                                                                              |
| `jgUDPupTime`                          | Time, in nanosecnds, spent in JGroups UDP processing up events.                                                                                                                                                                                 |
| `jgUNICASTdownTime`                    | Time, in nanoseconds, spent in JGroups UNICAST processing down events.                                                                                                                                                                          |
| `jgUNICASTupTime`                      | Time, in nanoseconds, spent in JGroups UNICAST processing up events.                                                                                                                                                                            |
| `jgVIEWSYNCdownTime`                   | Time, in nanoseconds, spent in JGroups VIEWSYNC processing down events.                                                                                                                                                                         |
| `jgVIEWSYNCupTime`                     | Time, in nanoseconds, spent in JGroups VIEWSYNC processing up events.                                                                                                                                                                           |
| `lostConnectionLeaseDesc`              | Total number of times an unshared sender socket has remained idle long enough that its lease expired.                                                                                                                                           |
| `mcastReadBytes`                       | Total number of bytes received in multicast datagrams.                                                                                                                                                                                          |
| `mcastReads`                           | Total number of multicast datagrams received.                                                                                                                                                                                                   |
| `mcastRetransmitRequests`              | Total number of multicast datagram socket retransmission requests sent to other processes.                                                                                                                                                      |
| `mcastRetransmits`                     | Total number of multicast datagram socket retransmissions.                                                                                                                                                                                      |
| `mcastWriteBytes`                      | Total number of bytes sent out on multicast datagram sockets.                                                                                                                                                                                   |
| `mcastWrites`                          | Total number of multicast datagram socket write calls.                                                                                                                                                                                          |
| `mcastWriteTime`                       | Total amount of time, in nanoseconds, spent in multicast datagram socket write calls.                                                                                                                                                           |
| `messageBytesBeingReceived`            | Current number of bytes consumed by messages being received or processed.                                                                                                                                                                       |
| `messageChannelTimeDesc`               | The total amount of time received messages spent in the distribution channel.                                                                                                                                                                   |
| `messageProcessingScheduleTimeDesc`    | The amount of time this distribution manager has spent dispatching a message to processor threads.                                                                                                                                              |
| `messagesBeingReceived`                | Current number of messages being received off the network or being processed after reception.                                                                                                                                                   |
| `msgDeserializationTime`               | Total amount of time, in nanoseconds, spent deserializing messages.                                                                                                                                                                             |
| `msgSerializationTime`                 | Total amount of time, in nanoseconds, spent serializing messages.                                                                                                                                                                               |
| `nodesDesc`                            | The current number of members in this cluster.                                                                                                                                                                                       |
| `overflowQueueSizeDesc`                | The number of normal distribution messages currently waiting to be processed.                                                                                                                                                                   |
| `overflowQueueThrottleCountDesc`       | The total number of times a thread was delayed in adding a normal message to the overflow queue.                                                                                                                                                |
| `overflowQueueThrottleTimeDesc`        | The total amount of time, in nanoseconds, spent delayed by the overflow queue throttle.                                                                                                                                                         |
| `partitionedRegionThreadJobsDesc`      | The number of messages currently being processed by partitioned region threads.                                                                                                                                                                 |
| `partitionedRegionThreadsDesc`         | The number of threads currently processing partitioned region messages.                                                                                                                                                                         |
| `partitionedRegionThreadStarts`        | Total number of times a thread has been created for the pool handling partitioned region messages.                                                                                                                                              |
| `pdxDeserializations`                  | Total number of PDX deserializations.                                                                                                                                                                                                           |
| `pdxDeserializedBytes`                 | Total number of bytes read by PDX deserialization.                                                                                                                                                                                              |
| `pdxInstanceCreations`                 | Total number of times a PdxInstance has been created by deserialization.                                                                                                                                                                        |
| `pdxInstanceDeserializations`          | Total number of times getObject has been called on a PdxInstance.                                                                                                                                                                               |
| `pdxInstanceDeserializationTime`       | Total amount of time, in nanoseconds, spent deserializing PdxInstances by calling getObject.                                                                                                                                                    |
| `pdxSerializations`                    | Total number of PDX serializations.                                                                                                                                                                                                             |
| `pdxSerializedBytes`                   | Total number of bytes produced by PDX serialization.                                                                                                                                                                                            |
| `processedMessagesDesc`                | The number of distribution messages that the <%=vars.product_name%> system has processed.                                                                                                                                           |
| `processedMessagesTimeDesc`            | The amount of time this distribution manager has spent in message.process().                                                                                                                                                                    |
| `processingThreadJobsDesc`             | The number of messages currently being processed by pooled message processor threads.                                                                                                                                                           |
| `processingThreadsDesc`                | The number of threads currently processing normal messages.                                                                                                                                                                                     |
| `processingThreadStarts`               | Total number of times a thread has been created for the pool processing normal messages.                                                                                                                                                        |
| `receivedBytesDesc`                    | The number of distribution message bytes that the <%=vars.product_name%> system has received.                                                                                                                                       |
| `receivedMessagesDesc`                 | The number of distribution messages that the <%=vars.product_name%> system has received.                                                                                                                                            |
| `receiverConnectionsDesc`              | Current number of sockets dedicated to receiving messages.                                                                                                                                                                                      |
| `receiverDirectBufferSizeDesc`         | Current number of bytes allocated from direct memory as buffers for incoming messages.                                                                                                                                                          |
| `receiverHeapBufferSizeDesc`           | Current number of bytes allocated from Java heap memory as buffers for incoming messages.S                                                                                                                                                      |
| `reconnectAttemptsDesc`                | Total number of times an established connection was lost and a reconnect was attempted.                                                                                                                                                         |
| `replyHandoffTimeDesc`                 | Total number of seconds to switch thread contexts from processing thread to application thread.                                                                                                                                                 |
| `replyMessageTimeDesc`                 | The amount of time spent processing reply messages;                                                                                                                                                                                             |
| `replyTimeoutsDesc`                    | Total number of message replies that have timed out.                                                                                                                                                                                            |
| `replyWaitMaxTimeDesc`                 | Maximum time spent transmitting and then waiting for a reply to a message. See sentMessagesMaxTime for related information.                                                                                                                     |
| `replyWaitsCompletedDesc`              | Total number of times waits for a reply have completed.                                                                                                                                                                                         |
| `replyWaitsInProgressDesc`             | Current number of threads waiting for a reply.                                                                                                                                                                                                  |
| `replyWaitTimeDesc`                    | Total time spent waiting for a reply to a message.                                                                                                                                                                                              |
| `senderDirectBufferSizeDesc`           | Current number of bytes allocated from direct memory as buffers for outgoing messages.                                                                                                                                                          |
| `senderHeapBufferSizeDesc`             | Current number of bytes allocated from Java heap memory as buffers for outgoing messages.                                                                                                                                                       |
| `sentBytesDesc`                        | The number of distribution message bytes that the <%=vars.product_name%> system has sent.                                                                                                                                           |
| `sentCommitMessagesDesc`               | The number of transaction commit messages that the <%=vars.product_name%> system has created to be sent. Note, it is possible for a commit to only create one message even though it will end up being sent to multiple recipients. |
| `sentMessagesDesc`                     | The number of distribution messages that the <%=vars.product_name%> system has sent, which includes broadcastMessages.                                                                                                              |
| `sentMessagesMaxTimeDesc`              | The highest amount of time this distribution manager has spent distributing a single message to the network.                                                                                                                                    |
| `sentMessagesTimeDesc`                 | The total amount of time this distribution manager has spent sending messages, which includes broadcastMessagesTime.                                                                                                                            |
| `serializations`                       | Total number of object serialization calls.                                                                                                                                                                                                     |
| `serializationTime`                    | Total amount of time, in nanoseconds, spent serializing objects.                                                                                                                                                                                |
| `serializedBytes`                      | Total number of bytes produced by object serialization.                                                                                                                                                                                         |
| `serialPooledThreadDesc`               | The number of threads created in the SerialQueuedExecutorPool.                                                                                                                                                                                  |
| `serialPooledThreadJobsDesc`           | The number of messages currently being processed by pooled serial processor threads.                                                                                                                                                            |
| `serialPooledThreadStarts`             | Total number of times a thread has been created for the serial pool(s).                                                                                                                                                                         |
| `serialQueueBytesDesc`                 | The approximate number of bytes consumed by serial distribution messages currently waiting to be processed.                                                                                                                                     |
| `serialQueueSizeDesc`                  | The number of serial distribution messages currently waiting to be processed.                                                                                                                                                                   |
| `serialQueueThrottleCountDesc`         | The total number of times a thread was delayed in adding a ordered message to the serial queue.                                                                                                                                                 |
| `serialQueueThrottleTimeDesc`          | The total amount of time, in nanoseconds, spent delayed by the serial queue throttle.                                                                                                                                                           |
| `serialThreadJobsDesc`                 | The number of messages currently being processed by serial threads.                                                                                                                                                                             |
| `serialThreadsDesc`                    | The number of threads currently processing serial/ordered messages.                                                                                                                                                                             |
| `serialThreadStarts`                   | Total number of times a thread has been created for the serial message executor.                                                                                                                                                                |
| `sharedOrderedSenderConnectionsDesc`   | Current number of shared sockets dedicated to sending ordered messages.                                                                                                                                                                         |
| `sharedUnorderedSenderConnectionsDesc` | Current number of shared sockets dedicated to sending unordered messages.                                                                                                                                                                       |
| `socketLocks`                          | Total number of times a socket has been locked.                                                                                                                                                                                                 |
| `socketLockTime`                       | Total amount of time, in nanoseconds, spent locking a socket.                                                                                                                                                                                   |
| `suspectsReceived`                     | The number of suspect messages that this member has received.                                                                                                                                                                                   |
| `suspectsSent`                         | The number of suspect messages that this member has sent.                                                                                                                                                                                       |
| `syncSocketWriteBytes`                 | Total number of bytes sent out in synchronous/blocking mode on sockets.                                                                                                                                                                         |
| `syncSocketWrites`                     | Total number of completed synchronous/blocking socket write calls.                                                                                                                                                                              |
| `syncSocketWritesInProgress`           | Current number of synchronous/blocking socket write calls in progress.                                                                                                                                                                          |
| `syncSocketWriteTime`                  | Total amount of time, in nanoseconds, spent in synchronous/blocking socket write calls.                                                                                                                                                         |
| `tcpFinalCheckRequestsReceived`           | The number of TCP final check requests that this member has received.                                                                                                                                                                               |
| `tcpFinalCheckRequestsSent`               | The number of TCP final check requests that this member has sent.                                                                                                                                                                                   |
| `tcpFinalCheckResponsesReceived`          | The number of TCP final check responses that this member has received.                                                                                                                                                                                   |
| `tcpFinalCheckResponsesSent`               | The number of TCP final check responses that this member has sent.                                                                                                                                                                                   |
| `threadOrderedSenderConnectionsDesc`   | Current number of thread sockets dedicated to sending ordered messages.                                                                                                                                                                         |
| `threadUnorderedSenderConnectionsDesc` | Current number of thread sockets dedicated to sending unordered messages.                                                                                                                                                                       |
| `TOSentMsgs`                           | Total number of messages sent on thread owned senders.                                                                                                                                                                                          |
| `ucastReadBytes`                       | Total number of bytes received in unicast datagrams.                                                                                                                                                                                            |
| `ucastReads`                           | Total number of unicast datagrams received.                                                                                                                                                                                                     |
| `ucastRetransmits`                     | Total number of unicast datagram socket retransmissions.                                                                                                                                                                                        |
| `ucastWriteBytes`                      | Total number of bytes sent out on unicast datagram sockets.                                                                                                                                                                                     |
| `ucastWrites`                          | Total number of unicast datagram socket write calls.                                                                                                                                                                                            |
| `ucastWriteTime`                       | Total amount of time, in nanoseconds, spent in unicast datagram socket write calls.                                                                                                                                                             |
| `udpDispatchRequestTime`               | The total amount of time, in nanoseconds, spent deserializing and dispatching UDP messages in the message-reader thread.                                                                                                                        |
| `udpFinalCheckRequestsReceived`           | The number of UDP final check requests that this member has received.                                                                                                                                                                               |
| `udpFinalCheckRequestsSent`               | The number of UDP final check requests that this member has sent.                                                                                                                                                                                   |
| `udpFinalCheckResponsesReceived`          | The number of UDP final check responses that this member has received.                                                                                                                                                                              |
| `udpFinalCheckResponsesSent`               | The number of UDP final check responses that this member has sent.                                                                                                                                                                                 |
| `udpMsgDecryptionTime`                     | The total amount of time, in nanoseconds, spent decrypting UDP messages.                                                                                                                                                                           |
| `udpMsgEncryptionTime`                     | The total amount of time, in nanoseconds, spent encrypting UDP messages.                                                                                                                                                                           |
| `viewThreadJobsDesc`                   | The number of messages currently being processed by view threads.                                                                                                                                                                               |
| `viewThreadsDesc`                      | The number of threads currently processing view messages.                                                                                                                                                                                       |
| `viewThreadStarts`                     | Total number of times a thread has been created for the view message executor.                                                                                                                                                                  |
| `waitingQueueSizeDesc`                 | The number of distribution messages currently waiting for some other resource before they can be processed.                                                                                                                                     |
| `waitingThreadJobsDesc`                | The number of messages currently being processed by waiting pooly processor threads.                                                                                                                                                            |
| `waitingThreadsDesc`                   | The number of threads currently processing messages that had to wait for a resource.                                                                                                                                                            |
| `waitingThreadStarts`                  | Total number of times a thread has been created for the waiting pool.                                                                                                                                                                           |

## Distribution Statistics Related to Slow Receivers

The distribution statistics provide statistics pertaining to slow receivers. The primary statistics are:

| Statistic                          | Description                                                                                                                                                                                           |
|------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `asyncDistributionTimeoutExceeded` | Incremented every time an asyncSocketWrite has exceeded async-distribution-timeout and an async queue has been created.                                                                               |
| `asyncQueue*`                      | Provide information about queues the producer is managing for its consumers. There are no statistics maintained for individual consumers. The following are the primary statistics of this type.      |
| `asyncQueues`                      | Indicates the number of queues currently in the producer.                                                                                                                                             |
| `asyncQueueSizeExceeded`           | Incremented every time a queue has exceeded `async-max-queue-size` and the receiver has been sent a disconnect message.                                                                               |
| `asyncQueueTimeoutExceeded`        | Incremented every time a queue flushing has exceeded `async-queue-timeout` and the receiver has been sent a disconnect message.                                                                       |
| `asyncSocketWrite*`                | Used anytime a producer is distributing to one or more consumers with a non-zero distribution timeout. These statistics also reflect the writes done by the threads that service asynchronous queues. |

## <a id="section_78D346A580724E1EA645E31626EECE40" class="no-quick-link"></a>Distributed Lock Services (DLockStats)

These statistics are for distributed lock services. The primary statistics are:

| Statistic                                    | Description                                                                                                 |
|----------------------------------------------|-------------------------------------------------------------------------------------------------------------|
| `becomeGrantorRequestsDesc`                  | Total number of times this member has explicitly requested to become lock grantor.                          |
| `createGrantorsCompletedDesc`                | Total number of initial grantors created in this process.                                                   |
| `createGrantorsInProgressDesc`               | Current number of initial grantors being created in this process.                                           |
| `destroyReadsDesc`                           | The current number of DLockService destroy read locks held by this process.                                 |
| `destroyReadWaitFailedTimeDesc`              | Total time spent waiting for a DLockService destroy read lock that was not obtained.                        |
| `destroyReadWaitsCompletedDesc`              | Total number of times a DLockService destroy read lock wait has completed successfully.                     |
| `destroyReadWaitsFailedDesc`                 | Total number of times a DLockService destroy read lock wait has completed unsuccessfully.                   |
| `destroyReadWaitsInProgressDesc`             | Current number of threads waiting for a DLockService destroy read lock.                                     |
| `destroyReadWaitTimeDesc`                    | Total time spent waiting for a DLockService destroy read lock that was obtained.                            |
| `destroyWritesDesc`                          | The current number of DLockService destroy write locks held by this process.                                |
| `destroyWriteWaitFailedTimeDesc`             | Total time spent waiting for a DLockService destroy write lock that was not obtained.                       |
| `destroyWriteWaitsCompletedDesc`             | Total number of times a DLockService destroy write lock wait has completed successfully.                    |
| `destroyWriteWaitsFailedDesc`                | Total number of times a DLockService destroy write lock wait has completed unsuccessfully.                  |
| `destroyWriteWaitsInProgressDesc`            | Current number of writes waiting for a DLockService destroy write lock.                                     |
| `destroyWriteWaitTimeDesc`                   | Total time spent waiting for a DLockService destroy write lock that was obtained.                           |
| `grantorsDesc`                               | The current number of lock grantors hosted by this system member.                                           |
| `grantorThreadExpireAndGrantLocksTimeDesc`   | Total time spent by grantor thread(s) performing expireAndGrantLocks tasks.                                 |
| `grantorThreadHandleRequestTimeoutsTimeDesc` | Total time spent by grantor thread(s) performing handleRequestTimeouts tasks.                             |
| `grantorThreadRemoveUnusedTokensTimeDesc`    | Total time spent by grantor thread(s) performing removeUnusedTokens tasks.                                  |
| `grantorThreadsCompletedDesc`                | Total number of iterations of work performed by grantor thread(s).                                          |
| `grantorThreadsInProgressDesc`               | Current iterations of work performed by grantor thread.                                                     |
| `grantorThreadTimeDesc`                      | Total time spent by grantor thread(s) performing all grantor tasks.                                         |
| `grantorWaitFailedTimeDesc`                  | Total time spent waiting for the grantor latch which resulted in failure.                                   |
| `grantorWaitsCompletedDesc`                  | Total number of times waiting threads completed waiting for the grantor latch to open.                      |
| `grantorWaitsFailedDesc`                     | Total number of times waiting threads failed to finish waiting for the grantor latch to open.               |
| `grantorWaitsInProgressDesc`                 | Current number of threads waiting for grantor latch to open.                                                |
| `grantorWaitTimeDesc`                        | Total time spent waiting for the grantor latch which resulted in success.                                   |
| `grantWaitDestroyedTimeDesc`                 | Total time spent granting of lock requests that failed because lock service was destroyed.                  |
| `grantWaitFailedTimeDesc`                    | Total time spent granting of lock requests that failed because try locks failed.                            |
| `grantWaitNotGrantorTimeDesc`                | Total time spent granting of lock requests that failed because not grantor.                                 |
| `grantWaitNotHolderTimeDesc`                 | Total time spent granting of lock requests that failed because reentrant was not holder.                    |
| `grantWaitsCompletedDesc`                    | Total number of times granting of a lock request has completed by successfully granting the lock.           |
| `grantWaitsDestroyedDesc`                    | Total number of times granting of lock request failed because lock service was destroyed.                   |
| `grantWaitsFailedDesc`                       | Total number of times granting of lock request failed because try locks failed.                             |
| `grantWaitsInProgressDesc`                   | Current number of distributed lock requests being granted.                                                  |
| `grantWaitsNotGrantorDesc`                   | Total number of times granting of lock request failed because not grantor.                                  |
| `grantWaitsNotHolderDesc`                    | Total number of times granting of lock request failed because reentrant was not holder.                     |
| `grantWaitsSuspendedDesc`                    | Total number of times granting of lock request failed because lock service was suspended.                   |
| `grantWaitsTimeoutDesc`                      | Total number of times granting of lock request failed because of a timeout.                                 |
| `grantWaitSuspendedTimeDesc`                 | Total time spent granting of lock requests that failed because lock service was suspended.                  |
| `grantWaitTimeDesc`                          | Total time spent attempting to grant a distributed lock.                                                    |
| `grantWaitTimeoutTimeDesc`                   | Total time spent granting of lock requests that failed because of a timeout.                                |
| `lockReleasesCompletedDesc`                  | Total number of times distributed lock release has completed.                                               |
| `lockReleasesInProgressDesc`                 | Current number of threads releasing a distributed lock.                                                     |
| `lockReleaseTimeDesc`                        | Total time spent releasing a distributed lock.                                                              |
| `lockWaitFailedTimeDesc`                     | Total number of times distributed lock wait has completed by failing to obtain the lock.                    |
| `lockWaitsCompletedDesc`                     | Total number of times distributed lock wait has completed by successfully obtaining the lock.               |
| `lockWaitsFailedDesc`                        | Total time spent waiting for a distributed lock that failed to be obtained.                                 |
| `lockWaitsInProgressDesc`                    | Current number of threads waiting for a distributed lock.                                                   |
| `lockWaitTimeDesc`                           | Total time spent waiting for a distributed lock that was obtained.                                          |
| `pendingRequestsDesc`                        | The current number of pending lock requests queued by grantors in this process.                             |
| `requestQueuesDesc`                          | The current number of lock request queues used by this system member.                                       |
| `serialQueueSizeDesc`                        | The number of serial distribution messages currently waiting to be processed.                               |
| `serialThreadsDesc`                          | The number of threads currently processing serial/ordered messages.                                         |
| `serviceCreateLatchTimeDesc`                 | Total time spent creating lock services before releasing create latches.                                    |
| `serviceCreatesCompletedDesc`                | Total number of lock services created in this process.                                                      |
| `serviceCreatesInProgressDesc`               | Current number of lock services being created in this process.                                              |
| `serviceInitLatchTimeDesc`                   | Total time spent creating lock services before releasing init latches.                                      |
| `servicesDesc`                               | The current number of lock services used by this system member.                                             |
| `String`                                     | createGrantorTimeDesc Total time spent waiting create the initial grantor for lock services.                |
| `tokensDesc`                                 | The current number of lock tokens used by this system member.                                               |
| `waitingQueueSizeDesc`                       | The number of distribution messages currently waiting for some other resource before they can be processed. |
| `waitingThreadsDesc`                         | The number of threads currently processing messages that had to wait for a resource.                        |

## <a id="section_5E211DDB0E8640689AD0A4659511E17A" class="no-quick-link"></a>Function Execution (FunctionStatistics)

These are the statistics for each execution of the function. The primary statistics are:

| Statistic                                            | Description                                                                                                     |
|------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|
| `functionExecutionCalls`                             | Total number of FunctionService.execute() calls for given function.                                             |
| `functionExecutionsCompleted`                        | Total number of completed function.execute() calls for given function.                                          |
| `functionExecutionsCompletedProcessingTime`          | Total time consumed for all completed invocations of the given function.                                        |
| `functionExecutionsExceptions`                       | Total number of Exceptions Occurred while executing function.                                                   |
| `functionExecutionsHasResultCompletedProcessingTime` | Total time consumed for all completed given function.execute() calls where hasResult() returns true.            |
| `functionExecutionsHasResultRunning`                 | A gauge indicating the number of currently active execute() calls for functions where hasResult() returns true. |
| `functionExecutionsRunning`                          | number of currently running invocations of the given function.                                                  |
| `resultsReceived`                                    | Total number of results received and passed to the ResultCollector.                                             |
| `resultsSentToResultCollector`                       | Total number of results sent to the ResultCollector.                                                            |

## <a id="section_C4199A541B1F4B82B6178C416C0FAE4B" class="no-quick-link"></a>Gateway Queue (GatewaySenderStatistics)

These statistics are for outgoing gateway queue and its connection. The primary statistics are:

| Statistic                             | Description                                                                                                                             |
|---------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|
| `batchDistributionTime`               | Total time, in nanoseconds, spent distributing batches of events to other gateways.                                                     |
| `batchesDistributed`                  | Number of batches of events operations removed from the event queue and sent.                                                           |
| `batchesRedistributed`                | Number of batches of events operations removed from the event queue and resent.                                                         |
| `batchesResized`                      | The number of batches resized due to a batch being too large.                                                                           |
| `eventQueueSize`                      | Size of the event operations queue.                                                                                                     |
| `eventQueueTime`                      | Total time, in nanoseconds, spent queueing events.                                                                                      |
| `eventsDistributed`                   | Number of events operations removed from the event queue and sent.                                                                      |
| `eventsDroppedDueToPrimarySenderNotRunning` | Number of events dropped because the primary gateway sender is not running.                                                                      |
| `eventsNotQueuedConflated`            | Number of events operations received but not added to the event queue because the queue already contains an event with the event's key. |
| `eventsProcessedByPQRM`               | Total number of events processed by the parallel queue removal message (PQRM).                                                                                 |
| `eventsQueued`                        | Number of events operations added to the event queue.                                                                                   |
| `secondaryEventQueueSize`             | Size of the secondary event queue.                 |
| `unprocessedEventMapSize`             | Current number of events entries in the secondary's unprocessed event map.                                                              |
| `unprocessedEventsAddedBySecondary`   | Number of events added to the secondary's unprocessed event map by the secondary.                                                       |
| `unprocessedEventsRemovedByPrimary`   | Number of events removed through a listener from the secondary's unprocessed event map by the primary.                                  |
| `unprocessedEventsRemovedByTimeout`   | Number of events removed from the secondary's unprocessed event map by a timeout.                                                       |
| `unprocessedTokenMapSize`             | Current number of tokens entries in the secondary's unprocessed token map.                                                              |
| `unprocessedTokensAddedByPrimary`     | Number of tokens added through a listener to the secondary's unprocessed token map by the primary.                                      |
| `unprocessedTokensRemovedBySecondary` | Number of tokens removed from the secondary's unprocessed token map by the secondary.                                                   |
| `unprocessedTokensRemovedByTimeout`   | Number of tokens removed from the secondary's unprocessed token map by a timeout.                                                       |

## <a id="section_86A61860024B480592DAC67FFB882538" class="no-quick-link"></a>Indexes (IndexStats)

## Query-Independent Statistics on Indexes

| Statistic           | Description                                                                                                                                             |
|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|
| `numKeys`           | Number of keys currently stored in the Index.                                                                                                           |
| `numUpdates`        | Number of updates applied and completed on the Index while inserting, modifying , or deleting corresponding data in <%=vars.product_name%>. |
| `numValues`         | Number of values currently stored in the Index.                                                                                                         |
| `updatesInProgress` | Current number of updates in progress on the Index. Concurrent updates on an index are allowed.                                                         |
| `updateTime`        | Total time taken in applying and completing updates on the Index.                                                                                       |

## Query-Dependent Statistics on Indexes

| Statistic        | Description                                                                                                                                                                            |
|------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `numUses`        | Number of times the Index has been used for querying.                                                                                                                                  |
| `usesInProgress` | Current number of uses of the index in progress or current number of concurrent threads accessing the index for querying. Concurrent use of an index is allowed for different queries. |
| `useTime`        | Total time during the use of the Index for querying.                                                                                                                                   |

## <a id="section_607C3867602E410CAE5FAB26A7FF1CB9" class="no-quick-link"></a>JVM Performance

## <%=vars.product_name%> JVM Resource Manager (ResourceManagerStats)

Statistics related to the <%=vars.product_name%>'s resource manager. Use these to help analyze and tune your JVM memory settings and the <%=vars.product_name%> resource manager settings. The primary statistics are:

| Statistic                       | Description                                                                                                  |
|---------------------------------|--------------------------------------------------------------------------------------------------------------|
| `criticalThreshold`             | The cache resource-manager setting critical-heap-percentage.                                                 |
| `evictionStartEvents`           | Number of times eviction activities were started due to the heap use going over the eviction threshold.      |
| `evictionStopEvents`            | Number of times eviction activities were stopped due to the heap use going below the eviction threshold.     |
| `evictionThreshold`             | The cache resource-manager setting eviction-heap-percentage.                                                 |
| `heapCriticalEvents`            | Number of times incoming cache activities were blocked due to heap use going over the critical threshold.    |
| `heapSafeEvents`                | Number of times incoming cache activities were unblocked due to heap use going under the critical threshold. |
| `rebalancesCompleted`           | Total number of cache rebalance operations that have occurred.                                               |
| `rebalancesInProgress`          | Current number of cache rebalance operations in process.                                                     |
| `restoreRedundanciesCompleted`  | Total number of cache restore redundancy operations that have occurred.                                      |
| `restoreRedundanciesInProgress` | Current number of cache restore redundancy operations in process.                                            |
| `tenuredHeapUsed`               | Percentage of tenured heap currently in use.                                                                 |

## JVM Java Runtime (VMStats)

Show the JVM’s Java usage and can be used to detect possible problems with memory consumption. These statistics are recorded from java.lang.Runtime under VMStats. The primary statistics are:

| Statistic             | Description                                                                                                           |
|-----------------------|-----------------------------------------------------------------------------------------------------------------------|
| `cpus`                | Number of CPUs available to the member on its machine.                                                                |
| `daemonThreads`       | Current number of live daemon threads in this JVM.                                                                    |
| `fdLimit`             | Maximum number of file descriptors.                                                                                   |
| `fdsOpen`             | Current number of open file descriptors.                                                                              |
| `freeMemory`          | An approximation for the total amount of memory, measured in bytes, currently available for future allocated objects. |
| `loadedClasses`       | Total number of classes loaded since the JVM started.                                                                 |
| `maxMemory`           | The maximum amount of memory, measured in bytes, that the JVM will attempt to use.                                    |
| `peakThreads`         | High water mark of live threads in this JVM.                                                                          |
| `pendingFinalization` | Number of objects that are pending finalization in the JVM.                                                           |
| `processCpuTime`      | CPU time, measured in nanoseconds, used by the process.                                                               |
| `threads`             | Current number of live threads (both daemon and non-daemon) in this JVM.                                              |
| `threadStarts`        | Total number of times a thread has been started since this JVM started.                                               |
| `totalMemory`         | The total amount of memory, measure in bytes, currently available for current and future objects.                     |
| `unloadedClasses`     | Total number of classes unloaded since the JVM started.                                                               |

## JVM Garbage Collection (VMGCStats)

These statistics show how much time used by different JVM garbage collection. The primary statistics are:

| Statistic        | Description                                                                 |
|------------------|-----------------------------------------------------------------------------|
| `collections`    | Total number of collections this garbage collector has done.                |
| `collectionTime` | Approximate elapsed time spent doing collections by this garbage collector. |

## JVM Garbage Collector Memory Pools (VMMemoryPoolStats)

These statistics describe memory usage in different garbage collector memory pools. The primary statistics are:

| Statistic                  | Description                                                                                                                |
|----------------------------|----------------------------------------------------------------------------------------------------------------------------|
| `collectionUsageExceeded`  | Total number of times the garbage collector detected that memory usage in this pool exceeded the collectionUsageThreshold. |
| `collectionUsageThreshold` | The collection usage threshold, measured in bytes, for this pool.                                                          |
| `collectionUsedMemory`     | The estimated amount of used memory, measured in bytes, after that last garbage collection of this pool.                   |
| `currentCommittedMemory`   | The amount of committed memory, measured in bytes, for this pool.                                                          |
| `currentInitMemory`        | Initial memory the JVM requested from the operating system for this pool.                                                  |
| `currentMaxMemory`         | The maximum amount of memory, measured in bytes, this pool can have.                                                       |
| `currentUsedMemory`        | The estimated amount of used memory, measured in bytes, currently in use for this pool.                                    |
| `usageExceeded`            | Total number of times that memory usage in this pool exceeded the usageThreshold.                                          |
| `usageThreshold`           | The usage threshold, measured in bytes, for this pool.                                                                     |

## JVM Heap Memory Usage (VMMemoryUsageStats)

Show details on how the Java heap memory is being used. The primary statistics are:

| Statistic         | Description                                                               |
|-------------------|---------------------------------------------------------------------------|
| `committedMemory` | The amount of committed memory, measured in bytes, for this area.         |
| `initMemory`      | Initial memory the JVM requested from the operating system for this area. |
| `maxMemory`       | The maximum amount of memory, measured in bytes, this area can have.      |
| `usedMemory`      | The amount of used memory, measured in bytes, for this area.              |

## JVM Thread stats (VMThreadStats)

Show details about the JVM thread. The primary statistics are:

| Statistic     | Description                                                                                                                                                                           |
|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|                                                                                                           |
| `blocked`     | Total number of times this thread blocked to enter or reenter a monitor.                                                                                                              |
| `blockedTime` | Total amount of elapsed time, approximately, that this thread has spent blocked to enter or reenter a monitor. May need to be enabled by setting `-Dgemfire.enableContentionTime=true`|
| `cpuTime`     | Total cpu time for this thread.  May need to be enabled by setting `-Dgemfire.enableCpuTime=true`.                                                                                    |
| `inNative`    | 1 if the thread is in native code.                                                                                                                                                    |
| `lockOwner`   | The thread id that owns the lock that this thread is blocking on.                                                                                                                     |
| `suspended`   | 1 if the thread is suspended.                                                                                                                                                         |
| `userTime`    | Total user time for this thread. May need to be enabled by setting `-Dgemfire.enableCpuTime=true`.                                                                                    |
| `waited`      | Total number of times this thread waited for notification.                                                                                                                            |
| `waitedTime`  | Total amount of elapsed time, approximately, that this thread has spent waiting for notification. May need to be enabled by setting `-Dgemfire.enableContentionTime=true`             |

## <a id="section_C48B654F973E4B44AD825D459C23A6CD" class="no-quick-link"></a>Locator (LocatorStats)

These statistics are on the <%=vars.product_name%> locator. The primary statistics are:

| Statistic                | Description                                                                   |
|--------------------------|-------------------------------------------------------------------------------|
| `ENDPOINTS_KNOWN`        | Number of servers this locator knows about.                                   |
| `KNOWN_LOCATORS`         | Number of locators known to this locator.                                     |
| `REQUEST_TIME`           | Time, measured in nanoseconds, spent processing server location requests.     |
| `REQUESTS_IN_PROGRESS`   | The number of location requests currently being processed by the thread pool. |
| `REQUESTS_TO_LOCATOR`    | Number of requests this locator has received from clients.                    |
| `RESPONSE_TIME`          | Time, measured in nanoseconds, spent sending location responses to clients.   |
| `RESPONSES_FROM_LOCATOR` | Number of responses this locator has sent to clients.                         |
| `SERVER_LOAD_UPDATES`    | Total number of times a server load update has been received.                 |

## <a id="LuceneStats" class="no-quick-link"></a>Lucene Indexes (LuceneIndexStats)

These statistics quantify the use of Lucene indexes. The primary statistics are:

| Statistic             | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|-----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `queryExecutions`         | The number of Lucene queries executed on this member.    |
| `queryExecutionTime`         | The amount of time in nanoseconds spent executing Lucene queries.    |
| `queryExecutionsInProgress`  | The number of query executions currently in progress.    |
| `queryExecutionTotalHits`  | The total number of documents returned by query executions.    |
| `repositoryQueryExecutions`  | The number of Lucene repository queries executed on this member.    |
| `repositoryQueryExecutionTime`  | The amount of time in nanoseconds spent executing Lucene repository queries.    |
| `repositoryQueryExecutionsInProgress`  | The number of repository query executions currently in progress.    |
| `repositoryQueryExecutionTotalHits`  | The total number of documents returned by repository query executions.    |
| `updates`  | The number of Lucene index documents added or removed on this member.    |
| `updateTime`  | The amount of time in nanoseconds spent adding or removing documents from the index.    |
| `updatesInProgress`  | The number of index updates in progress.    |
| `commits`  | The number of Lucene index commits on this member.    |
| `commitTime`  | The amount of time in nanoseconds spent in Lucene index commits.    |
| `commitsInProgress`  | The number of Lucene index commits in progress.    |
| `documents`  | The number of documents in the index.    |

## <a id="topic_ohc_tjk_w5" class="no-quick-link"></a>Off-Heap (OffHeapMemoryStats)

These statistics quantify the use of off-heap memory. The primary statistics are:

| Statistic             | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|-----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `defragmentations`         | The total number of times the off-heap memory manager has invoked the defragmentation algorithm on the off-heap memory space.                                                                                                                                                                                                                                                                                                                                                                                                       |
| `defragmentationsInProgress` | The number of defragmentation operations currently in progress.                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `defragmentationTime` | The total number of nanoseconds spent running the defragmentation algorithm on off-heap memory space fragments.                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `fragmentation`       | This statistic gives an indication of the level of external fragmentation in the off-heap memory space by providing a ratio of the current number of fragments of free space to the largest number of fragments that could be formed from that free space. It is expressed as a percentage; the higher this value, the more fragmented the free space currently is. This statistic is 0 if the memory manager has never run its defragmentation algorithm on the off-heap space, and it is recalculated after each defragmentation. |
| `fragments`           | The current number of fragments of free off-heap memory. This statistic is 0 if no defragmentation has ever been done, and it is updated after each defragmentation.                                                                                                                                                                                                                                                                                                                                                                |
| `freeMemory`          | The number of bytes of off-heap memory that are not currently allocated.                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `largestFragment`     | The number of bytes in the largest fragment of memory found by the last run of the defragmentation algorithm. This statistic is updated after each defragmentation.                                                                                                                                                                                                                                                                                                                                                                 |
| `maxMemory`           | The number of bytes of off-heap memory initially declared.                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `objects`             | The number of objects currently stored in off-heap memory.                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `reads`               | The total number of reads of objects that are stored in off-heap memory.                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `usedMemory`          | The number of bytes of off-heap memory currently used for region values.                                                                                                                                                                                                                                                                                                                                                                                                                                                            |

## <a id="section_923B28F01BC3416786D3AFBD87F22A5E" class="no-quick-link"></a>Operating System Statistics - Linux

Operating system statistics are available only for Linux operating systems.

## Linux Process Performance (LinuxProcessStats)

Operating system statistics on the member’s process. The primary statistics are:

| Statistic   | Description                                         |
|-------------|-----------------------------------------------------|
| `imageSize` | Size, in megabytes, of the process's image.         |
| `rssSize`   | Size, in megabytes, of the process's resident size. |

## Linux Operating System (LinuxSystemStats)

Operating system statistics on the member’s machine. These can be used to determine total cpu,
memory, and disk usage on the machine. The primary statistics are:

| Statistic         | Description                                                                                                                                                                                                                                                                                                                               |
|-------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `allocatedSwap`   | Number of megabytes of swap space that have actually been written to. Swap space must be reserved before it can be allocated.                                                                                                                                                                                                             |
| `bufferMemory`    | Number of megabytes of memory allocated to buffers.                                                                                                                                                                                                                                                                                       |
| `contextSwitches` | Total number of context switches from one thread to another on the computer. Thread switches can occur either inside of a single process or across processes. A thread switch may be caused either by one thread asking another for information, or by a thread being preempted by another, higher priority thread becoming ready to run. |
| `cpuActive`       | Percentage of the total available time that has been used in a non-idle state.                                                                                                                                                                                                                                                            |
| `cpuIdle`         | Percentage of the total available time that has been spent sleeping.                                                                                                                                                                                                                                                                      |
| `cpuNice`         | Percentage of the total available time that has been used to execute user code in processes with low priority.                                                                                                                                                                                                                            |
| `cpus`            | Number of online CPUs (items) on the local machine.                                                                                                                                                                                                                                                                                       |
| `cpuSystem`       | Percentage of the total available time that has been used to execute system (that is, kernel) code.                                                                                                                                                                                                                                       |
| `cpuUser`         | Percentage of the total available time that has been used to execute user code.                                                                                                                                                                                                                                                           |
| `freeMemory`      | Number of megabytes of unused memory on the machine.                                                                                                                                                                                                                                                                                      |
| `loadAverage1`    | Average number of threads in the run queue or waiting for disk I/O over the last minute.                                                                                                                                                                                                                                                  |
| `loadAverage15`   | Average number of threads in the run queue or waiting for disk I/O over the last fifteen minutes.                                                                                                                                                                                                                                         |
| `loadAverage5`    | Average number of threads in the run queue or waiting for disk I/O over the last five minutes.                                                                                                                                                                                                                                            |
| `loopbackBytes`   | Number of network bytes sent (or received) on the loopback interface.                                                                                                                                                                                                                                                                     |
| `loopbackPackets` | Number of network packets sent (or received) on the loopback interface.                                                                                                                                                                                                                                                                   |
| `pagesPagedIn`    | Total number of pages that have been brought into memory from disk by the operating system's memory manager.                                                                                                                                                                                                                              |
| `pagesPagedOut`   | Total number of pages that have been flushed from memory to disk by the operating system's memory manager.                                                                                                                                                                                                                                |
| `pagesSwappedIn`  | Total number of swap pages that have been read in from disk by the operating system's memory manager.                                                                                                                                                                                                                                     |
| `pagesSwappedOut` | Total number of swap pages that have been written out to disk by the operating system's memory manager.                                                                                                                                                                                                                                   |
| `physicalMemory`  | Actual amount of total physical memory on the machine.                                                                                                                                                                                                                                                                                    |
| `processCreates`  | The total number of times a process (operation) has been created.                                                                                                                                                                                                                                                                         |
| `processes`       | Number of processes in the computer at the time of data collection. Notice that this is an instantaneous count, not an average over the time interval. Each process represents the running of a program.                                                                                                                                  |
| `recvBytes`       | Total number of network bytes received (excluding loopback).                                                                                                                                                                                                                                                                              |
| `recvDrops`       | Total number network receives (packets) dropped.                                                                                                                                                                                                                                                                                          |
| `recvErrors`      | Total number of network receive errors.                                                                                                                                                                                                                                                                                                   |
| `recvPackets`     | Total number of network packets received (excluding loopback).                                                                                                                                                                                                                                                                            |
| `sharedMemory`    | Number of megabytes of shared memory on the machine.                                                                                                                                                                                                                                                                                      |
| `unallocatedSwap` | Number of megabytes of swap space that have not been allocated.                                                                                                                                                                                                                                                                           |
| `xmitBytes`       | Total number of network bytes transmitted (excluding loopback).                                                                                                                                                                                                                                                                           |
| `xmitCollisions`  | Total number of network transmit collisions.                                                                                                                                                                                                                                                                                              |
| `xmitDrops`       | Total number of network transmits (packets) dropped.                                                                                                                                                                                                                                                                                      |
| `xmitErrors`      | Total number of network transmit errors.                                                                                                                                                                                                                                                                                                  |
| `xmitPackets`     | Total number of network packets transmitted (excluding loopback).                                                                                                                                                                                                                                                                          |

<a id="section_35AC170770C944C3A336D9AEC2D2F7C5"></a>

# Partitioned Regions (PartitionedRegion&lt;partitioned\_region\_name&gt;Statistics)

**Partitioned Region Statistics on Region Operations**

These statistics track the standard region operations executed in the member. Operations can originate locally or in a request from a remote member.

**Note:**
Unsuccessful operations are not counted in these statistics.

The primary statistics are:

| Statistic                      | Description                                                                                                                                                                                                                             |
|--------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `containsKeyCompleted`         | Number of successful containsKey operations in this member.                                                                                                                                                                             |
| `containsKeyOpsRetried`        | Number of containsKey or containsValueForKey operations retried due to failures. This stat counts each retried operation only once, even if it requires multiple retries.                                                               |
| `containsKeyRetries`           | Total number of times containsKey or containsValueForKey operations were retried. If multiple retries are required on a single operation, this stat counts them all.                                                                    |
| `containsKeyTime`              | Total time, in nanoseconds, the member spent doing containsKey operations in this member.                                                                                                                                               |
| `containsValueForKeyCompleted` | Number of successful containsValueForKey operations in this member.                                                                                                                                                                     |
| `containsValueForKeyTime`      | Total time, in nanoseconds, the member spent doing containsValueForKey operations in this member.                                                                                                                                       |
| `createOpsRetried`             | Number of create operations retried due to failures. This stat counts each retried operation only once, even if it requires multiple retries.                                                                                           |
| `createRetries`                | Total number of times create operations were retried. If multiple retries are required on a single operation, this stat counts them all.                                                                                                |
| `createsCompleted`             | Number of successful create operations in this member.                                                                                                                                                                                  |
| `createTime`                   | Total time, in nanoseconds, the member spent doing create operations in this member.                                                                                                                                                    |
| `destroyOpsRetried`            | Number of destroy operations retried due to failures. This stat counts each retried operation only once, even if it requires multiple retries.                                                                                          |
| `destroyRetries`               | Total number of times destroy operations were retried. If multiple retries are required on a single operation, this stat counts them all.                                                                                               |
| `destroysCompleted`            | Number of successful destroy operations in this member.                                                                                                                                                                                 |
| `destroyTime`                  | Total time, in nanoseconds, the member spent doing destroy operations in this member.                                                                                                                                                   |
| `getEntriesCompleted`          | Number of get entry operations completed.                                                                                                                                                                                               |
| `getEntriesTime`               | Total time, in nanoseconds, spent performing get entry operations.                                                                                                                                                                      |
| `getOpsRetried`                | Number of get operations retried due to failures. This stat counts each retried operation only once, even if it requires multiple retries.                                                                                              |
| `getRetries`                   | Total number of times get operations were retried. If multiple retries are required on a single operation, this stat counts them all.                                                                                                   |
| `getsCompleted`                | Number of successful get operations in this member.                                                                                                                                                                                     |
| `getTime`                      | Total time, in nanoseconds, the member spent doing get operations in this member.                                                                                                                                                       |
| `invalidateOpsRetried`         | Number of invalidate operations retried due to failures. This stat counts each retried operation only once, even if it requires multiple retries.                                                                                       |
| `invalidateRetries`            | Total number of times invalidate operations were retried. If multiple retries are required on a single operation, this stat counts them all.                                                                                            |
| `invalidatesCompleted`         | Number of successful invalidate operations in this member.                                                                                                                                                                              |
| `invalidateTime`               | Total time, in nanoseconds, the member spent doing invalidate operations in this member.                                                                                                                                                |
| `putOpsRetried`                | Number of put operations retried due to failures. This stat counts each retried operation only once, even if it requires multiple retries.                                                                                              |
| `putRetries`                   | Total number of times put operations were retried. If multiple retries are required on a single operation, this stat counts them all.                                                                                                   |
| `putsCompleted`                | Number of successful put operations in this member.                                                                                                                                                                                     |
| `putTime`                      | Total time, in nanoseconds, the member spent doing put operations in this member.                                                                                                                                                       |
| `replyWaitMaxTime`             | Longest amount of time, in milliseconds, taken to write a message and receive a reply before a forced disconnect occurs. This stat is always active regardless of the setting of the enable-time-statistics gemfire.properties setting. |
| `sentMessageMaxTime`           | Longest amount of time, in milliseconds, taken to write a message to the network before a forced disconnect occurs. This stat is always active regardless of the setting of the enable-time-statistics gemfire.properties setting.      |

## Partitioned Region Statistics on Partition Messages

**Note:**
Unsuccessful operations and local operations—those that originated in this member—are not counted in these statistics.

The primary statistics are:

| Statistic                         | Description                                                                                                               |
|-----------------------------------|---------------------------------------------------------------------------------------------------------------------------|
| `partitionMessagesProcessed`      | Number of region operations executed in this member at the request of other data stores for the region.                   |
| `partitionMessagesProcessingTime` | Total time, in nanoseconds, the member spent executing region operations in this member at the request of remote members. |
| `partitionMessagesReceived`       | Number of remote requests this member received for any region operation in this member.                                   |
| `partitionMessagesSent`           | Number of requests this member sent for any region operation on a remote member.                                          |
| `prMetaDataSentCount`             | Number of times meta data refresh sent on client's request. Used with pr-single-hop functionality.                        |

## Partitioned Region Statistics on Data Entry Caching

These statistics track the pattern of data entry distribution among the buckets in this member. The primary statistics are:

| Statistic                           | Description                                                                                                                                                     |
|-------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `avgBucketSize`                     | Average number of entries for each of the primary buckets in this member.                                                                                       |
| `bucketCount`                       | Total number of buckets in this member.                                                                                                                         |
| `bucketCreationsCompleted`          | Number of logical bucket creation operations requests completed after which the bucket was created.                                                             |
| `bucketCreationsDiscoveryCompleted` | Number of bucket creation operations requests completed after which it was discovered that the bucket was created by another member.                            |
| `bucketCreationsDiscoveryTime`      | Total time, in nanoseconds, spent waiting for bucket creation requests to complete after which it was discovered that the bucket was created by another member. |
| `bucketCreationsTime`               | Total time, in nanoseconds, spent waiting for bucket creation requests to complete after which the bucket was created.                                          |
| `dataStoreBytesInUse`               | The number of bytes stored in this cache for the named partitioned region.                                                                                      |
| `dataStoreEntryCount`               | Total number of entries in all the buckets in this member.                                                                                                      |
| `maxBucketSize`                     | Largest number of entries in the primary buckets in this member.                                                                                                |
| `minBucketSize`                     | Smallest number of entries in the primary buckets in this member.                                                                                               |
| `totalBucketSize`                   | Total number of entries in the primary buckets.                                                                                                                 |

## Partitioned Region Statistics on Redundancy

These statistics track status on partitioned region data copies. The primary statistics are:

<table>
<colgroup>
<col width="50%" />
<col width="50%" />
</colgroup>
<thead>
<tr class="header">
<th>Statistic</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code class="ph codeph">actualRedundantCopies</code></td>
<td>The least current redundant number of copies for any data in this partitioned region (there may be some data that is fully redundant, but some data will have only this number of copies). This value may drop when a data store is lost or rise when a data store is added. This value may drop temporarily during partitioned region creation or destruction and then rise again.
<div class="note note">
<b>Note:</b>
<p>If this value remains low, then partitioned region data is at risk and may be lost if another data store is lost.</p>
</div>
A healthy partitioned region will maintain a value equal to configuredRedundantCopies. The user should add one or more data stores if the value remains low. High-availability may result in a brief fluctuation, but it should return to a value equal to configuredRedundantCopies if there are sufficient data stores present (that is, terminating one data store will cause its data to fail over to another data store).</td>
</tr>
<tr>
<td><code class="ph codeph">configuredRedundantCopies</code></td>
<td>This is equivalent to the PartitionAttributes.getRedundantCopies configuration that was used to create this partitioned region. This value remains unchanged for a given partitioned region.</td>
</tr>
<tr>
<td><code class="ph codeph">lowRedundancyBucketCount</code></td>
<td>The number of buckets in this partitioned region that currently have fewer copies than the configuredRedundantCopies. This value may rise above zero when a data store is lost and return to zero when one or more data stores are added. This value may rise temporarily during partitioned region creation or destruction and then return to zero.
<div class="note note">
<b>Note:</b>
<p>If this value remains above zero, then partitioned region data is at risk and may be lost if another data store is lost.</p>
</div>
This value will be above zero whenever actualRedundantCopies is less than configuredRedundantCopies. A healthy partitioned region will maintain a value of zero. The user should add one or more datstores if this value remains above zero. High-availability may result in a brief fluctuation, but it should return to zero if there are sufficient data stores present (that is, terminating one data store will cause its data to fail over to another data store).</td>
</tr>
</tbody>
</table>

## <a id="section_374FBD92A3B74F6FA08AA23047929B4F" class="no-quick-link"></a>Region Entry Eviction – Count-Based (LRUStatistics)

The entry-count least recently used (LRU) eviction mechanism records these LRUStatistics. The primary statistics are:

| Statistic          | Description                                                                |
|--------------------|----------------------------------------------------------------------------|
| `entriesAllowed`   | Number of entries allowed in this region.                                  |
| `entryCount`       | Number of entries in this region.                                          |
| `lruDestroys`      | Number of entry destroys triggered by an LRU.                              |
| `lruDestroysLimit` | Maximum number of entry destroys triggered by an LRU before a scan occurs. |
| `lruEvaluations`   | Number of entries evaluated during LRU operations                          |
| `lruEvictions`     | Number of total entry evictions triggered by an LRU.                       |
| `lruGreedyReturns` | Number of non-LRU entries evicted during LRU operations.                   |

## <a id="section_3B74F6FA08A374FBD92AA23047929B4F" class="no-quick-link"></a>Region Entry Eviction – Heap-based eviction (HeapLRUStatistics)

The least recently used (LRU) mechanism that keeps the JVM heap size under a given set point records these LRUStatistics. The primary statistics are:

| Statistic          | Description                                                                |
|--------------------|----------------------------------------------------------------------------|
| `entryBites`       | The amount of memory currently used by regions configured for eviction.    |
| `lruDestroys`      | Number of entry destroys triggered by an LRU.                              |
| `lruEvaluations`   | Number of entries evaluated during LRU operations                          |
| `lruEvictions`     | Total number of entry evictions triggered by an LRU.                       |
| `lruGreedyReturns` | Number of non-LRU entries evicted during LRU operations.                   |

## <a id="section_3D2AA2BCE5B6485699A7B6ADD1C49FF7" class="no-quick-link"></a>Region Entry Eviction – Size-based (MemLRUStatistics)

The least recently used (LRU) mechanism that keeps the size of a region under a given set point records these MemLRUStatistics. The primary statistics are:

| Statistic          | Description                                                             |
|--------------------|-------------------------------------------------------------------------|
| `byteCount`        | Number of bytes in region                                               |
| `bytesAllowed`     | Total number of bytes allowed in this region.                           |
| `lruDestroys`      | Number of entry destroys triggered by LRU.                              |
| `lruEvaluations`   | Number of entries evaluated during LRU operations.                      |
| `lruEvictions`     | Total number of entry evictions triggered by LRU.                       |
| `lruGreedyReturns` | Number of non-LRU entries evicted during LRU operations.                |

## <a id="section_5362EF9AECBC48D69475697109ABEDFA" class="no-quick-link"></a>Server Notifications for All Clients (CacheClientNotifierStatistics)

Statistics regarding cache server operations sent to all clients.

| Statistic                            | Description                                                                               |
|--------------------------------------|-------------------------------------------------------------------------------------------|
| `clientHealthMonitorRegister`        | Number of clients that register.                                                          |
| `clientHealthMonitorUnRegister`      | Number of clients that unregister.                                                        |
| `clientRegistrations`                | Number of clients (operations) that have registered for updates.                          |
| `clientRegistrationTime`             | Total time, in nanoseconds, spent doing client registrations.                             |
| `durableReconnectionCount`           | Number of times the same durable client connects to the server.                           |
| `eventProcessingTime`                | Total time, in nanoseconds, spent by the cache client notifier processing events.         |
| `events`                             | Number of events (operations) processed by the cache client notifier.                     |
| `eventsEnqueuedWhileClientAwayCount` | Number of events enqueued for a durable client.                                           |
| `queueDroppedCount`                  | Number of times the client subscription queue for a particular durable client is dropped. |

## <a id="section_E03865F509E543D9B8F9462B3DA6255E" class="no-quick-link"></a>Server Notifications for Single Client (CacheClientProxyStatistics)

Statistics regarding cache server operations and cache server client notifications sent to a single client.

| Statistic                        | Description                                                                                                                                                                          |
|----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `messageProcessingTime`          | Total time, in nanoseconds, spent sending messages to clients.                                                                                                                       |
| `messageQueueSize`               | Size of the operations subscription queue.                                                                                                                                           |
| `messagesFailedQueued`           | Number of client operations messages attempted but failed to be added to the subscription queue.                                                                                     |
| `messagesNotQueuedConflated`     | Number of client operations messages received but not added to the subscription queue because the queue already contains a message with the message's key.                           |
| `messagesNotQueuedNotInterested` | Number of client operations messages received but not added to the subscription queue because the client represented by the receiving proxy was not interested in the message's key. |
| `messagesNotQueuedOriginator`    | Number of client operations messages received but not added to the subscription queue, because the receiving proxy represents the client originating the message.                    |
| `messagesProcessed`              | Number of client operations messages removed from the subscription queue and sent.                                                                                                   |
| `messagesQueued`                 | Number of client operations messages added to the subscription queue.                                                                                                                |
| `messagesReceived`               | Number of client operations messages received.                                                                                                                                       |

## <a id="section_3AB1C0AA55014163A2BBF68E13D25E3A" class="no-quick-link"></a>Server-to-Client Messaging Performance (ClientSubscriptionStats)

Collected in the server, these statistics track event messages queued on the server to be sent to the client. The statistics are gathered for each client subscription queue and are incremental for the lifetime of the queue. The event messages are referred to as events in these statistics. The primary statistics are:

| Statistic             | Description                                                                                                                                                                                                                                |
|-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `eventsConflated`     | Number of events conflated. If this is high, the server's dispatcher may be running slowly. This could be caused by one or more slow client.s causing blocking in their subscription queues.                                               |
| `eventsExpired`       | Number of events that have expired while in the subscription queue. If this is high on a secondary server, it might be that the MessageSyncInterval on the primary is set too high, causing the secondary to fall behind in event cleanup. |
| `eventsQueued`        | Number of events placed in the subscription queue.                                                                                                                                                                                         |
| `eventsRemoved`       | Number of events removed from the subscription queue.                                                                                                                                                                                      |
| `eventsRemovedByQrm`  | Number of events removed based on a message sent from the primary. Only incremented while the subscription queue is in a secondary server.                                                                                                 |
| `eventsTaken`         | Number of events taken from the subscription queue.                                                                                                                                                                                        |
| `numSequenceViolated` | Number of events that had sequence ID less than or equal to the last sequence ID. The system assumes these events are duplicates and does not add them to the subscription queue. A non-zero value may indicate message loss.              |
| `numVoidRemovals`     | Number of events which were supposed to be destroyed from the subscription queue through remove but were removed by some other operation like conflation or expiration.                                                                    |
| `threadIdentifiers`   | Number of ThreadIdentifier objects (units) in the subscription queue.                                                                                                                                                                      |

## <a id="section_55F3AF6413474317902845EE4996CC21" class="no-quick-link"></a>Statistics Collection (StatSampler)

These statistics show how much time is spent collecting statistics. The primary statistics are:

| Statistic     | Description                                    |
|---------------|------------------------------------------------|
| `sampleCount` | Total number of samples taken by this sampler. |
| `sampleTime`  | Total amount of time spent taking samples.     |
