Actuator in Spring Boot

Gesundheitzustand über den Actuator

Das Actuator-Modul von Spring Boot stellt HTTP-Endpunkte bereit, die Auskunft über den Zustand der Anwendung geben und es erlauben, die Anwendung zu beeinflussen.

Eigene Informationen über den „Gesundheitzustand“ lassen sich einbauen.

Die Informationen werden über REST veröffentlicht, können aber auch über JMX abgerufen werden.

Achtung: Actuator 1 und Actuator 2 unterscheiden sich deutlich!

Actuator in der POM

Einbinden wie üblich über die POM:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Da ganze funktioniert nur im Web-Modus, also muss org.springframework.boot:spring-boot-starter-web auch in der POM-Datei sein.

Starte man nun die Anwendung, kann man im Log die neuen Endpunkte sehen.

Aktivierung der Endpunkte

Damit ein Actuator Endpunkt über HTPP verfügbar ist, muss er enabled und exposed sein.

  • Die meisten Endpunkte sind standardmäßig deaktiviert.
  • Man kann nur actuator/health und actuator/health nutzen, und selbst da ist wenig Info vorhanden.

Um mehr Endpunkte freizuschalten setze man die die application.properties:

management.endpoints.web.exposure.include=*

Der Wildcard * aktiviert alle, alternativ zählt man kommasepariert auf.

Auswahl einiger Spring Boot Endpunkte

Die Endpunkte liegen alle eine Ebene unter http://localhost:8080/actuator:

/beans
Alle Spring-Beans
/env
Das Environment-Properties
/health
„health information“
/info
Applikationsinformationen
/loggers
Welche Log-Level für welche Pakete gelten
/metrics
Metriken über die aktuelle Anwendung, es muss eine weitere ID folgen, etwa metrics/http.server.requests
/threaddump
Thread-Dump

Management Endpoint URL

Natürlich lassen sich Dinge wie

  • Server-Port
  • URL-Basispfad
  • freigeschaltete Endpunkte
  • SSL-Verschlüsselung

konfigurieren.

Bin ich gesund?

Unter /health finden sich Informationen über den „Gesundheitszustand“ der Anwendung.

Der Status kann UP oder DOWN sein. Standardmäßig gibt es nur status

Authentifizierung

Bei einer nicht-authentifizierten Verbindung bekommt man nicht mehr zu sehen als den Status.

Um das zu ändern, müssen wir 1. in die POM mit aufnehmen:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-security</artifactId>
</dependency>

Dann 2. in application.properties (zum Testen!):

management.endpoint.health.show-details=always
spring.security.user.name=user
spring.security.user.password=pass

Nach dem Neustart der Anwendung und Neuladen der Webseite erfolgt eine BASIC-Authentifizierung. Geben wir user/pass ein, sehen wir alles.

Über Christian Ullenboom

Ich bin Christian Ullenboom und Autor der Bücher ›Java ist auch eine Insel. Einführung, Ausbildung, Praxis‹ und ›Java SE 8 Standard-Bibliothek. Das Handbuch für Java-Entwickler‹. Seit 1997 berate ich Unternehmen im Einsatz von Java. Sun ernannte mich 2005 zum ›Java-Champion‹.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.