Las APIs modernas suelen atender a múltiples clientes como aplicaciones móviles, servicios de partners y herramientas internas. Saber quién te llama y con qué frecuencia es crítico para planificación de capacidad, uso justo y facturación, y para alertas y cumplimiento de SLOs.

Resumen arquitectónico: un filtro de servlet en Spring Boot intercepta cada solicitud HTTP y registra métricas con Micrometer. Flujo: solicitud entra, filtro intercepta y contabiliza por método HTTP y cabecera de consumidor personalizada, luego el controlador procesa la petición y Micrometer exporta las métricas a tu backend de observabilidad.

Paso 1 Añadir Micrometer Spring Boot 3 y superiores incluye Micrometer cuando usas spring-boot-starter-actuator. Para Prometheus añade la dependencia micrometer-registry-prometheus y habilita los endpoints de actuator management.endpoints.web.exposure.include=health,metrics,prometheus.

Paso 2 Implementar el filtro La idea es crear un filtro tipo OncePerRequestFilter que haga: leer la cabecera CONSUMER.ID, normalizarla a un valor por defecto si no existe, construir una clave combinando método HTTP y consumer, y mantener un caché concurrente de objetos Counter en un ConcurrentHashMap. Si no existe el contador se crea con Counter.builder, se añaden tags method y consumer y se registra en el MeterRegistry. Finalmente se incrementa el contador y se continúa con chain.doFilter.

Puntos clave OncePerRequestFilter garantiza una ejecución por solicitud. ConcurrentHashMap y compute permiten una caché de contadores segura en concurrencia. Usar tags method y consumer hace cada contador único y consultable desde Prometheus, Datadog o CloudWatch.

Paso 3 Observar las métricas Ejecuta la aplicación y realiza unas cuantas peticiones curl por GET y POST por ejemplo curl -H CONSUMER.ID: mobile-app http://localhost:8080/api/... y luego visita http://localhost:8080/actuator/prometheus para ver las series. Ejemplos en la salida de Prometheus http_requests_total{method=GET,consumer=mobile-app} 42.0 http_requests_total{method=POST,consumer=partner-service} 5.0

Por qué no usar @Timed Aunque Micrometer ofrece @Timed para métodos de controlador, está orientado por endpoint y no agrupa automáticamente por una cabecera personalizada. Un filtro proporciona cobertura transversal para todas las solicitudes, incluidas recursos estáticos y páginas de error, y permite etiquetas dinámicas basadas en cualquier cabecera o atributo.

Consejos y mejoras para producción Controlar la cardinalidad de etiquetas porque muchos IDs únicos generan series temporales excesivas. Soluciones posibles: restringir IDs a un conjunto conocido o hashear/anonimizar los valores. Los contadores no se eliminan por sí solos así que considera una política de limpieza o registrar solo para consumidores conocidos y usar TTL o eviction en la caché. Para latencia y códigos de estado añade un Timer y etiquetas adicionales status y outcome. Exponer /actuator/prometheus solo al scraper de métricas y detrás de red o autenticación adecuada. Para testing usa MockMvc y verifica los contadores esperados.

Implementación práctica en menos de 50 líneas te da visibilidad en tiempo real por consumidor. Ya sea para depurar un pico repentino o preparar un lanzamiento, estas métricas son invaluables. No puedes mejorar lo que no mides. Empieza a medir hoy y tu yo del futuro te lo agradecerá.

Sobre Q2BSTUDIO Q2BSTUDIO es una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida, con experiencia en inteligencia artificial, ciberseguridad y servicios cloud aws y azure. Ofrecemos soluciones integrales que incluyen servicios de inteligencia de negocio y Power BI, automatización de procesos y desarrollo de agentes IA para empresas. Si buscas desarrollar una plataforma o una app empresarial a medida visita nuestra página de desarrollo de aplicaciones y software a medida y descubre cómo adaptamos la solución a tus necesidades. Para proyectos centrados en IA y estrategias de inteligencia artificial consulta nuestra oferta de servicios de inteligencia artificial.

Palabras clave incluidas para mejorar posicionamiento: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.

Si necesitas ayuda para instrumentar Micrometer en tu arquitectura, diseñar políticas de etiquetas o integrar la observabilidad con Prometheus, Datadog o CloudWatch, en Q2BSTUDIO podemos ayudarte a diseñar e implantar la solución óptima para tu plataforma.