<% 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.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `previouslySeenEvents`           | The number of previously seen events ignored by the event tracker.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `putAlls`                        | The total number of times a map is added or replaced in this cache as a result of a local operation. Note, this only counts putAlls done explicitly on this cache; it does not count updates pushed from other caches.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `putallTime`                     | Total time spent replacing a map in this cache as a result of a local operation. This includes synchronizing on the map, invoking cache callbacks, sending messages to other caches and waiting for responses (if required).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `puts`                           | The total number of times an entry is added or replaced in this cache as a result of a local operation (put(), create(), or get() which results in load, netsearch, or netloading a value). Note, this only counts puts done explicitly on this cache; it does not count updates pushed from other caches.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `putTime`                        | Total time spent adding or replacing an entry in this cache as a result of a local operation. This includes synchronizing on the map, invoking cache callbacks, sending messages to other caches, and waiting for responses (if required).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `queryExecutions`                | Total number of times some query has been executed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `queryExecutionTime`             | Total time spent executing queries.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `regions`                        | The current number of regions in the cache.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `replicatedTombstonesSize`       | The approximate number of bytes that are currently consumed by tombstones in replicated or partitioned regions. See [Consistency for Region Updates](../developing/distributed_regions/region_entry_versions.html#topic_CF2798D3E12647F182C2CEC4A46E2045).                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `tombstoneCount`                 | The total number of tombstone entries created for performing concurrency checks. See [Consistency for Region Updates](../developing/distributed_regions/region_entry_versions.html#topic_CF2798D3E12647F182C2CEC4A46E2045).                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `tombstoneGCCount`               | The total number of tombstone garbage collection cycles that a member has performed. See [Consistency for Region Updates](../developing/distributed_regions/region_entry_versions.html#topic_CF2798D3E12647F182C2CEC4A46E2045).                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `txCommitChanges`                | Total number of changes made by committed transactions.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `txCommits`                      | Total number of times a transaction commit has succeeded.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `txCommitTime`                   | The total amount of time, in nanoseconds, spent doing successful transaction commits.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `txConflictCheckTime`            | The total amount of time, in nanoseconds, spent doing conflict checks during transaction commit.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `txFailedLifeTime`               | The total amount of time, in nanoseconds, spent in a transaction before a failed commit. The time measured starts at transaction begin and ends when commit is called.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `txFailureChanges`               | Total number of changes lost by failed transactions.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `txFailures`                     | Total number of times a transaction commit has failed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `txFailureTime`                  | The total amount of time, in nanoseconds, spent doing failed transaction commits.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `txRollbackChanges`              | Total number of changes lost by explicit transaction rollbacks.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `txRollbackLifeTime`             | The total amount of time, in nanoseconds, spent in a transaction before an explicit rollback. The time measured starts at transaction begin and ends when rollback is called.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `txRollbacks`                    | Total number of times a transaction has been explicitly rolled back.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `txRollbackTime`                 | The total amount of time, in nanoseconds, spent doing explicit transaction rollbacks.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `txSuccessLifeTime`              | The total amount of time, in nanoseconds, spent in a transaction before a successful commit. The time measured starts at transaction begin and ends when commit is called.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `updates`                        | The total number of updates originating remotely that have been applied to this cache.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `updateTime`                     | Total time spent performing an update.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |

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

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

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

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

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

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

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

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

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

The primary statistics of ClientSendStats are:

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

The primary statistics are:

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

## Distribution Statistics Related to Slow Receivers

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

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

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

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

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

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

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

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

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

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

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

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

## Query-Independent Statistics on Indexes

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

## Query-Dependent Statistics on Indexes

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

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

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

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

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

## JVM Java Runtime (VMStats)

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

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

## JVM Garbage Collection (VMGCStats)

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

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

## JVM Garbage Collector Memory Pools (VMMemoryPoolStats)

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

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

## JVM Heap Memory Usage (VMMemoryUsageStats)

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

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

## JVM Thread stats (VMThreadStats)

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

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

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

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

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

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

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

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

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

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

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

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

Operating system statistics are available only for Linux operating systems.

## Linux Process Performance (LinuxProcessStats)

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

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

## Linux Operating System (LinuxSystemStats)

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

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

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

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

**Partitioned Region Statistics on Region Operations**

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

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

The primary statistics are:

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

## Partitioned Region Statistics on Partition Messages

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

The primary statistics are:

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

## Partitioned Region Statistics on Data Entry Caching

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

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

## Partitioned Region Statistics on Redundancy

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

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

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

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

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

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

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

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

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

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

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

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

Statistics regarding cache server operations sent to all clients.

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

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

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

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

## <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.     |
