<% 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.                                                                            |
| `CQS_STOPPED`                    | Number of CQ operations stopped.                                                                                       |
| `CQS_CLOSED`                     | Number of CQ operations closed.                                                                                        |
| `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.     |
