Monitoring
Arten der Erzeugung von Metriken
Das jadice web toolkit kann durch die Verwendung von Micrometer auf verschiedene Arten die erzeugten Metriken exponieren:
Spring-Boot-Actuator (HTTP-Endpunkt)
Hierzu muss folgende dependency mit eingebunden werden (exemplarisch für maven):
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Weiterhin muss die application.yml angepasst werden:
management:
endpoints:
web:
exposure:
include: health, metrics, info
# use following line instead for detailed cache info (created via CacheInfoResource)
#include: health, metrics, info, prometheus, jwtcachedetailed
JMX
Hierzu müssen folgende dependencies mit eingebunden werden (exemplarisch für maven):
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-jmx</artifactId>
</dependency>
</dependencies>
Weiterhin muss die application.yml angepasst werden:
management:
endpoints:
jmx:
exposure:
include: health, metrics, info
# use following line instead for detailed cache info (created via CacheInfoResource)
#include: health, metrics, info, prometheus, jwtcachedetailed
Cache
Der Cache des jadice web toolkit lässt sich überwachen, das Aufzeichnen der Metriken muss jedoch erst aktiviert werden. Die Details zum Cache lassen sich aus dem Referenzhandbuch der jadice document platform entnehmen.
Metriken: Tile-Rendering
Der Thread-Pool für das Rendering von Kacheln ist ebenfalls überwachbar. Die exponierten Metriken sind:
jwt.render.maximumPoolSize
Die höchste Anzahl an Threads, die der Tile-Rendering-Thread-Pool annehmen kann.
jwt.render.poolSize
Die aktuelle Anzahl an Threads, die der Tile-Rendering-Thread-Pool hat.
jwt.render.corePoolSize
Die minimale Anzahl an Threads, die für das Tile-Rendering immer bereit stehen (diese Threads sind immer alive und bekommen keinen Timeout etc.)
jwt.render.largestPoolSize
Die höchste Anzahl an Threads, die bisher gleichzeitig aktiv waren.
jwt.render.activeCount
Die Anzahl an Threads, die aktuell Rendering-Tasks ausführen.
jwt.render.queueSize
Die Anzahl an Rendering-Tasks, die sich in der Warteschlange zur Ausführung befinden.
jwt.render.futuresQueueSize
Die Anzahl an Rendering-Tasks für alle Clients, die aktuell mehr Rendering-Tasks angefragt haben, als pro Client zulässig (diese werden in einer eigenen Warteschlange verwaltet).
jwt.render.tile
Die Anzahl der gerenderten Kacheln
Metriken: Laden von Dokumenten
jwt.read.document
Anzahl an Dokumenten-Ladevorgängen
jwt.read.document.failure
Anzahl an Dokumenten-Ladevorgängen, die fehlgeschlagen sind
jwt.recover.document
Anzahl an Dokumenten, die auf Anfrage des Clients serverseitig wieder her gestellt wurden.
jwt.recover.document.failure
Anzahl der Versuche, serverseitig Dokumente wieder her zu stellen, die fehlschlugen.