Monitoring JBoss Data Grid

The JBoss Data Grid sensor is automatically deployed and installed after you install the Instana agent.

Support information

To make sure that the JBoss Data Grid sensor is compatible with your current setup, check the following support information sections:

Supported versions and support policy

The following table shows the latest supported version and support policy:

Technology Support policy Latest technology version Latest supported version
JBoss Data Grid On demand 8.5.4 8.5.3

For more information about the support policy, see Support strategy for sensors.

Supported client-side tracing

For this technology, Instana supports client-side tracing for the following language:

Prerequisites

You must enable Java Management Extensions (JMX) in JBoss Data Grid for metric collection. By default, JMX is disabled in JBoss Data Grid.

For more information about enabling JMX and statistics, see the Red Hat Data Grid documentation.

Configuring the polling rate

Note: Instana JBoss Data Grid sensor 1.1.17 and later support configuring the polling rate to reduce data ingestion. This feature is supported on self-hosted Instana backend 311 and later.

To configure a custom polling rate, add poll_rate in the <agent_install_dir>/etc/instana/configuration.yaml file, as shown in the following example:

com.instana.plugin.jbossdatagrid:
  poll_rate: 1 # Value is in seconds. Default value is 1 second.

Metrics collection

To view the metrics, select Infrastructure in the sidebar of the Instana User interface, click a specific monitored host, and then you can see a host dashboard with all the collected metrics and monitored processes.

Configuration data

The following configuration data is collected from JBoss Data Grid:

Process and version information

Configuration Description
Process ID Unique identifier for the JBoss Data Grid process that is running on the system
JBoss Data Grid Version Specific version of JBoss Data Grid that is monitored (for example, 8.5.4)
JGroups Version Version of the JGroups clustering framework that is used for communication between nodes
HotRod Max Worker Threads Maximum number of threads that is used by the Hot Rod connector to process client requests
Worker Threads Current number of active worker threads that process requests
Ports Network ports on which JBoss Data Grid services are listening

JGroups cluster configuration

Each cluster is displayed as a collapsible section titled JGroups Cluster: {clusterName}. Expanding it shows all JGroups channel and thread pool details:

Configuration Description
Channel Name Name of the JGroups communication channel used by this cluster
Channel Address Unique address that is assigned to this node within the JGroups channel
Channel State Current state of the JGroups communication channel (connected or disconnected)
Channel Statistics Enabled Flag that indicates whether statistics collection is enabled for the channel
UDP Statistics Enabled Flag that indicates whether UDP protocol statistics are tracked
Incoming Messages Thread Pool Enabled Indicates that the default thread pool for processing incoming cluster messages is active
Incoming Messages Thread Pool Max Threads Maximum number of threads allowed in the incoming messages thread pool
Incoming Messages Thread Pool Min Threads Minimum number of threads kept alive in the incoming messages thread pool
Incoming Messages Thread Pool Keep Alive Time Duration for which an idle thread remains alive before it is terminated in the incoming messages pool
Incoming Messages Thread Pool Queue Max Size Maximum number of messages that can be queued when the thread pool is at capacity
Incoming Messages Thread Pool Rejection Policy Policy applied when both the thread pool and queue are full (for example, DISCARD or RUN)
OOB Messages Thread Pool Enabled Indicates that the Out-Of-Band (OOB) thread pool for high-priority cluster messages is active
OOB Messages Thread Pool Max Threads Maximum number of threads allowed in the OOB messages thread pool
OOB Messages Thread Pool Min Threads Minimum number of threads kept alive in the OOB messages thread pool
OOB Messages Thread Pool Keep Alive Time Duration for which an idle thread remains alive before it is terminated in the OOB messages pool
OOB Messages Thread Pool Queue Max Size Maximum number of scheduled tasks that can be queued in the OOB messages thread pool
OOB Messages Thread Pool Rejection Policy Policy that is applied when the OOB messages thread pool queue is full
Timer Messages Thread Pool Max Threads Maximum number of threads allowed in the timer messages thread pool
Timer Messages Thread Pool Min Threads Minimum number of threads kept alive in the timer messages thread pool
Timer Messages Thread Pool Keep Alive Time Duration for which an idle thread remains alive before it is terminated in the timer messages pool
Timer Messages Thread Pool Queue Max Size Maximum number of scheduled tasks that can be queued in the timer messages thread pool
Timer Messages Thread Pool Rejection Policy Policy that is applied when both the timer messages thread pool and queue are full (for example, DISCARD or RUN)

Cache configuration

Each cache defined in the DataGrid instance is shown as a collapsible section titled Cache [<name-from-infinispan.xml>(<cacheType>_<cacheMode>)] , where cache type is distributed or replicated and mode is sync or async. For example, Cache [my-cache1(dist_sync)].

Configuration Description
Status Current operational state of each cache (running or stopped)
Start Time Timestamp when each cache was initialized
Cluster Name Name of the cluster to which the cache belongs
Statistics Enabled Boolean flag indicating whether statistics collection is enabled for the cache
Configuration Detailed cache configuration as a key-value map including attributes, cache mode, indexing details, eviction policies, expiration settings, storage type and other values

Cache manager caches

Metric Description
Cache Name of the cache manager
Defined caches Total number of caches that are defined (configured) in this cache manager, regardless of whether they are running
Created caches Number of caches that are instantiated (created) but might not yet be in the running state
Running caches Number of caches that are currently in the running state and actively serving requests

Performance metrics

The following performance metrics are collected to monitor the health and efficiency of JBoss Data Grid:

JGroups timer thread pool statistics

Metric Description
Cluster name Name of the JGroup cluster
Timer threads size Current total number of threads in the timer thread pool
Timer tasks size Number of timer tasks currently scheduled or executing

JGroups default thread pool statistics

Metric Description
Cluster name Name of the JGroup cluster
Incoming messages threads size Current total number of threads in the default incoming messages pool
Incoming messages active threads size Number of threads that are currently active and processing incoming messages

Cache latency and throughput

Metric Description
Cache Name of the cache
Average read time Mean time to complete a cache get operation, in milliseconds
Average write time Mean time to complete a cache put operation, in milliseconds
Average remove time Mean time to complete a cache remove operation, in milliseconds
Throughput (ops/sec) Number of cache operations completed per second across all operation types

Cache hits and misses

Metric Description
Hit Ratio Indicates the percentage of total data requests that are found in the fast, in-memory cache, rather than having to be fetched from primary storage
Hits Occurs when an application requests a specific piece of data and the data is found in the cache memory
Misses Occurs when the requested content is not in the cache, requiring the system to fetch it from the primary storage or origin server
Remove hits Occurs when an application calls cache.remove(key) and the entry (key-value pair) exists in the cache and is successfully removed
Remove misses Occurs when an application calls cache.remove(key) but the specified key does not exist in the cache

Other cache statistic

Metric Description
Puts Number of write operations to the cache per second, tracking data insertion and update frequency. This metric helps understand write workload patterns.
Read/Write Ratio Proportion of read operations to write operations, helping you understand access patterns and optimize cache configuration. A high read/write ratio suggests a read-heavy workload where caching is most beneficial.
Entries Current number of entries stored in the cache, indicating memory usage and capacity. Monitoring this metric helps with capacity planning and identifying when cache limits are approached.
Evictions Number of entries removed from cache due to capacity constraints or expiration policies. High eviction rates can indicate memory pressure, undersized caches, or aggressive expiration policies that might need adjustment.

Hot Rod connections

Metric Description
Number of Local Hot Rod Connections Number of active Hot Rod connections from clients on the same host as the DataGrid server
Number of Global Hot Rod Connections Number of active Hot Rod connections from all clients across all hosts

JGroups cluster statistics

Metric Description
JGroups Cluster UDP Statistics Monitors cluster statistics for the UDP transport, including metrics on message rates, throughput, and buffer sizes

Health Signatures

For each sensor, there is a curated knowledgebase of health signatures that are evaluated continuously against the incoming metrics and are used to raise issues or incidents depending on user impact.

Built-in events trigger issues or incidents based on failing health signatures on entities, and custom events trigger issues or incidents based on the thresholds of an individual metric of any given entity.

For information about built-events for the JBoss Data Grid sensor, see the Built-in events reference.