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