Diese Seite bleibt auch ohne JavaScript lesbar. Suche und Buttons sind Zusatzkomfort.
Actuator, Micrometer und Observability
Produktionsverständnis: Health, Metrics, Logs, Traces, Readiness, Liveness und Alarmierung.
1. Actuator als Betriebsoberfläche
Actuator ergänzt Anwendungen um produktionsnahe Endpunkte. Health, Info, Metrics, Prometheus, Loggers und weitere Endpunkte helfen, eine Anwendung im Betrieb zu beobachten und zu steuern. Nicht jeder Endpunkt gehört öffentlich ins Netz.
In Kubernetes/OpenShift sind Liveness und Readiness besonders wichtig: Liveness beantwortet, ob der Prozess neu gestartet werden sollte. Readiness beantwortet, ob der Pod Traffic bekommen darf.
management:
endpoints:
web:
exposure:
include: health,info,metrics,prometheus,loggers
endpoint:
health:
probes:
enabled: true
show-details: when_authorized
metrics:
tags:
application: order-service
environment: prod
2. Micrometer und eigene Metriken
Micrometer abstrahiert Metriken für verschiedene Monitoring-Systeme. Gute Metriken sind fachlich lesbar: orders.submitted, payments.failed, invoice.export.duration. Schlechte Metriken sind technische Zufallsnamen ohne Verantwortlichkeit.
@Service
class OrderMetrics {
private final Counter submitted;
private final Timer placementTimer;
OrderMetrics(MeterRegistry registry) {
this.submitted = Counter.builder("orders.submitted").register(registry);
this.placementTimer = Timer.builder("orders.placement.duration").register(registry);
}
<T> T recordPlacement(Supplier<T> action) {
return placementTimer.record(action);
}
void incrementSubmitted() {
submitted.increment();
}
}
3. Tracing und Korrelation
Logs ohne Korrelations-ID sind in verteilten Systemen oft schwer nutzbar. Traces zeigen, wie ein Request durch Gateway, Services, Datenbank und Messaging läuft. Wichtig ist, fachliche IDs nicht mit sensiblen Daten zu verwechseln.
try (MDC.MDCCloseable ignored = MDC.putCloseable("orderId", orderId.toString())) {
log.info("Order submitted");
}
Enterprise-Prüffragen
- Readiness/Liveness getrennt?
- Actuator-Endpunkte abgesichert?
- Fachliche Metriken definiert?
- Logs, Metrics und Traces korrelierbar?