Monitoring

EclipseStore supports monitoring using the Java Management Extensions (JMX) framework.

Enable JMX

Please see how to enable JMX.

To enable JMX monitoring for your application, add the following JVM arguments:

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9090
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

For production environments, always enable authentication and SSL.

Provided JMX Beans

By default, all provided beans use the domain org.eclipse.store.

Storage-specific beans have the key storage. The value comprises the string storage and an increasing counter.

Channel-specific beans have the key channel. The value is composed of the string channel- and an increasing counter.

The provided beans are:

Name Description

org.eclipse.store:name=LazyReferenceManager

Provides information about the storage LazyReferenceManager. There is only one instance of this bean. Useful for monitoring lazy reference loading and clearing behavior.

org.eclipse.store:storage=storageX,name=EmbeddedStorage

Provides information about the amount of persisted data. Monitor this to track storage growth over time.

org.eclipse.store:storage=storageX,name=EntityCacheSummary

Provides information about the storage entity cache. Shows how many entities are cached in memory and can help identify memory pressure.

org.eclipse.store:storage=storageX,name=ObjectRegistry

Provides information about the storage object registry. Tracks the total number of known objects.

org.eclipse.store:storage=storageX,channel=channel-X,group=Entity cache

Provides per-channel entity cache information. Use this to monitor the cache distribution across channels.

org.eclipse.store:storage=storageX,channel=channel-X,group=housekeeping

Provides per-channel housekeeping information. Monitor this to ensure housekeeping keeps up with data changes.

Key Metrics to Watch

Storage Growth

The EmbeddedStorage bean reports the total amount of persisted data. Monitor this metric over time to:

  • Detect unexpected data growth

  • Verify that housekeeping is reclaiming space from deleted objects

  • Plan storage capacity

Entity Cache

The EntityCacheSummary and per-channel Entity cache beans report cache usage. Watch these to:

  • Ensure the cache is not growing beyond available memory

  • Identify if lazy references are being loaded but not cleared

  • Tune the LazyReferenceManager’s clearing behavior

Housekeeping

The per-channel housekeeping beans report on garbage collection and file compaction activity. Monitor these to:

  • Ensure housekeeping completes within its configured time budget

  • Verify that storage space is being reclaimed

  • Adjust housekeeping configuration if needed

Accessing JMX Beans Programmatically

You can access the JMX beans programmatically using the standard JMX API:

MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
ObjectName name = new ObjectName("org.eclipse.store:storage=storage0,name=EmbeddedStorage");
MBeanInfo info = mBeanServer.getMBeanInfo(name);

Integration with Monitoring Tools

JConsole / VisualVM

Connect to your application using JConsole or VisualVM and navigate to the org.eclipse.store domain in the MBean tree.

Prometheus / Micrometer

To expose EclipseStore metrics to Prometheus, use a JMX-to-Prometheus exporter or Micrometer’s JMX integration:

pom.xml
<dependency>
	<groupId>io.micrometer</groupId>
	<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

Configure the JMX metrics you want to export in your Micrometer configuration to scrape the org.eclipse.store domain.