23.3. Monitoring

23.3.1. Monitoring

Hibernate Search offers access to a Statistics object via SearchFactory.getStatistics(). It allows you, for example, to determine which classes are indexed and how many entities are in the index. This information is always available. However, by specifying the hibernate.search.generate_statistics property in your configuration you can also collect total and average Lucene query and object loading timings.
Hibernate Search provides several methods of monitoring its operations. The list of indexed classes and number of entities per index are always available from the Statistics object via the SearchFactory.getStatistics() method. To obtain total and average Lucene query and object loading timings, specify the hibernate.search.generate_statistics property in your configuration.
Access to Statistics via JMX

To enable access to statistics via JMX, set the property hibernate.search.jmx_enabled to true. This will automatically register the StatisticsInfoMBean bean, providing access to statistics via the Statistics object. Depending on your configuration the IndexingProgressMonitorMBean bean may also be registered.

Monitoring Indexing

If the mass indexer API is used, you can monitor indexing progress via the IndexingProgressMonitorMBean bean. The bean is only bound to JMX while indexing is in progress.

Note

JMX beans can be accessed remotely via JConsole by setting the system property com.sun.management.jmxremote to true.