Chapter 15. Configuring Data Grid Server Statistics
Enable statistics that Data Grid exports to a metrics
endpoint or via JMX MBeans. Registering JMX MBeans also exposes management operations that you can perform remotely.
15.1. Enabling Data Grid Statistics
Configure Data Grid to export statistics for Cache Managers and caches.
Data Grid Server enables Cache Manager statistics by default. You must explicitly enable statistics for your caches.
Procedure
Modify your configuration to enable Data Grid statistics in one of the following ways:
-
Declarative: Add the
statistics="true"
attribute. -
Programmatic: Call the
.statistics()
method.
Declarative
<!-- Enables statistics for the Cache Manager. --> <cache-container statistics="true"> <!-- Enables statistics for the named cache. --> <local-cache name="mycache" statistics="true"/> </cache-container>
Programmatic
GlobalConfiguration globalConfig = new GlobalConfigurationBuilder() //Enables statistics for the Cache Manager. .cacheContainer().statistics(true) .build(); Configuration config = new ConfigurationBuilder() //Enables statistics for the named cache. .statistics().enable() .build();
15.2. Configuring Data Grid Metrics
Configure Data Grid to export gauges and histograms via the metrics
endpoint.
Procedure
-
Turn gauges and histograms on or off in the
metrics
configuration as appropriate.
Declarative
<!-- Computes and collects statistics for the Cache Manager. --> <cache-container statistics="true"> <!-- Exports collected statistics as gauge and histogram metrics. --> <metrics gauges="true" histograms="true" /> </cache-container>
Programmatic
GlobalConfiguration globalConfig = new GlobalConfigurationBuilder() //Computes and collects statistics for the Cache Manager. .statistics().enable() //Exports collected statistics as gauge and histogram metrics. .metrics().gauges(true).histograms(true) .build();
15.3. Collecting Data Grid Metrics
Collect Data Grid metrics with monitoring tools such as Prometheus.
Prerequisites
-
Enable statistics. If you do not enable statistics, Data Grid provides
0
and-1
values for metrics. - Optionally enable histograms. By default Data Grid generates gauges but not histograms.
Procedure
Get metrics in Prometheus (OpenMetrics) format:
$ curl -v http://localhost:11222/metrics
Get metrics in MicroProfile JSON format:
$ curl --header "Accept: application/json" http://localhost:11222/metrics
Next steps
Configure monitoring applications to collect Data Grid metrics. For example, add the following to prometheus.yml
:
static_configs: - targets: ['localhost:11222']
Reference
- Prometheus Configuration
- Enabling Data Grid Statistics
15.4. Configuring Data Grid to Register JMX MBeans
Data Grid can register JMX MBeans that you can use to collect statistics and perform administrative operations. You must enable statistics separately to JMX otherwise Data Grid provides 0
values for all statistic attributes.
Procedure
Modify your cache container configuration to enable JMX in one of the following ways:
-
Declarative: Add the
<jmx enabled="true" />
element to the cache container. -
Programmatic: Call the
.jmx().enable()
method.
Declarative
<cache-container> <jmx enabled="true" /> </cache-container>
Programmatic
GlobalConfiguration globalConfig = new GlobalConfigurationBuilder() .jmx().enable() .build();
15.4.1. Data Grid MBeans
Data Grid exposes JMX MBeans that represent manageable resources.
org.infinispan:type=Cache
- Attributes and operations available for cache instances.
org.infinispan:type=CacheManager
- Attributes and operations available for cache managers, including Data Grid cache and cluster health statistics.
For a complete list of available JMX MBeans along with descriptions and available operations and attributes, see the Data Grid JMX Components documentation.
Additional resources