Skip to main content
Version: 1.5.x

Monitoring

Dossier Organizer provides a comprehensive set of metrics that allow monitoring and analyzing the performance and health of your application. You can use this information to identify bottlenecks, optimize resource usage, and ensure the overall reliability of your system.

Exposure takes place via Spring Boot Actuator standards and also includes standard metrics such as startup time, resource utilization, JVM metrics, Tomcat sessions, and more.

Configuration

To enable metrics, use the appropriate settings in the Helm values:

values.yml

management:
endpoints:
web.exposure.include: health, prometheus, metrics
prometheus:
metrics:
export:
enabled: true
jmx:
metrics:
export:
enabled: true

This example enables the health, prometheus and metrics endpoints.

Access Metrics

Prometheus

If prometheus is enabled, the metrics will be propagated under the http://localhost:8080/actuator/prometheus endpoint and is scraped by the Prometheus server.

The metrics can be visualized, e.g. with Grafana by adding the prometheus adapter.

JMX

The JMX exposure exposes the metrics via a default Java MBean server handling the jmx request. Depending on the JVM Vendor there are specific Java Mission Control Derivatives which can be used to access the JVM and read the metrics.

By default, most JDKs come with the JConsole-Tool, which provides the most basic access to the metrics.

Application Metrics

Basic application metrics like CPU usage, JVM memory will be provided via the default actuator. In addition, application-specific metrics are provided to gain measurements specific to the application.

The metrics will be propagated under the http://localhost:8080/actuator/metrics endpoint.

Metrics recommended to be included in monitoring and alerting are written in bold.

Organizer ("fusion")

The most important metric here are response times to retrieve collections and their elements.

Metric NameDescription
fusion.collection-type.getDuration to get collection type by id
fusion.collection-type.allDuration to get all collection types
fusion.collection-type.saveDuration to save a collection type
fusion.collection.element.permissionsDuration to retrieve collection element permissions
fusion.collection.getDuration to retrieve a collection (current version)
fusion.collection.get-versionDuration to get collection (version specified by timestamp)
fusion.collection.get-version-listDuration to get version list
fusion.collection.get-version-list-with-metadataDuration to get history with metadata
fusion.collection.permissionsDuration to get collection permissions
fusion.collection.createDuration to update collections
fusion.collection.layoutDuration to get collection type by id
fusion.element.permissionsDuration to get collection element permissions
fusion.content.getDuration to get element content as a multipart stream
fusion.index.rebuildDuration to rebuild index
fusion.index.queryDuration to query current collections and get resulting collection IDs
fusion.lock.extendDuration to extend a lock
fusion.lock.getDuration to get lock status
fusion.lock.acquireDuration to acquire a lock
fusion.lock.releaseDuration to release a lock
fusion.lock.contestDuration to contest a lock
fusion.lock.contest.resolveDuration to resolve a lock contest
fusion.seen.getDuration to get seen/unseen info (current principal)
fusion.seen.persistDuration to persist seen/unseen
fusion.seen.deleteDuration to delete seen/unseen

Viewer

Actually serving documents and rendering their content is performed by the viewer. Caching is also an important topic here when encountering performance issues.

Metric NameDescription
jwt.fusion.document.loadDuration of a complete document load
jwt.fusion.document.load.firstpageLoading a document up to its first page
jwt.fusion.content.stream.requestResponse time for content requests
jwt.fusion.content.stream.downloadDownload time for content streams
jwt.fusion.document.load.successNumber of successful document loads
jwt.fusion.document.load.load.failedNumber of failed document loads
MiscellaneousSome of the viewer metrics are listed here:
Tile Rendering Metricssee jadice webtoolkit monitoring - tile-rendering
Cache Metricssee jadice webtoolkit monitoring - cache
Document Loading Metricssee jadice webtoolkit monitoring - loading-documents