Métriques personnalisées avec Micrometer
Enregistrez vos propres métriques d'application.
Métriques personnalisées avec Micrometer est une leçon Spring Boot 4 Microservices & REST APIs gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Spring Boot 4 Microservices & REST APIs, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Spring Boot 4 Microservices & REST APIs comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Micrometer: The Metrics Facade
Spring Boot uses Micrometer as a vendor-neutral metrics facade — the SLF4J of metrics. You instrument code against one API, then export to Prometheus, Datadog, CloudWatch, and others by adding a registry.
The MeterRegistry
The central component is the MeterRegistry. Boot auto-configures one and registers it as a bean, so you simply inject it wherever you need to record measurements.
@Service
public class OrderService {
private final MeterRegistry registry;
public OrderService(MeterRegistry registry) {
this.registry = registry;
}
}Counters
A Counter records a value that only increases — perfect for counting events like orders placed or errors encountered. Create it once and increment it as events occur.
@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 (Dimensions)
Add tags to slice a metric by dimension — channel, region, status. Each unique tag combination is a separate time series, so keep tag cardinality bounded.
registry.counter("orders.placed",
"channel", "web",
"region", "eu")
.increment();Timers
A Timer measures both how often something happens and how long it takes, yielding count, total time, and max. Use it to track operation latency.
Timer timer = registry.timer("orders.process.time");
timer.record(() -> processOrder(order));Recording Time Manually
When you cannot wrap the work in a lambda, capture a Timer.Sample at the start and stop it against a timer at the end.
Timer.Sample sample = Timer.start(registry);
try {
processOrder(order);
} finally {
sample.stop(registry.timer("orders.process.time"));
}Gauges
A Gauge reports a value that can go up or down — a queue depth, active sessions, cache size. You register a function that Micrometer samples on demand.
registry.gauge("orders.queue.size",
orderQueue, q -> q.size());Distribution Summaries
A DistributionSummary tracks the distribution of arbitrary values, such as request payload sizes, providing count, total, and percentiles.
DistributionSummary summary = registry.summary("orders.amount");
summary.record(order.getTotal().doubleValue());Declarative Timing with @Timed
The @Timed annotation times a method without manual instrumentation. It requires a TimedAspect bean to be registered.
@Bean
TimedAspect timedAspect(MeterRegistry registry) {
return new TimedAspect(registry);
}
@Timed(value = "orders.process.time")
public void process(Order o) { /* ... */ }Exporting to Prometheus
Add the Prometheus registry dependency and expose the prometheus endpoint. Micrometer then publishes a scrape endpoint with all your meters.
# dependency: micrometer-registry-prometheus
management:
endpoints:
web:
exposure:
include: prometheus,metrics,health
# scrape: /actuator/prometheusCardinality Discipline
The biggest metrics pitfall is high-cardinality tags. Never tag with user ids, request ids, or raw URLs — each unique value multiplies time series and can overwhelm your backend.
Quick Check
Test your understanding of meter types.
Recap
Micrometer instruments your app.
- Inject the auto-configured
MeterRegistry Counterfor monotonic counts,Timerfor latencyGaugefor fluctuating values,DistributionSummaryfor distributions- Use bounded tags; avoid high cardinality
- Export to Prometheus and friends via a registry dependency
Questions Fréquemment Posées
La leçon « Métriques personnalisées avec Micrometer » est-elle gratuite ?
Oui — le texte complet de « Métriques personnalisées avec Micrometer » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Spring Boot 4 Microservices & REST APIs, passe à CoddyKit PRO. Le cours Spring Boot 4 Microservices & REST APIs comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Métriques personnalisées avec Micrometer » ?
Enregistrez vos propres métriques d'application. Tu pratiques Spring Boot 4 Microservices & REST APIs avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Spring Boot 4 Microservices & REST APIs ?
Aucune expérience préalable n'est requise. Spring Boot 4 Microservices & REST APIs sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Métriques personnalisées avec Micrometer » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Spring Boot 4 Microservices & REST APIs ?
Oui. Chaque leçon Spring Boot 4 Microservices & REST APIs inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Activer les points de terminaison Actuator
- Indicateurs d'état
- Métriques personnalisées avec Micrometer
- Sécuriser les points de terminaison Actuator