Aangepaste metrics met Micrometer
Leg uw eigen applicatiemetrics vast.
Aangepaste metrics met Micrometer is een gratis Spring Boot 4-microservices en REST-API's-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Spring Boot 4-microservices en REST-API's. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Spring Boot 4-microservices en REST-API's bevat in totaal 4 lessen.
Micrometer: de facade voor metrieken
Spring Boot gebruikt Micrometer als leveranciersneutrale facade voor metrieken — de SLF4J van metrieken. Je instrumenteert code met één API en exporteert vervolgens naar Prometheus, Datadog, CloudWatch en andere systemen door een registry toe te voegen.
De MeterRegistry
De centrale component is MeterRegistry. Boot configureert automatisch een exemplaar en registreert dit als bean, zodat je het eenvoudig injecteert waar je metingen wilt vastleggen.
@Service
public class OrderService {
private final MeterRegistry registry;
public OrderService(MeterRegistry registry) {
this.registry = registry;
}
}Tellers
Een Counter registreert een waarde die alleen toeneemt — ideaal om gebeurtenissen te tellen, zoals geplaatste bestellingen of opgetreden fouten. Maak de teller één keer aan en verhoog hem wanneer gebeurtenissen plaatsvinden.
@Service
public class OrderService {
private final Counter ordersPlaced;
public OrderService(MeterRegistry registry) {
this.ordersPlaced = registry.counter("orders.placed");
}
public void place(Order o) {
// ... business logic
ordersPlaced.increment();
}
}Tags (dimensies)
Voeg tags toe om een metriek uit te splitsen naar dimensie — kanaal, regio of status. Elke unieke tagcombinatie is een afzonderlijke tijdreeks, dus houd de cardinaliteit van tags begrensd.
registry.counter("orders.placed",
"channel", "web",
"region", "eu")
.increment();Timers
Een Timer meet zowel hoe vaak iets gebeurt als hoe lang het duurt, en levert het aantal, de totale tijd en het maximum op. Gebruik deze om de latentie van bewerkingen te volgen.
Timer timer = registry.timer("orders.process.time");
timer.record(() -> processOrder(order));Tijd handmatig vastleggen
Wanneer je het werk niet in een lambda kunt verpakken, leg je aan het begin een Timer.Sample vast en stop je die aan het einde tegen een timer.
Timer.Sample sample = Timer.start(registry);
try {
processOrder(order);
} finally {
sample.stop(registry.timer("orders.process.time"));
}Gauges
Een Gauge rapporteert een waarde die kan stijgen of dalen — bijvoorbeeld de wachtrijlengte, het aantal actieve sessies of de cachegrootte. Je registreert een functie die Micrometer op aanvraag bemonstert.
registry.gauge("orders.queue.size",
orderQueue, q -> q.size());Verdelingssamenvattingen
Een DistributionSummary houdt de verdeling van willekeurige waarden bij, zoals de grootte van requestpayloads, en levert het aantal, het totaal en percentielen.
DistributionSummary summary = registry.summary("orders.amount");
summary.record(order.getTotal().doubleValue());Declaratieve timing met @Timed
De annotatie @Timed meet de duur van een methode zonder handmatige instrumentatie. Hiervoor moet een bean van het type TimedAspect zijn geregistreerd.
@Bean
TimedAspect timedAspect(MeterRegistry registry) {
return new TimedAspect(registry);
}
@Timed(value = "orders.process.time")
public void process(Order o) { /* ... */ }Exporteren naar Prometheus
Voeg de afhankelijkheid voor de Prometheus-registry toe en stel het eindpunt prometheus bloot. Micrometer publiceert vervolgens een scrape-eindpunt met al je meters.
# dependency: micrometer-registry-prometheus
management:
endpoints:
web:
exposure:
include: prometheus,metrics,health
# scrape: /actuator/prometheusDiscipline bij cardinaliteit
De grootste valkuil bij metrieken zijn tags met een hoge cardinaliteit. Gebruik nooit gebruikers-id's, request-id's of onbewerkte URL's als tag — elke unieke waarde vermenigvuldigt het aantal tijdreeksen en kan je backend overbelasten.
Korte controle
Test je begrip van metertypen.
Samenvatting
Micrometer instrumenteert je app.
- Injecteer de automatisch geconfigureerde
MeterRegistry Countervoor monotoon stijgende tellingen,Timervoor latentieGaugevoor veranderlijke waarden,DistributionSummaryvoor verdelingen- Gebruik begrensde tags; vermijd een hoge cardinaliteit
- Exporteer via een registry-afhankelijkheid naar Prometheus en vergelijkbare systemen
Leer Java met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 24
- Lessen
- 93
Veelgestelde vragen
Is de les “Aangepaste metrics met Micrometer” gratis?
Ja — de volledige tekst van “Aangepaste metrics met Micrometer” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Spring Boot 4-microservices en REST-API's wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Spring Boot 4-microservices en REST-API's bevat in totaal 4 lessen.
Wat leer ik in “Aangepaste metrics met Micrometer”?
Leg uw eigen applicatiemetrics vast. Je oefent met Spring Boot 4-microservices en REST-API's door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Spring Boot 4-microservices en REST-API's te beginnen?
Ervaring vooraf is niet nodig. Spring Boot 4-microservices en REST-API's op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Aangepaste metrics met Micrometer”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Spring Boot 4-microservices en REST-API's?
Ja. Elke les over Spring Boot 4-microservices en REST-API's bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Actuator-endpoints inschakelen
- Health-indicatoren
- Aangepaste metrics met Micrometer
- Actuator-endpoints beveiligen