Configuración de integración para microservicios
Verificación de dependencias necesarias
dependencies {
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation("io.micrometer:micrometer-registry-prometheus")
}
Configuración de aplicación
Habilitar acceso a endpoints de actuator
seguridad:
nube:
urisAnonimas: /actuator/****
Configuración de endpoints de métricas
gestion:
servidor:
puerto: 19080
metricas:
exportacion:
prometheus:
habilitado: true
intervalo: 1m
descripciones: true
etiquetas:
aplicacion: ${spring.application.name}
web:
servidor:
peticion:
autotiempo:
habilitado: true
endpoint:
salud:
sondeos:
habilitado: true
prometheus:
habilitado: true
salud:
estadoVivo:
habilitado: true
estadoListo:
habilitado: true
endpoints:
web:
exposicion:
incluir: "salud,metricas,prometheus"
Configuración de implementación en Kubernetes
Recolección de métricas de Promethesu
especificacion:
replicas: 1
selector:
etiquetasCoincidentes:
aplicacion: demo
plantilla:
metadatos:
etiquetas:
aplicacion: demo
k8s: lanzamiento
nombre: demo
version: v1
anotaciones:
prometheus.io/ruta: /actuator/prometheus
prometheus.io/puerto: '19080'
prometheus.io/raspar: 'true'
Creación de PodMonitor
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: demo-app
labels:
monitor-pod: demo
namespace: default
spec:
selectorNamespace:
nombresCoincidentes:
- default
selector:
etiquetasCoincidentes:
aplicacion: demo
endpointsMetricasPod:
- puertoObjetivo: 19080
ruta: /actuator/prometheus
Panel de control de Grafana
Estructura básica del dashboard
{
"paneles": [
{
"tipo": "tabla",
"titulo": "Lista de contenedores",
"objetivos": [
{
"expr": "kube_pod_status_phase{pod=~\"$app-(.*)\",namespace=\"default\"} == 1",
"formato": "tabla"
}
]
}
]
}
Métricas de rendimiento incluidas
- Uso de CPU y memoria por contenedor
- Estadísticas de solicitudes HTTP y QPS
- Métricas de conexiones de base de datos (HikariCP)
- Monitoreo de pools de threads
- Métricas JVM (memoria heap/non-heap, GC)