Métricas con Prometheus y Grafana
Configure Prometheus para recopilar métricas del clúster y de las aplicaciones, y visualícelas con Grafana.
Métricas con Prometheus y Grafana es una lección gratuita de Kubernetes Basics en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Kubernetes Basics, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Kubernetes Basics incluye 4 lecciones en total.
El poder de las métricas
Las métricas son mediciones numéricas que describen el estado y el rendimiento de sus aplicaciones y su infraestructura. ¡Piense en ellas como los signos vitales de su software!
Proporcionan información valiosa sobre:
- Rendimiento: ¿Con qué rapidez responde su aplicación?
- Uso de recursos: ¿Se está quedando su servidor sin memoria?
- Disponibilidad: ¿Su servicio está activo y funcionando para los usuarios?
Al realizar un seguimiento de las métricas, puede comprender las tendencias, detectar anomalías y solucionar problemas de forma proactiva.
Conozca Prometheus
Prometheus es un sistema de supervisión de código abierto diseñado para ofrecer fiabilidad y escalabilidad. Es una herramienta clave de la pila de observabilidad nativa de la nube.
Sus funciones principales son:
- Recopilar: Obtener métricas de destinos configurados (como sus aplicaciones).
- Almacenar: Guardar estas métricas en una base de datos de series temporales.
- Consultar: Permitirle hacer preguntas sobre los datos recopilados.
Prometheus le ayuda a obtener una visión clara de lo que ocurre dentro de su clúster de Kubernetes.
Modelo de «scraping» de Prometheus
Prometheus utiliza un modelo de tipo "pull" para recopilar métricas. En lugar de que las aplicaciones envíen datos a Prometheus, Prometheus hace activamente "scraping" o extrae las métricas de ellas.
En general, funciona de la siguiente manera:
- Su aplicación expone métricas en un endpoint HTTP específico (a menudo
/metrics). - Prometheus se configura con una lista de destinos (como la IP y el puerto de su aplicación).
- A intervalos regulares, Prometheus envía una solicitud HTTP al endpoint
/metricsde cada destino. - El destino responde con sus métricas actuales y Prometheus las almacena.
Métricas: pares clave-valor
Prometheus almacena los datos como series temporales: secuencias de valores con marca de tiempo. Cada serie temporal se identifica de forma única mediante un nombre de métrica y un conjunto de pares clave-valor llamados labels.
Ejemplo: http_requests_total{method="GET", path="/api"}
Prometheus tiene varios tipos de métricas principales:
- Counter: Métrica acumulativa que solo aumenta (por ejemplo, el total de solicitudes).
- Gauge: Valor que puede aumentar o disminuir (por ejemplo, el uso actual de la CPU).
- Histogram/Summary: Se utiliza para muestrear observaciones y contarlas en intervalos configurables (por ejemplo, las duraciones de las solicitudes).
Hacer que las aplicaciones «hablen» en métricas
Para que Prometheus pueda recopilar métricas, su aplicación debe exponerlas en un formato que Prometheus entienda. Esto suele hacerse mediante un endpoint HTTP.
Muchos lenguajes de programación cuentan con bibliotecas cliente que facilitan la instrumentación del código:
- Incrementar contadores cuando ocurren eventos.
- Establecer gauges para representar estados actuales.
- Medir la duración de las operaciones.
Veamos un ejemplo muy sencillo de una aplicación que expone una métrica de tipo contador básica.
Aplicación de Python que expone métricas
A continuación se muestra una pequeña aplicación de Python con Flask que expone una métrica de contador sencilla. Simula el recuento de visitas a páginas.
Ejecute este código y, después, intente acceder a /metrics desde su navegador o terminal (por ejemplo, después de ejecutarlo, visite http://localhost:5000/metrics).
from flask import Flask
from prometheus_client import Counter, generate_latest
import time
app = Flask(__name__)
c = Counter('my_app_requests_total', 'Total requests to my app')
@app.route('/')
def hello():
c.inc() # Increment the counter
return "Hello, CoddyKit!"
@app.route('/metrics')
def metrics():
return generate_latest().decode('utf-8')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)Prometheus en su clúster
En Kubernetes, implementar Prometheus de forma eficiente suele implicar el Prometheus Operator. Este operador ayuda a administrar las instancias y configuraciones de Prometheus.
Recursos clave de Kubernetes para Prometheus:
- ServiceMonitor: Indica a Prometheus *dónde* encontrar los endpoints de métricas (por ejemplo, qué Services y Pods debe recopilar).
- PodMonitor: Es similar a ServiceMonitor, pero se dirige directamente a los Pods.
Estos recursos permiten que Prometheus descubra y recopile automáticamente las métricas de sus aplicaciones implementadas.
Grafana: el maestro de los dashboards
Mientras Prometheus recopila y almacena las métricas, Grafana es la herramienta principal para visualizarlas. Es una aplicación web de código abierto para análisis y visualización interactiva.
Grafana le permite:
- Crear dashboards atractivos e informativos.
- Consultar varias fuentes de datos (como Prometheus).
- Configurar alertas basadas en umbrales de métricas.
Transforma los datos de métricas sin procesar en información útil para la toma de decisiones.
Grafana y Prometheus: una combinación potente
Grafana no almacena los datos de métricas por sí mismo; consulta los datos de fuentes externas. Para visualizar las métricas de Kubernetes, deberá configurar Prometheus como fuente de datos en Grafana.
Pasos:
- En Grafana, añada una nueva fuente de datos.
- Seleccione "Prometheus" como tipo.
- Proporcione la URL de su servidor de Prometheus.
- Comience a crear dashboards mediante el lenguaje de consulta de Prometheus, ¡PromQL!
Esta combinación le proporciona un control total sobre la supervisión de su clúster.
¡Ponga a prueba sus conocimientos!
¡Es hora de comprobar cuánto entiende de Prometheus y Grafana!
Recapitulación: métricas y visualización
¡Buen trabajo! En esta lección ha aprendido:
- La importancia de las métricas para la observabilidad.
- Prometheus como sistema potente para recopilar y almacenar métricas de series temporales.
- Cómo las aplicaciones exponen métricas para que Prometheus las recopile.
- Grafana para crear dashboards informativos y visualizar sus datos de métricas.
Comprender estas herramientas es fundamental para mantener sus aplicaciones de Kubernetes en buen estado y con un rendimiento adecuado. ¡Siga explorando cómo instrumentar sus propias aplicaciones!
Preguntas frecuentes
¿La lección «Métricas con Prometheus y Grafana» es gratis?
Sí — el texto completo de «Métricas con Prometheus y Grafana» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Kubernetes Basics, actualiza a CoddyKit PRO. El curso de Kubernetes Basics incluye 4 lecciones en total.
¿Qué aprenderé en «Métricas con Prometheus y Grafana»?
Configure Prometheus para recopilar métricas del clúster y de las aplicaciones, y visualícelas con Grafana. Practicas Kubernetes Basics con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Kubernetes Basics?
No se requiere experiencia previa. Kubernetes Basics en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Métricas con Prometheus y Grafana»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Kubernetes Basics?
Sí. Cada lección de Kubernetes Basics incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Registro con kubectl logs
- Métricas con Prometheus y Grafana
- Comprobaciones de estado: sondas de actividad y disponibilidad
- Trazas distribuidas y eventos