Monitoreo
El arquetipo configura una superficie de monitoreo basada en una allowlist de endpoints actuator y agrega tres componentes propios para observar las bandejas del patron outbox/inbox: un endpoint custom, cuatro HealthIndicator y dos metricas Micrometer. Las decisiones detras de esa configuracion se discuten en Decisiones de monitoreo.
Configuracion por defecto
Todas las propiedades viven bajo management.* en el application.yaml del proyecto generado.
| Propiedad | Valor | Notas |
|---|---|---|
|
|
Allowlist. Cualquier otro endpoint que Spring auto-configure queda fuera. La semantica de los endpoints estandar vive en la doc de Spring Boot Actuator. |
|
|
Idem |
|
|
Activa |
|
|
Cachea el resultado de |
|
|
|
|
|
Registra |
|
|
Idem para |
|
|
Default global para las cuatro bandejas. Override por bandeja: ver abajo. |
|
Los endpoints que Spring auto-configura y no estan en la allowlist — |
Endpoint /actuator/message-boxes
Endpoint custom — no provisto por Spring — con estadisticas de las cuatro bandejas del patron outbox/inbox: events.outbox, events.inbox, commands.outbox, commands.inbox.
Estructura de la respuesta
{
"events": {
"outbox": {
"pending": 12,
"failed": 0,
"stuck": 0,
"stuckThreshold": "PT5M",
"oldestPendingAt": "2026-04-29T20:31:47.812Z",
"lastProcessedAt": "2026-04-29T20:42:03.117Z"
},
"inbox": { ... }
},
"commands": {
"outbox": { ... },
"inbox": { ... }
}
}
Campos por bandeja
| Campo | Significado |
|---|---|
|
Mensajes en estado |
|
Mensajes en estado |
|
Mensajes |
|
|
|
Timestamp del mensaje pendiente mas antiguo. |
|
Timestamp del ultimo mensaje procesado exitosamente. |
Para uso operacional (curl, override de threshold) ver Inspeccionar las bandejas de mensajeria.
Indicadores de health custom
MessageBoxHealthIndicator registra cuatro indicadores que se suman a los que Spring auto-configura, accesibles en /actuator/health con un usuario autorizado:
| Indicador | Que reporta |
|---|---|
|
|
|
Estos indicadores son una probe del read path — confirman que la tabla se puede leer. Una bandeja con miles de mensajes pendientes sigue siendo El backlog se observa via las metricas Micrometer o el endpoint |
Metricas custom
MessageBoxesMeterBinder registra dos metricas Micrometer, una por estado relevante. Cada una se etiqueta con type y box, generando 4 x 2 = 8 series totales:
| Metrica | Que mide | Tags |
|---|---|---|
|
Cantidad de mensajes en |
|
|
Cantidad de mensajes en |
|
Consulta directa: /actuator/metrics/messagebox.pending (todas las series agregadas) o /actuator/metrics/messagebox.pending?tag=type:events&tag=box:outbox para una serie especifica.
|
No hay metrica |
Override del stuck-threshold por bandeja
Cada bandeja admite un valor propio bajo management.endpoint.health.message-boxes.<type>.<box>.stuck-threshold, donde <type> ∈ {events, commands} y <box> ∈ {outbox, inbox}.
Resolucion: override por bandeja → default global → fallback PT5M hardcoded en MessageBoxesHealthProperties. Para ejemplos concretos de override ver Inspeccionar las bandejas.
Referencias
-
Spring Boot Actuator — catalogo y semantica de los endpoints estandar (
health,info,loggers,metrics, etc.). -
Spring Boot Kubernetes probes — composicion de los grupos
livenessyreadiness, y como personalizarlos. -
Micrometer concepts —
Gauge, tags y como los exporters convierten metricas a series temporales.