Prometheus: recopila métricas y verifica tus targets
Prometheus recopila métricas de endpoints compatibles y permite consultarlas como series temporales. Para aprender, puedes comenzar haciendo que se observe a sí mismo. Después incorporarás exporters o aplicaciones que expongan información.
Este laboratorio usa Docker Compose, una configuración local y persistencia para las series. El panel se publica solo en loopback.
Crea la configuración
Guarda prometheus.yml:
global:
scrape_interval: 15s
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ["localhost:9090"]
Aquí localhost es correcto porque Prometheus consulta su propio proceso. Para otro contenedor, debes utilizar su nombre de servicio y una red compartida.
Declara el servicio
En compose.yaml:
services:
prometheus:
image: ${PROMETHEUS_IMAGE:?Define una imagen Prometheus mantenida}
ports:
- "127.0.0.1:9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
- metrics_data:/prometheus
command:
- --config.file=/etc/prometheus/prometheus.yml
- --storage.tsdb.path=/prometheus
- --storage.tsdb.retention.time=7d
volumes:
metrics_data:
Antes de iniciar, define PROMETHEUS_IMAGE en tu sesión o en un archivo de configuración sin secretos. Su valor debe ser una referencia completa del registro oficial, con una versión mantenida que hayas comprobado. Así evitas tratar una etiqueta histórica como recomendación permanente.
Valida e inicia
docker compose config --quiet
docker compose up -d
docker compose logs --tail 50 prometheus
curl -I http://127.0.0.1:9090
En la interfaz, comprueba el estado del target y realiza una consulta sencilla:
up
Un valor 1 indica éxito de la recopilación reciente para esa serie. No demuestra que la aplicación esté funcional desde la perspectiva del usuario; solo que el endpoint respondió de la forma esperada.
Añade métricas con una pregunta clara
Antes de instalar un exporter, decide qué quieres observar: solicitudes, errores, latencia o recursos. Comprueba sus permisos y qué información expone. Algunos exporters pueden revelar detalles sensibles del sistema.
No añadas etiquetas con identificadores únicos por petición o usuario sin revisar cardinalidad. Cada combinación de etiquetas puede crear más series y aumentar memoria, almacenamiento y trabajo de consulta.
Counters, gauges y consultas
Un counter suele acumular eventos y puede reiniciarse con el proceso; una tasa permite estudiar su evolución. Un gauge representa una cantidad que puede subir o bajar. Elegir una función incorrecta produce gráficas plausibles pero poco útiles.
Revisa unidad, ventana temporal y agregación. Dos paneles con el mismo nombre pueden medir cosas diferentes si usan etiquetas o ventanas distintas.
Persistencia, retención y acceso
La retención de siete días es una elección del laboratorio. Estima espacio según las series y el intervalo, y vigila que el disco no se agote. Un volumen persistente no elimina la necesidad de un diseño de recuperación.
No publiques la interfaz y endpoints de gestión directamente a internet. Si necesitas acceso remoto, diseña autenticación, TLS y restricciones apropiadas.
Si un target aparece DOWN
Prueba resolución del nombre, puerto y ruta de métricas desde la red de Prometheus. Revisa timeout y formato de respuesta. Si el endpoint requiere autenticación o TLS, configura esos requisitos correctamente en lugar de desactivarlos para ocultar el error.
Preguntas frecuentes
¿Necesito Grafana para usar Prometheus?
No. Puedes consultar métricas desde Prometheus. Grafana añade opciones de visualización y organización, pero no sustituye la recopilación.
¿Un target UP significa que mi web funciona bien?
No necesariamente. Confirma la recopilación de métricas; disponibilidad y experiencia del usuario requieren comprobaciones adicionales.
¿Puedo guardar series indefinidamente en el mismo volumen?
Depende de capacidad y diseño. Define retención y supervisa disco; no asumas que el almacenamiento crecerá sin límites.
En pocas palabras
Prometheus recopila series temporales de endpoints de métricas. Tener el panel abierto no demuestra que todos los objetivos estén bien configurados ni que exista una alerta útil.
Conclusión
Empieza por pocos targets, valida las etiquetas y formula una consulta que responda una pregunta concreta. Añade alertas y retención cuando conozcas volumen de datos y necesidades de operación.
Para continuar, revisa Docker: qué es y cómo usarlo para ejecutar contenedores y Cómo instalar Docker en Ubuntu 24.04: guía práctica paso a paso.
