Compartir a través de


Procedimientos recomendados para escalar áreas de trabajo de Azure Monitor con el servicio administrado de Azure Monitor para Prometheus

El servicio administrado de Azure Monitor para Prometheus permite recopilar y analizar métricas a escala. Las métricas de Prometheus se almacenan en áreas de trabajo de Azure Monitor. El área de trabajo admite herramientas de análisis como Azure Managed Grafana, explorador de métricas de Azure Monitor con PromQL y herramientas de código abierto como PromQL y Grafana.

En este artículo se proporcionan procedimientos recomendados para organizar las áreas de trabajo de Azure Monitor para satisfacer su escala y creciente volumen de ingesta de datos.

Criterios de diseño de topología

Un único área de trabajo de Azure Monitor puede ser suficiente para muchos casos de uso. Algunas organizaciones crean varias áreas de trabajo para satisfacer mejor sus requisitos. A medida que identifique los criterios adecuados para crear áreas de trabajo adicionales, cree el número más bajo de áreas de trabajo que coincidan con sus requisitos, a la vez que se optimiza para una sobrecarga de administración administrativa mínima.

A continuación se muestran escenarios que requieren la división de un área de trabajo de Azure Monitor en varias áreas de trabajo:

Escenario Procedimiento recomendado
Nubes soberanas Al trabajar con más de una nube soberana, cree un área de trabajo de Azure Monitor en cada nube.
Requisitos normativos o de cumplimiento Si está sujeto a regulaciones que exigen el almacenamiento de datos en regiones específicas, cree un área de trabajo de Azure Monitor por región según sus requisitos.
Escalado regional Al administrar métricas para organizaciones diversas regionalmente, como servicios grandes o instituciones financieras con cuentas regionales, cree un área de trabajo de Azure Monitor por región.
Inquilinos de Azure Para varios inquilinos de Azure, cree un área de trabajo de Azure Monitor en cada inquilino. No se admite la consulta de datos entre inquilinos.
Entornos de implementación Cree un área de trabajo independiente para cada uno de los entornos de implementación para mantener métricas discretas para entornos de desarrollo, prueba, preproducción y producción.
Límites y cuotas de servicio Las áreas de trabajo de Azure Monitor tienen límites de ingesta predeterminados, los cuales se pueden aumentar mediante la apertura de un ticket de soporte. Si se está aproximando al límite o calcula que superará el límite de ingesta, considere la posibilidad de solicitar un aumento o dividir el área de trabajo en dos o más áreas de trabajo.

Límites y cuotas de servicio

Las áreas de trabajo de Azure Monitor tienen cuotas y limitaciones predeterminadas para las métricas de 1 millón de eventos ingeridos por minuto. A medida que aumenta su uso y necesita procesar más métricas, puede solicitar un aumento. Si los requisitos de capacidad son excepcionalmente grandes y las necesidades de ingesta de datos superan los límites de un único área de trabajo de Azure Monitor, considere la posibilidad de crear varias áreas de trabajo de Azure Monitor. Use las métricas de la plataforma del área de trabajo de Azure Monitor para supervisar el uso y los límites. Para más información sobre los límites y cuotas, consulte Límites y cuotas del servicio Azure Monitor.

Tenga en cuenta los siguientes procedimientos recomendados para administrar los límites y cuotas del área de trabajo de Azure Monitor:

Procedimiento recomendado Descripción
Supervise y cree una alerta sobre los límites de ingesta y el uso. En Azure Portal, vaya al área de trabajo de Azure Monitor. Vaya a Métricas y compruebe que las métricas % de uso de series temporales activas y % de uso de eventos por minuto ingeridos están por debajo del 100 %. Establezca una alerta de Azure Monitor para supervisar el uso y desencadenar cuando el uso sea mayor que el 80 % del límite. Para obtener más información sobre la supervisión del uso y los límites, consulte Cómo puedo supervisar los límites y cuotas del servicio.
Solicitud de aumento de límite cuando el uso supera el 80 % del límite actual. A medida que aumenta el uso de Azure, es probable que aumente el volumen de datos ingeridos. Se recomienda solicitar un aumento de los límites si la ingesta de datos supera o está cerca del 80 % del límite de ingesta. Para solicitar un aumento del límite, consulte Solicitud de un aumento del límite de ingesta.
Calcule la escala proyectada. A medida que aumenta el uso e ingiere más métricas en el área de trabajo, realice una estimación de la escala proyectada y la tasa de crecimiento. En función de las proyecciones, solicite un aumento en el límite.
Ingesta con escritura remota mediante el contenedor side-car de Azure Monitor. Si usa el contenedor sidecar de Azure Monitor y la escritura remota para ingerir métricas en un área de trabajo de Azure Monitor, tenga en cuenta los límites siguientes:
  • El contenedor side-car puede procesar hasta 150 000 series temporales únicas.
  • El contenedor puede producir errores al atender solicitudes de más de 150 000 debido al gran número de conexiones simultáneas. Mitigue este problema aumentando el tamaño del lote remoto del valor predeterminado de 500 a 1000. Cambiar el tamaño del lote remoto reduce el número de conexiones abiertas.
  • Límites de DCR/DCE. Los límites se aplican a las reglas de recopilación de datos (DCR) y a los puntos de conexión de recopilación de datos (DCE) que envían métricas de Prometheus al área de trabajo de Azure Monitor. Para obtener información sobre estos límites, consulte Límites de servicio de Prometheus. Estos límites no se pueden aumentar.

    Considere la posibilidad de crear DCR y DCE adicionales para distribuir la carga de ingesta entre varios puntos de conexión. Este enfoque ayuda a optimizar el rendimiento y garantiza un control de datos eficaz. Para más información sobre cómo crear DCRs y DCEs, consulte Cómo crear un punto de conexión de recopilación de datos personalizado (DCE) y una regla de recopilación de datos personalizada (DCR) para un área de trabajo existente de Azure Monitor para ingerir métricas de Prometheus.

    Optimización del rendimiento para grandes volúmenes de datos

    Ingestión

    Para optimizar la ingesta, tenga en cuenta los siguientes procedimientos recomendados:

    Procedimiento recomendado Descripción
    Identificar métricas de cardinalidad alta. Identifique las métricas que tienen una cardinalidad alta o métricas que generan muchas series temporales. Una vez que identifique las métricas de alta cardinalidad, optimícelas para reducir el número de series temporales quitando etiquetas innecesarias.
    Use la configuración de Prometheus para optimizar la ingesta. Azure Managed Prometheus proporciona Configmaps, que tienen valores que se pueden configurar y usar para optimizar la ingesta. Para obtener más información, vea ama-metrics-settings-configmap y ama-metrics-prometheus-config-configmap. Estas configuraciones siguen el mismo formato que el archivo de configuración de Prometheus.
    Para obtener información sobre cómo personalizar la recopilación, consulte Personalización de la extracción de métricas de Prometheus en el servicio administrado de Azure Monitor para Prometheus. Por ejemplo, tenga en cuenta lo siguiente:

  • Ajuste los intervalos de extracción.
  • La frecuencia de extracción predeterminada es de 30 segundos, que se puede cambiar por destino predeterminado mediante configmap. Para equilibrar el equilibrio entre la granularidad de los datos y el uso de recursos, ajuste el scrape_interval y el scrape_timeout en función de la importancia de las métricas.

  • Quite las etiquetas innecesarias para las métricas de cardinalidad alta.
  • Para las métricas de cardinalidad alta, identifique las etiquetas que no son necesarias y elimínelas para reducir el número de series temporales. Use el metric_relabel_configs para quitar etiquetas específicas de la ingesta. Para obtener más información, consulte Configuración de Prometheus.

    Utilice configmap, cambie la configuración según lo requiera y aplique configmap al namespace kube-system para el clúster. Si usa la escritura remota en y el área de trabajo de Azure Monitor, aplique las personalizaciones durante la ingesta directamente en la configuración de Prometheus.

    Consultas

    Para optimizar las consultas, tenga en cuenta los procedimientos recomendados siguientes:

    Uso de reglas de grabación para optimizar el rendimiento de las consultas

    Las reglas de grabación de Prometheus se usan para procesar previamente las consultas usadas con frecuencia, o las consultas de alto costo computacional, lo que hace que sean más eficientes y más rápidas para realizar consultas. Las reglas de grabación son especialmente útiles para las métricas de gran volumen en las que la consulta de datos sin procesar puede ser lenta y con un uso intensivo de recursos. Para obtener más información, consulte Reglas de grabación. Azure Managed Prometheus proporciona una manera administrada y escalable de crear y actualizar reglas de grabación con la ayuda de Grupos de reglas de Azure Managed Prometheus.

    Una vez creados los grupos de reglas, Azure Managed Prometheus carga automáticamente y comienza a evaluarlos. Consultar grupos de reglas desde el área de trabajo de Azure Monitor, como otras métricas de Prometheus.

    Las reglas de grabación tienen las siguientes ventajas:

    • Mejora del rendimiento de las consultas Las reglas de grabación se pueden usar para precomputen consultas complejas, lo que hace que sean más rápidos para realizar consultas más adelante. El procesamiento previo de consultas complejas reduce la carga en Prometheus cuando se consultan estas métricas.

    • Eficiencia y menor tiempo de consulta Las reglas de grabación precomputen los resultados de la consulta, lo que reduce el tiempo necesario para consultar los datos. Esto es especialmente útil para los paneles de control con múltiples paneles o métricas de alta cardinalidad.

    • Simplicidad Las reglas de grabación simplifican las consultas en Grafana u otras herramientas de visualización, ya que pueden hacer referencia a métricas precaladas.

    En el ejemplo siguiente se muestra una regla de grabación tal como se define en el grupo de reglas de Prometheus administrado de Azure:

    "record": "job:request_duration_seconds:avg ",
    "expression": "avg(rate(request_duration_seconds_sum[5m])) by (job)",
    "labels": {  "workload_type": "job"
                            },
    "enabled": true
    

    Para métricas más complejas, cree reglas de grabación que agreguen varias métricas o realicen cálculos más avanzados. En el ejemplo siguiente, instance:node_cpu_utilisation:rate5m calcula el uso de CPU cuando la CPU no está inactiva

    "record": "instance:node_cpu_utilisation:rate5m",
     "expression": "1 - avg without (cpu) (sum without (mode)(rate(node_cpu_seconds_total{job=\"node\", mode=~\"idle|iowait|steal\"}[5m])))",
    "labels": {
                                "workload_type": "job"
                            },
    "enabled": true
    

    Tenga en cuenta los siguientes procedimientos recomendados para optimizar las reglas de grabación:

    Procedimiento recomendado Descripción
    Identificar métricas de gran volumen. Céntrese en las métricas que se consultan con frecuencia y que tengan una cardinalidad alta.
    Optimizar intervalo de evaluación de reglas. Para equilibrar la actualización de datos y la carga computacional, ajuste el intervalo de evaluación de las reglas de grabación.
    Supervisar el rendimiento. Supervise el rendimiento de las consultas y ajuste las reglas de grabación según sea necesario.
    Optimice las reglas limitando el ámbito. Para que las reglas de grabación sean más rápidas, limite el ámbito a un clúster específico. Para obtener más información, consulte Limitación de reglas a un clúster específico.

    Uso de filtros en consultas

    La optimización de las consultas de Prometheus mediante filtros implica refinar las consultas para devolver solo los datos necesarios, lo que reduce la cantidad de datos procesados y mejora el rendimiento. A continuación se muestran algunas técnicas comunes para refinar las consultas de Prometheus.

    Procedimiento recomendado Descripción
    Use filtros de etiqueta. Los filtros de etiqueta ayudan a reducir los datos solo a lo que necesita. Prometheus permite el filtrado mediante la sintaxis {label_name="label_value"}. Si tiene un gran número de métricas en varios clústeres, una manera fácil de limitar series temporales es usar el filtro cluster.

    Por ejemplo, en lugar de consultar container_cpu_usage_seconds_total, filtre por el clúster container_cpu_usage_seconds_total{cluster="cluster1"}.
    Aplicar selectores de intervalo de tiempo. El uso de intervalos de tiempo específicos puede reducir significativamente la cantidad de datos consultados.

    Por ejemplo, en lugar de consultar todos los puntos de datos de los últimos siete días http_requests_total{job="myapp"}, consulte la última hora mediante http_requests_total{job="myapp"}[1h].
    Use la agregación y la agrupación. Las funciones de agregación se pueden usar para resumir datos, lo que puede ser más eficaz que procesar puntos de datos sin procesar. Al agregar datos, use by para agrupar por etiquetas específicas o without para excluir etiquetas específicas.

    Por ejemplo, sume las solicitudes agrupadas por trabajo: sum(rate(http_requests_total[5m])) by (job).
    Filtre al principio de la consulta. Para limitar el conjunto de datos desde el principio, aplique filtros lo antes posible en la consulta. Por ejemplo, en lugar de sum(rate(http_requests_total[5m])) by (job), filtre primero y, a continuación, agregue como se indica a continuación: sum(rate(http_requests_total{job="myapp"}[5m])) by (job).
    Evite regex siempre que sea posible. Los filtros regex pueden ser eficaces, pero también son costosos de calcular. Use coincidencias exactas siempre que sea posible. Por ejemplo, en lugar de http_requests_total{job=~"myapp.*"}, use http_requests_total{job="myapp"}.
    Use el desplazamiento para los datos históricos. Si compara los datos actuales con datos históricos, use el modificador offset.

    Por ejemplo, para comparar las solicitudes actuales con respecto a las solicitudes de hace 24 horas, use rate(http_requests_total[5m]) - rate(http_requests_total[5m] offset 24h).
    Limitar puntos de datos en gráficos. Al crear gráficos, limite el número de puntos de datos para mejorar el rendimiento de la representación. Use el parámetro de paso para controlar la resolución.

    Por ejemplo, en Grafana: establezca un valor de paso superior para reducir los puntos de datos:http_requests_total{job="myapp"}[1h:10s].

    Consultas paralelas

    La ejecución de un gran número de consultas paralelas en Prometheus puede provocar cuellos de botella de rendimiento y puede afectar a la estabilidad del servidor Prometheus. Para controlar un gran volumen de consultas paralelas de forma eficaz, siga los procedimientos recomendados siguientes:

    Procedimiento recomendado Descripción
    Distribución de carga de consultas. Distribuya la carga de consultas mediante la propagación de las consultas en intervalos de tiempo diferentes o en instancias de Prometheus.
    Consultas escalonadas. Programe consultas para que se ejecuten a intervalos diferentes para evitar picos de ejecuciones simultáneas de consultas.

    Si sigue experimentando problemas con la ejecución de muchas consultas paralelas, cree una incidencia de soporte técnico para solicitar un aumento de los límites de consulta.

    Alertas y reglas de grabación

    Optimización de alertas y reglas de grabación para gran escala

    Las alertas y reglas de grabación de Prometheus se pueden definir como grupos de reglas de Prometheus. Un grupo de reglas puede contener hasta 20 alertas o reglas de grabación. Cree hasta 500 grupos de reglas para cada área de trabajo para dar cabida al número de alertas o reglas necesarias. Para aumentar este límite, abra un ticket de soporte

    Al definir las reglas de grabación, tenga en cuenta el intervalo de evaluación para optimizar el número de series temporales por regla y el rendimiento de las evaluaciones de reglas. Los intervalos de evaluación pueden estar entre 1 minuto y 24 horas. El valor predeterminado es 1 minuto.

    Uso de Resource Health para ver las consultas del estado de la regla de grabación

    Configure Resource Health para ver el estado del grupo de reglas de Prometheus en el portal. Resource Health permite detectar problemas en las reglas de grabación, como una configuración incorrecta o problemas de limitación de consultas. Para obtener más información sobre cómo configurar Resource Health, consulte Visualización de los estados de mantenimiento de los recursos de los grupos de reglas de Prometheus.