Problema
Has instalado la integración Prometheus OpenMetrics para docker o Kubernetes y consume demasiada memoria o CPU.
Solución
Al ejecutar la integración en un clúster enorme con cientos de objetivos, el consumo de CPU y memoria aumentará, y el número de trabajadores podría afectar scrape_duration
.
Por ejemplo, una integración de Prometheus OpenMetrics consume 2,5 CPU y 700 Mb de RAM porque:
- Elimina
800 targets
, exponiendo1000 timeseries
cada uno. - Cada uno tiene una latencia de
150ms
con unscrape_duration
de 30 segundos.
Para reducir el consumo de recursos:
Actualice la integración a la última imagen disponible.
Reduzca el tiempo de cosecha bajando
emitter_harvest_period
. (El valor predeterminado es1s
y el intervalo no puede ser menor que200ms
). Dado que las métricas se envían con más frecuencia, el consumo de memoria se reduce.Recopile métricas con menos frecuencia aumentando
scrape_duration
para reducir tanto el consumo de memoria como el uso de CPU.Reduzca la cantidad de trabajadores para reducir tanto el consumo de memoria como el uso de CPU. El raspado se ralentizará y podría exceder
scrape_duration.
Para hacerlo:- Actualice la integración a la última versión disponible de la imagen.
- Disminuya
worker_threads
del valor predeterminado de4
a su valor preferido.