Métricas personalizadas con Micrometer
Registre sus propias métricas de aplicación
Métricas personalizadas con Micrometer es una lección gratuita de Spring Boot 4 Microservices & REST APIs en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Spring Boot 4 Microservices & REST APIs, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Spring Boot 4 Microservices & REST APIs incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
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
Preguntas frecuentes
¿La lección «Métricas personalizadas con Micrometer» es gratis?
Sí — el texto completo de «Métricas personalizadas con Micrometer» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Spring Boot 4 Microservices & REST APIs, actualiza a CoddyKit PRO. El curso de Spring Boot 4 Microservices & REST APIs incluye 4 lecciones en total.
¿Qué aprenderé en «Métricas personalizadas con Micrometer»?
Registre sus propias métricas de aplicación Practicas Spring Boot 4 Microservices & REST APIs con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Spring Boot 4 Microservices & REST APIs?
No se requiere experiencia previa. Spring Boot 4 Microservices & REST APIs en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Métricas personalizadas con Micrometer»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Spring Boot 4 Microservices & REST APIs?
Sí. Cada lección de Spring Boot 4 Microservices & REST APIs incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Habilitar endpoints de Actuator
- Indicadores de salud
- Métricas personalizadas con Micrometer
- Proteger endpoints de Actuator