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