• EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Crea una propuesta

Escalando la instancia del agente Prometheus

Cuando el clúster crece en tamaño, Prometheus recopila más datos y, en algún momento, alcanza los límites de la cantidad de datos que el agente Prometheus puede procesar. El modo de falla más común es quedarse sin memoria debido a la mayor cardinalidad de las series temporales. Cuando esto sucede, tu instancia de Prometheus comienza a morir porque necesita más memoria, lo que significa que necesitas comenzar a escalar.

Para analizar la solución en detalle, proporcionamos un dashboard con diferentes gráficos que nos ayudan a saber cuándo tenemos que escalar nuestra solución Prometheus.

Hay dos enfoques de escala diferentes para el agente Prometheus de New Relic: vertical u horizontal.

Escalado vertical

Este tipo de escalado no presenta ninguna complejidad. Es tan simple como actualizar la memoria o la CPU de la máquina correspondiente donde se encuentra el nodo del clúster.

Sin embargo, este enfoque puede no ser escalable para grandes clústeres, o simplemente no queremos tener un solo pod que consuma tantos GB de memoria en nuestro nodo. Si es así, es posible que necesite utilizar una escala horizontal.

Escala horizontal

El escalado horizontal, también conocido como fragmentación, se admite mediante la configuración de un parámetro de configuración que permite ejecutar varios servidores Prometheus en modo agente para recopilar sus datos.

Si defines el valor sharding.total_shards_count , desplegar StatefulSet incluirá tantas réplicas como definas. Cuando lo usa, el componente configurador incluye automáticamente algunas reglas de reetiquetado adicionales, por lo que cada objetivo solo es eliminado por un servidor Prometheus. Esas reglas se basan en la dirección hash-mod del objetivo.

Para establecer las reglas de reetiquetado para cada objetivo, el agente calcula un hash para el objetivo dado __address__ y luego aplica el modulus al hash, siendo el módulo el número total de fragmentos. Entonces, sabe en qué fragmento debe incluirse el objetivo raspado.

Por ejemplo, si incluye lo siguiente en el archivo custom-values.yaml :

# (...)
sharding:
total_shards_count: 2
# (...)

Y luego, actualiza la versión ejecutando:

bash
$
helm upgrade my-prometheus-release newrelic-prometheus-configurator/newrelic-prometheus-agent -f custom-values.yaml

Luego, se ejecutarán dos servidores Prometheus y cada objetivo solo será eliminado por uno de ellos.

Un diagrama de ejemplo sería el siguiente:

Identificación del raspador objetivo

La identificación del fragmento (nombre del StatefulSet Pod) se agrega como una etiqueta prometheus_server a todas las métricas y puede usarla para comprender qué instancia de Prometheus está eliminando cada objetivo.

Para identificar de forma única una instancia del servidor Prometheus dentro de una cuenta, debe utilizar una combinación de las etiquetas cluster_name y prometheus_server .

Autométrica

El servidor Prometheus self-métrica debe recopilarse de todos los servidores Prometheus, por lo que las reglas adicionales cuando se configura la fragmentación no se aplican al trabajo de recopilar el Prometheus self-métrica. Esto es posible porque el agente acepta el indicador skip_sharding en los trabajos static_target . Este parámetro ya está configurado en el trabajo autométrico predeterminado.

Limitaciones

Si incluye trabajos de raspado adicionales en la configuración como extra_scrape_configs, ya que ese campo contiene la definición sin formato de trabajos de Prometheus, el agente no incluirá las reglas correspondientes a la configuración de fragmentación y, como resultado, el objetivo correspondiente será descartado por Todos los servidores Prometheus.

Actualmente, no se admite el escalado automático. Para aumentar o disminuir la cantidad de fragmentos, debe actualizar la configuración del gráfico, lo que reinicia el pod de Prometheus.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.