Middle
¿Qué tipos de métricas en Prometheus conoces?
sobes.tech AI
Respuesta de la IA
Prometheus soporta cuatro tipos principales de métricas:
- Contador (Counter): Valor que solo puede aumentar de manera monótonica (o restablecerse a cero al reiniciar el proceso). Se usa para contar eventos incrementales, como solicitudes, errores o tareas completadas.
// Ejemplo en Go var requestsTotal = prometheus.NewCounter( prometheus.CounterOpts{ Name: "http_requests_total", Help: "Número total de solicitudes HTTP.", }, ) - Gauge (Indicador): Valor numérico arbitrario que puede aumentar o disminuir. Se usa para medir el estado actual de algo, como uso de CPU, memoria, número de usuarios activos o tamaño de la cola.
# Ejemplo en Python from prometheus_client import Gauge cpu_usage = Gauge('cpu_usage_percent', 'Porcentaje de uso actual de CPU') cpu_usage.set(55.5) - Histograma (Histogram): Mide la distribución de muestras (por ejemplo, tiempos de respuesta de solicitudes) y las agrupa en cubos configurables. Permite obtener datos sobre la cantidad de muestras en cada cubo y la suma total de valores. Se usa para analizar latencias.
// Ejemplo en Java import io.prometheus.client.Histogram; static final Histogram requestLatencies = Histogram.build() .name("http_request_duration_seconds") .help("Duración de la solicitud en segundos.") .buckets(0.1, 0.5, 1.0, 2.5, 5.0, 10.0) // Cubos .register(); - Resumen (Summary): Similar a un histograma, pero calcula cuantiles configurables de la distribución de muestras en una ventana de tiempo deslizante. También proporciona el conteo total de muestras y su suma. Es útil para medir latencias cuando los cuantiles son importantes, aunque requiere más potencia de cálculo en el cliente y puede dar cuantiles menos precisos en agregaciones.
# Ejemplo en Ruby require 'prometheus/client' requests_summary = Prometheus::Client::Summary.new(:request_duration_seconds, 'Duración de la solicitud en segundos.')
La elección del tipo de métrica depende de la naturaleza de los datos que se desea monitorear.