# Ignite by JMX ## Overview Official JMX Template for Apache Ignite computing platform. This template is based on the original template developed by Igor Akkuratov, Senior Engineer at GridGain Systems and Apache Ignite Contributor. ## Requirements Zabbix version: 7.0 and higher. ## Tested versions This template has been tested on: - Ignite 2.9.0 ## Configuration > Zabbix should be configured according to the instructions in the [Templates out of the box](https://www.zabbix.com/documentation/7.0/manual/config/templates_out_of_the_box) section. ## Setup This template works with standalone and cluster instances. Metrics are collected by JMX. All metrics are discoverable. 1. Enable and configure JMX access to Apache Ignite. See documentation for [instructions](https://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html). Current JMX tree hierarchy contains classloader by default. Add the following jvm option `-DIGNITE_MBEAN_APPEND_CLASS_LOADER_ID=false`to will exclude one level with Classloader name. You can configure Cache and Data Region metrics which you want using [official guide](https://ignite.apache.org/docs/latest/monitoring-metrics/configuring-metrics). 2. Set the user name and password in host macros {$IGNITE.USER} and {$IGNITE.PASSWORD}. ### Macros used |Name|Description|Default| |----|-----------|-------| |{$IGNITE.PASSWORD}||``| |{$IGNITE.USER}||`zabbix`| |{$IGNITE.LLD.FILTER.THREAD.POOL.MATCHES}|

Filter of discoverable thread pools.

|`.*`| |{$IGNITE.LLD.FILTER.THREAD.POOL.NOT_MATCHES}|

Filter to exclude discovered thread pools.

|`Macro too long. Please see the template.`| |{$IGNITE.LLD.FILTER.DATA.REGION.MATCHES}|

Filter of discoverable data regions.

|`.*`| |{$IGNITE.LLD.FILTER.DATA.REGION.NOT_MATCHES}|

Filter to exclude discovered data regions.

|`^(sysMemPlc\|TxLog)$`| |{$IGNITE.LLD.FILTER.CACHE.MATCHES}|

Filter of discoverable cache groups.

|`.*`| |{$IGNITE.LLD.FILTER.CACHE.NOT_MATCHES}|

Filter to exclude discovered cache groups.

|`CHANGE_IF_NEEDED`| |{$IGNITE.THREAD.QUEUE.MAX.WARN}|

Threshold for thread pool queue size. Can be used with thread pool name as context.

|`1000`| |{$IGNITE.PME.DURATION.MAX.WARN}|

The maximum PME duration in ms for warning trigger expression.

|`10000`| |{$IGNITE.PME.DURATION.MAX.HIGH}|

The maximum PME duration in ms for high trigger expression.

|`60000`| |{$IGNITE.THREADS.COUNT.MAX.WARN}|

The maximum number of running threads for trigger expression.

|`1000`| |{$IGNITE.JOBS.QUEUE.MAX.WARN}|

The maximum number of queued jobs for trigger expression.

|`10`| |{$IGNITE.CHECKPOINT.PUSED.MAX.HIGH}|

The maximum percent of checkpoint buffer utilization for high trigger expression.

|`80`| |{$IGNITE.CHECKPOINT.PUSED.MAX.WARN}|

The maximum percent of checkpoint buffer utilization for warning trigger expression.

|`66`| |{$IGNITE.DATA.REGION.PUSED.MAX.HIGH}|

The maximum percent of data region utilization for high trigger expression.

|`90`| |{$IGNITE.DATA.REGION.PUSED.MAX.WARN}|

The maximum percent of data region utilization for warning trigger expression.

|`80`| ### LLD rule Ignite kernal metrics |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Ignite kernal metrics||JMX agent|jmx.discovery[beans,"org.apache:group=Kernal,name=IgniteKernal,*"]

**Preprocessing**

| ### Item prototypes for Ignite kernal metrics |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Ignite [{#JMXIGNITEINSTANCENAME}]: Uptime|

Uptime of Ignite instance.

|JMX agent|jmx["{#JMXOBJ}",UpTime]

**Preprocessing**

| |Ignite [{#JMXIGNITEINSTANCENAME}]: Version|

Version of Ignite instance.

|JMX agent|jmx["{#JMXOBJ}",FullVersion]

**Preprocessing**

| |Ignite [{#JMXIGNITEINSTANCENAME}]: Local node ID|

Unique identifier for this node within grid.

|JMX agent|jmx["{#JMXOBJ}",LocalNodeId]

**Preprocessing**

| ### Trigger prototypes for Ignite kernal metrics |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |Ignite [{#JMXIGNITEINSTANCENAME}]: has been restarted|

Uptime is less than 10 minutes.

|`last(/Ignite by JMX/jmx["{#JMXOBJ}",UpTime])<10m`|Info|**Manual close**: Yes| |Ignite [{#JMXIGNITEINSTANCENAME}]: Failed to fetch info data|

Zabbix has not received data for items for the last 10 minutes.

|`nodata(/Ignite by JMX/jmx["{#JMXOBJ}",UpTime],10m)=1`|Warning|**Manual close**: Yes| |Ignite [{#JMXIGNITEINSTANCENAME}]: Version has changed|

Ignite [{#JMXIGNITEINSTANCENAME}] version has changed. Acknowledge to close the problem manually.

|`last(/Ignite by JMX/jmx["{#JMXOBJ}",FullVersion],#1)<>last(/Ignite by JMX/jmx["{#JMXOBJ}",FullVersion],#2) and length(last(/Ignite by JMX/jmx["{#JMXOBJ}",FullVersion]))>0`|Info|**Manual close**: Yes| ### LLD rule Cluster metrics |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Cluster metrics||JMX agent|jmx.discovery[beans,"org.apache:group=Kernal,name=ClusterMetricsMXBeanImpl,*"]

**Preprocessing**

| ### Item prototypes for Cluster metrics |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Ignite [{#JMXIGNITEINSTANCENAME}]: Nodes, Baseline|

Total baseline nodes that are registered in the baseline topology.

|JMX agent|jmx["{#JMXOBJ}",TotalBaselineNodes]

**Preprocessing**

| |Ignite [{#JMXIGNITEINSTANCENAME}]: Nodes, Active baseline|

The number of nodes that are currently active in the baseline topology.

|JMX agent|jmx["{#JMXOBJ}",ActiveBaselineNodes]

**Preprocessing**

| |Ignite [{#JMXIGNITEINSTANCENAME}]: Nodes, Client|

The number of client nodes in the cluster.

|JMX agent|jmx["{#JMXOBJ}",TotalClientNodes]

**Preprocessing**

| |Ignite [{#JMXIGNITEINSTANCENAME}]: Nodes, total|

Total number of nodes.

|JMX agent|jmx["{#JMXOBJ}",TotalNodes]

**Preprocessing**

| |Ignite [{#JMXIGNITEINSTANCENAME}]: Nodes, Server|

The number of server nodes in the cluster.

|JMX agent|jmx["{#JMXOBJ}",TotalServerNodes]

**Preprocessing**

| ### Trigger prototypes for Cluster metrics |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |Ignite [{#JMXIGNITEINSTANCENAME}]: Server node left the topology|

One or more server node left the topology. Acknowledge to close the problem manually.

|`change(/Ignite by JMX/jmx["{#JMXOBJ}",TotalServerNodes])<0`|Warning|**Manual close**: Yes| |Ignite [{#JMXIGNITEINSTANCENAME}]: Server node added to the topology|

One or more server node added to the topology. Acknowledge to close the problem manually.

|`change(/Ignite by JMX/jmx["{#JMXOBJ}",TotalServerNodes])>0`|Info|**Manual close**: Yes| |Ignite [{#JMXIGNITEINSTANCENAME}]: There are nodes is not in topology|

One or more server node left the topology. Acknowledge to close the problem manually.

|`last(/Ignite by JMX/jmx["{#JMXOBJ}",TotalServerNodes])>last(/Ignite by JMX/jmx["{#JMXOBJ}",TotalBaselineNodes])`|Info|**Manual close**: Yes| ### LLD rule Local node metrics |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Local node metrics||JMX agent|jmx.discovery[beans,"org.apache:group=Kernal,name=ClusterLocalNodeMetricsMXBeanImpl,*"]

**Preprocessing**

| ### Item prototypes for Local node metrics |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Ignite [{#JMXIGNITEINSTANCENAME}]: Jobs cancelled, current|

Number of cancelled jobs that are still running.

|JMX agent|jmx["{#JMXOBJ}",CurrentCancelledJobs]| |Ignite [{#JMXIGNITEINSTANCENAME}]: Jobs rejected, current|

Number of jobs rejected after more recent collision resolution operation.

|JMX agent|jmx["{#JMXOBJ}",CurrentRejectedJobs]| |Ignite [{#JMXIGNITEINSTANCENAME}]: Jobs waiting, current|

Number of queued jobs currently waiting to be executed.

|JMX agent|jmx["{#JMXOBJ}",CurrentWaitingJobs]| |Ignite [{#JMXIGNITEINSTANCENAME}]: Jobs active, current|

Number of currently active jobs concurrently executing on the node.

|JMX agent|jmx["{#JMXOBJ}",CurrentActiveJobs]| |Ignite [{#JMXIGNITEINSTANCENAME}]: Jobs executed, rate|

Total number of jobs handled by the node per second.

|JMX agent|jmx["{#JMXOBJ}",TotalExecutedJobs]

**Preprocessing**

| |Ignite [{#JMXIGNITEINSTANCENAME}]: Jobs cancelled, rate|

Total number of jobs cancelled by the node per second.

|JMX agent|jmx["{#JMXOBJ}",TotalCancelledJobs]

**Preprocessing**

| |Ignite [{#JMXIGNITEINSTANCENAME}]: Jobs rejects, rate|

Total number of jobs this node rejects during collision resolution operations since node startup per second.

|JMX agent|jmx["{#JMXOBJ}",TotalRejectedJobs]

**Preprocessing**

| |Ignite [{#JMXIGNITEINSTANCENAME}]: PME duration, current|

Current PME duration in milliseconds.

|JMX agent|jmx["{#JMXOBJ}",CurrentPmeDuration]| |Ignite [{#JMXIGNITEINSTANCENAME}]: Threads count, current|

Current number of live threads.

|JMX agent|jmx["{#JMXOBJ}",CurrentThreadCount]| |Ignite [{#JMXIGNITEINSTANCENAME}]: Heap memory used|

Current heap size that is used for object allocation.

|JMX agent|jmx["{#JMXOBJ}",HeapMemoryUsed]| ### Trigger prototypes for Local node metrics |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |Ignite [{#JMXIGNITEINSTANCENAME}]: Number of queued jobs is too high|

Number of queued jobs is over {$IGNITE.JOBS.QUEUE.MAX.WARN}.

|`min(/Ignite by JMX/jmx["{#JMXOBJ}",CurrentWaitingJobs],15m) > {$IGNITE.JOBS.QUEUE.MAX.WARN}`|Warning|| |Ignite [{#JMXIGNITEINSTANCENAME}]: PME duration is too long|

PME duration is over {$IGNITE.PME.DURATION.MAX.WARN}ms.

|`min(/Ignite by JMX/jmx["{#JMXOBJ}",CurrentPmeDuration],5m) > {$IGNITE.PME.DURATION.MAX.WARN}`|Warning|**Depends on**:
| |Ignite [{#JMXIGNITEINSTANCENAME}]: PME duration is too long|

PME duration is over {$IGNITE.PME.DURATION.MAX.HIGH}ms. Looks like PME is hung.

|`min(/Ignite by JMX/jmx["{#JMXOBJ}",CurrentPmeDuration],5m) > {$IGNITE.PME.DURATION.MAX.HIGH}`|High|| |Ignite [{#JMXIGNITEINSTANCENAME}]: Number of running threads is too high|

Number of running threads is over {$IGNITE.THREADS.COUNT.MAX.WARN}.

|`min(/Ignite by JMX/jmx["{#JMXOBJ}",CurrentThreadCount],15m) > {$IGNITE.THREADS.COUNT.MAX.WARN}`|Warning|**Depends on**:
| ### LLD rule TCP discovery SPI |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |TCP discovery SPI||JMX agent|jmx.discovery[beans,"org.apache:group=SPIs,name=TcpDiscoverySpi,*"]

**Preprocessing**

| ### Item prototypes for TCP discovery SPI |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Ignite [{#JMXIGNITEINSTANCENAME}]: Coordinator|

Current coordinator UUID.

|JMX agent|jmx["{#JMXOBJ}",Coordinator]

**Preprocessing**

| |Ignite [{#JMXIGNITEINSTANCENAME}]: Nodes left|

Nodes left count.

|JMX agent|jmx["{#JMXOBJ}",NodesLeft]| |Ignite [{#JMXIGNITEINSTANCENAME}]: Nodes joined|

Nodes join count.

|JMX agent|jmx["{#JMXOBJ}",NodesJoined]| |Ignite [{#JMXIGNITEINSTANCENAME}]: Nodes failed|

Nodes failed count.

|JMX agent|jmx["{#JMXOBJ}",NodesFailed]| |Ignite [{#JMXIGNITEINSTANCENAME}]: Discovery message worker queue|

Message worker queue current size.

|JMX agent|jmx["{#JMXOBJ}",MessageWorkerQueueSize]| |Ignite [{#JMXIGNITEINSTANCENAME}]: Discovery reconnect, rate|

Number of times node tries to (re)establish connection to another node per second.

|JMX agent|jmx["{#JMXOBJ}",ReconnectCount]

**Preprocessing**

| |Ignite [{#JMXIGNITEINSTANCENAME}]: TotalProcessedMessages|

The number of messages received per second.

|JMX agent|jmx["{#JMXOBJ}",TotalProcessedMessages]

**Preprocessing**

| |Ignite [{#JMXIGNITEINSTANCENAME}]: Discovery messages received, rate|

The number of messages processed per second.

|JMX agent|jmx["{#JMXOBJ}",TotalReceivedMessages]

**Preprocessing**

| ### Trigger prototypes for TCP discovery SPI |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |Ignite [{#JMXIGNITEINSTANCENAME}]: Coordinator has changed|

Ignite [{#JMXIGNITEINSTANCENAME}] version has changed. Acknowledge to close the problem manually.

|`last(/Ignite by JMX/jmx["{#JMXOBJ}",Coordinator],#1)<>last(/Ignite by JMX/jmx["{#JMXOBJ}",Coordinator],#2) and length(last(/Ignite by JMX/jmx["{#JMXOBJ}",Coordinator]))>0`|Warning|**Manual close**: Yes| ### LLD rule TCP Communication SPI metrics |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |TCP Communication SPI metrics||JMX agent|jmx.discovery[beans,"org.apache:group=SPIs,name=TcpCommunicationSpi,*"]

**Preprocessing**

| ### Item prototypes for TCP Communication SPI metrics |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Ignite [{#JMXIGNITEINSTANCENAME}]: Communication outbound messages queue|

Outbound messages queue size.

|JMX agent|jmx["{#JMXOBJ}",OutboundMessagesQueueSize]| |Ignite [{#JMXIGNITEINSTANCENAME}]: Communication messages received, rate|

The number of messages received per second.

|JMX agent|jmx["{#JMXOBJ}",ReceivedMessagesCount]

**Preprocessing**

| |Ignite [{#JMXIGNITEINSTANCENAME}]: Communication messages sent, rate|

The number of messages sent per second.

|JMX agent|jmx["{#JMXOBJ}",SentMessagesCount]

**Preprocessing**

| ### LLD rule Transaction metrics |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Transaction metrics||JMX agent|jmx.discovery[beans,"org.apache:group=TransactionMetrics,name=TransactionMetricsMxBeanImpl,*"]

**Preprocessing**

| ### Item prototypes for Transaction metrics |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Ignite [{#JMXIGNITEINSTANCENAME}]: Locked keys|

The number of keys locked on the node.

|JMX agent|jmx["{#JMXOBJ}",LockedKeysNumber]| |Ignite [{#JMXIGNITEINSTANCENAME}]: Transactions owner, current|

The number of active transactions for which this node is the initiator.

|JMX agent|jmx["{#JMXOBJ}",OwnerTransactionsNumber]| |Ignite [{#JMXIGNITEINSTANCENAME}]: Transactions holding lock, current|

The number of active transactions holding at least one key lock.

|JMX agent|jmx["{#JMXOBJ}",TransactionsHoldingLockNumber]| |Ignite [{#JMXIGNITEINSTANCENAME}]: Transactions rolledback, rate|

The number of transactions which were rollback per second.

|JMX agent|jmx["{#JMXOBJ}",TransactionsRolledBackNumber]| |Ignite [{#JMXIGNITEINSTANCENAME}]: Transactions committed, rate|

The number of transactions which were committed per second.

|JMX agent|jmx["{#JMXOBJ}",TransactionsCommittedNumber]| ### LLD rule Cache metrics |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Cache metrics||JMX agent|jmx.discovery[beans,"org.apache:name=\"org.apache.ignite.internal.processors.cache.CacheLocalMetricsMXBeanImpl\",*"]

**Preprocessing**

| ### Item prototypes for Cache metrics |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Cache group [{#JMXGROUP}]: Cache gets, rate|

The number of gets to the cache per second.

|JMX agent|jmx["{#JMXOBJ}",CacheGets]

**Preprocessing**

| |Cache group [{#JMXGROUP}]: Cache puts, rate|

The number of puts to the cache per second.

|JMX agent|jmx["{#JMXOBJ}",CachePuts]

**Preprocessing**

| |Cache group [{#JMXGROUP}]: Cache removals, rate|

The number of removals from the cache per second.

|JMX agent|jmx["{#JMXOBJ}",CacheRemovals]

**Preprocessing**

| |Cache group [{#JMXGROUP}]: Cache hits, pct|

Percentage of successful hits.

|JMX agent|jmx["{#JMXOBJ}",CacheHitPercentage]| |Cache group [{#JMXGROUP}]: Cache misses, pct|

Percentage of accesses that failed to find anything.

|JMX agent|jmx["{#JMXOBJ}",CacheMissPercentage]| |Cache group [{#JMXGROUP}]: Cache transaction commits, rate|

The number of transaction commits per second.

|JMX agent|jmx["{#JMXOBJ}",CacheTxCommits]

**Preprocessing**

| |Cache group [{#JMXGROUP}]: Cache transaction rollbacks, rate|

The number of transaction rollback per second.

|JMX agent|jmx["{#JMXOBJ}",CacheTxRollbacks]

**Preprocessing**

| |Cache group [{#JMXGROUP}]: Cache size|

The number of non-null values in the cache as a long value.

|JMX agent|jmx["{#JMXOBJ}",CacheSize]| |Cache group [{#JMXGROUP}]: Cache heap entries|

The number of entries in heap memory.

|JMX agent|jmx["{#JMXOBJ}",HeapEntriesCount]

**Preprocessing**

| ### Trigger prototypes for Cache metrics |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |Cache group [{#JMXGROUP}]: There are no success transactions for cache for 5m||`min(/Ignite by JMX/jmx["{#JMXOBJ}",CacheTxRollbacks],5m)>0 and max(/Ignite by JMX/jmx["{#JMXOBJ}",CacheTxCommits],5m)=0`|Average|| |Cache group [{#JMXGROUP}]: Success transactions less than rollbacks for 5m||`min(/Ignite by JMX/jmx["{#JMXOBJ}",CacheTxRollbacks],5m) > max(/Ignite by JMX/jmx["{#JMXOBJ}",CacheTxCommits],5m)`|Warning|**Depends on**:
| |Cache group [{#JMXGROUP}]: All entries are in heap|

All entries are in heap. Possibly you use eager queries it may cause out of memory exceptions for big caches. Acknowledge to close the problem manually.

|`last(/Ignite by JMX/jmx["{#JMXOBJ}",CacheSize])=last(/Ignite by JMX/jmx["{#JMXOBJ}",HeapEntriesCount])`|Info|**Manual close**: Yes| ### LLD rule Data region metrics |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Data region metrics||JMX agent|jmx.discovery[beans,"org.apache:group=DataRegionMetrics,*"]

**Preprocessing**

| ### Item prototypes for Data region metrics |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Data region {#JMXNAME}: Allocation, rate|

Allocation rate (pages per second) averaged across rateTimeInternal.

|JMX agent|jmx["{#JMXOBJ}",AllocationRate]| |Data region {#JMXNAME}: Allocated, bytes|

Total size of memory allocated in bytes.

|JMX agent|jmx["{#JMXOBJ}",TotalAllocatedSize]| |Data region {#JMXNAME}: Dirty pages|

Number of pages in memory not yet synchronized with persistent storage.

|JMX agent|jmx["{#JMXOBJ}",DirtyPages]| |Data region {#JMXNAME}: Eviction, rate|

Eviction rate (pages per second).

|JMX agent|jmx["{#JMXOBJ}",EvictionRate]| |Data region {#JMXNAME}: Size, max|

Maximum memory region size defined by its data region.

|JMX agent|jmx["{#JMXOBJ}",MaxSize]| |Data region {#JMXNAME}: Offheap size|

Offheap size in bytes.

|JMX agent|jmx["{#JMXOBJ}",OffHeapSize]| |Data region {#JMXNAME}: Offheap used size|

Total used offheap size in bytes.

|JMX agent|jmx["{#JMXOBJ}",OffheapUsedSize]| |Data region {#JMXNAME}: Pages fill factor|

The percentage of the used space.

|JMX agent|jmx["{#JMXOBJ}",PagesFillFactor]| |Data region {#JMXNAME}: Pages replace, rate|

Rate at which pages in memory are replaced with pages from persistent storage (pages per second).

|JMX agent|jmx["{#JMXOBJ}",PagesReplaceRate]| |Data region {#JMXNAME}: Used checkpoint buffer size|

Used checkpoint buffer size in bytes.

|JMX agent|jmx["{#JMXOBJ}",UsedCheckpointBufferSize]| |Data region {#JMXNAME}: Checkpoint buffer size|

Total size in bytes for checkpoint buffer.

|JMX agent|jmx["{#JMXOBJ}",CheckpointBufferSize]| ### Trigger prototypes for Data region metrics |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |Data region {#JMXNAME}: Node started to evict pages|

You store more data than region can accommodate. Data started to move to disk it can make requests work slower. Acknowledge to close the problem manually.

|`min(/Ignite by JMX/jmx["{#JMXOBJ}",EvictionRate],5m)>0`|Info|**Manual close**: Yes| |Data region {#JMXNAME}: Data region utilization is too high|

Data region utilization is high. Increase data region size or delete any data.

|`min(/Ignite by JMX/jmx["{#JMXOBJ}",OffheapUsedSize],5m)/last(/Ignite by JMX/jmx["{#JMXOBJ}",OffHeapSize])*100>{$IGNITE.DATA.REGION.PUSED.MAX.WARN}`|Warning|**Depends on**:
| |Data region {#JMXNAME}: Data region utilization is too high|

Data region utilization is high. Increase data region size or delete any data.

|`min(/Ignite by JMX/jmx["{#JMXOBJ}",OffheapUsedSize],5m)/last(/Ignite by JMX/jmx["{#JMXOBJ}",OffHeapSize])*100>{$IGNITE.DATA.REGION.PUSED.MAX.HIGH}`|High|| |Data region {#JMXNAME}: Pages replace rate more than 0|

There is more data than DataRegionMaxSize. Cluster started to replace pages in memory. Page replacement can slow down operations.

|`min(/Ignite by JMX/jmx["{#JMXOBJ}",PagesReplaceRate],5m)>0`|Warning|| |Data region {#JMXNAME}: Checkpoint buffer utilization is too high|

Checkpoint buffer utilization is high. Threads will be throttled to avoid buffer overflow. It can be caused by high disk utilization.

|`min(/Ignite by JMX/jmx["{#JMXOBJ}",UsedCheckpointBufferSize],5m)/last(/Ignite by JMX/jmx["{#JMXOBJ}",CheckpointBufferSize])*100>{$IGNITE.CHECKPOINT.PUSED.MAX.WARN}`|Warning|**Depends on**:
| |Data region {#JMXNAME}: Checkpoint buffer utilization is too high|

Checkpoint buffer utilization is high. Threads will be throttled to avoid buffer overflow. It can be caused by high disk utilization.

|`min(/Ignite by JMX/jmx["{#JMXOBJ}",UsedCheckpointBufferSize],5m)/last(/Ignite by JMX/jmx["{#JMXOBJ}",CheckpointBufferSize])*100>{$IGNITE.CHECKPOINT.PUSED.MAX.HIGH}`|High|| ### LLD rule Cache groups |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Cache groups||JMX agent|jmx.discovery[beans,"org.apache:group=\"Cache groups\",*"]

**Preprocessing**

| ### Item prototypes for Cache groups |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Cache group [{#JMXNAME}]: Backups|

Count of backups configured for cache group.

|JMX agent|jmx["{#JMXOBJ}",Backups]| |Cache group [{#JMXNAME}]: Partitions|

Count of partitions for cache group.

|JMX agent|jmx["{#JMXOBJ}",Partitions]| |Cache group [{#JMXNAME}]: Caches|

List of caches.

|JMX agent|jmx["{#JMXOBJ}",Caches]

**Preprocessing**

| |Cache group [{#JMXNAME}]: Local node partitions, moving|

Count of partitions with state MOVING for this cache group located on this node.

|JMX agent|jmx["{#JMXOBJ}",LocalNodeMovingPartitionsCount]| |Cache group [{#JMXNAME}]: Local node partitions, renting|

Count of partitions with state RENTING for this cache group located on this node.

|JMX agent|jmx["{#JMXOBJ}",LocalNodeRentingPartitionsCount]| |Cache group [{#JMXNAME}]: Local node entries, renting|

Count of entries remains to evict in RENTING partitions located on this node for this cache group.

|JMX agent|jmx["{#JMXOBJ}",LocalNodeRentingEntriesCount]| |Cache group [{#JMXNAME}]: Local node partitions, owning|

Count of partitions with state OWNING for this cache group located on this node.

|JMX agent|jmx["{#JMXOBJ}",LocalNodeOwningPartitionsCount]| |Cache group [{#JMXNAME}]: Partition copies, min|

Minimum number of partition copies for all partitions of this cache group.

|JMX agent|jmx["{#JMXOBJ}",MinimumNumberOfPartitionCopies]| |Cache group [{#JMXNAME}]: Partition copies, max|

Maximum number of partition copies for all partitions of this cache group.

|JMX agent|jmx["{#JMXOBJ}",MaximumNumberOfPartitionCopies]| ### Trigger prototypes for Cache groups |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |Cache group [{#JMXNAME}]: One or more backups are unavailable||`min(/Ignite by JMX/jmx["{#JMXOBJ}",Backups],5m)>=max(/Ignite by JMX/jmx["{#JMXOBJ}",MinimumNumberOfPartitionCopies],5m)`|Warning|| |Cache group [{#JMXNAME}]: List of caches has changed|

List of caches has changed. Significant changes have occurred in the cluster. Acknowledge to close the problem manually.

|`last(/Ignite by JMX/jmx["{#JMXOBJ}",Caches],#1)<>last(/Ignite by JMX/jmx["{#JMXOBJ}",Caches],#2) and length(last(/Ignite by JMX/jmx["{#JMXOBJ}",Caches]))>0`|Info|**Manual close**: Yes| |Cache group [{#JMXNAME}]: Rebalance in progress|

Acknowledge to close the problem manually.

|`max(/Ignite by JMX/jmx["{#JMXOBJ}",LocalNodeMovingPartitionsCount],30m)>0`|Info|**Manual close**: Yes| |Cache group [{#JMXNAME}]: There is no copy for partitions||`max(/Ignite by JMX/jmx["{#JMXOBJ}",MinimumNumberOfPartitionCopies],30m)=0`|Warning|| ### LLD rule Thread pool metrics |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Thread pool metrics||JMX agent|jmx.discovery[beans,"org.apache:group=\"Thread Pools\",*"]

**Preprocessing**

| ### Item prototypes for Thread pool metrics |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Thread pool [{#JMXNAME}]: Queue size|

Current size of the execution queue.

|JMX agent|jmx["{#JMXOBJ}",QueueSize]| |Thread pool [{#JMXNAME}]: Pool size|

Current number of threads in the pool.

|JMX agent|jmx["{#JMXOBJ}",PoolSize]| |Thread pool [{#JMXNAME}]: Pool size, max|

The maximum allowed number of threads.

|JMX agent|jmx["{#JMXOBJ}",MaximumPoolSize]| |Thread pool [{#JMXNAME}]: Pool size, core|

The core number of threads.

|JMX agent|jmx["{#JMXOBJ}",CorePoolSize]| ### Trigger prototypes for Thread pool metrics |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |Thread pool [{#JMXNAME}]: Too many messages in queue|

Number of messages in queue more than {$IGNITE.THREAD.QUEUE.MAX.WARN:"{#JMXNAME}"}.

|`min(/Ignite by JMX/jmx["{#JMXOBJ}",QueueSize],5m) > {$IGNITE.THREAD.QUEUE.MAX.WARN:"{#JMXNAME}"}`|Average|| ## Feedback Please report any issues with the template at [`https://support.zabbix.com`](https://support.zabbix.com) You can also provide feedback, discuss the template, or ask for help at [`ZABBIX forums`](https://www.zabbix.com/forum/zabbix-suggestions-and-feedback)