Prometheus: recopila métricas y verifica tus targets

Índice de contenido
  1. Crea la configuración
  2. Declara el servicio
  3. Valida e inicia
  4. Añade métricas con una pregunta clara
  5. Counters, gauges y consultas
  6. Persistencia, retención y acceso
  7. Si un target aparece DOWN
  8. Preguntas frecuentes
    1. ¿Necesito Grafana para usar Prometheus?
    2. ¿Un target UP significa que mi web funciona bien?
    3. ¿Puedo guardar series indefinidamente en el mismo volumen?
  9. En pocas palabras
  10. Conclusión
  11. Fuentes y documentación

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.

Fuentes y documentación

Documentación de prometheus.io.

Documentación de prometheus.io.

Subir

Descubre más de Sergio Caballero

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Continuar leyendo