Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Contrail Networking Analytics

Descripción general: Análisis

El análisis es un conjunto de funciones opcionales en la versión 22.1 de Contrail Networking (CN2) nativa de la nube de Juniper®. Los análisis se empaquetan por separado de los componentes de la interfaz de red de contenedores (CNI) de núcleo de CN2. Los análisis también tienen su propio procedimiento de instalación. El paquete consiste en una combinación de software de código abierto y software desarrollado por Juniper que se integra con CN2.

Las funciones de análisis se ajustan a las siguientes áreas funcionales de alto nivel:

  • Métricas: datos estadísticos de series de tiempo recopilados de los componentes de Contrail Networking y el sistema base de Kubernetes

  • Registros de flujo y sesión: información de tráfico de red recopilada del vRouter de CN2

  • Entidades visibles del usuario (UVE) de Sandesh: registros que representan el estado de todo el sistema de objetos visibles externamente que se recopilan desde el vRouter cn2 y los componentes del nodo de control

  • Registros: mensajes de registro recopilados de los pods de Kubernetes

  • Introspect: una utilidad de diagnóstico que ofrece la capacidad de examinar el estado interno de los componentes de CN2

Métricas

Modelo de datos

La información métrica se basa en un modelo de datos de series de tiempo numérico. Cada punto de datos de una serie es una muestra de algún estado del sistema que se recopila a intervalos regulares. Se registra un valor de muestra junto con una marca de hora en la que se produjo la recopilación. Un registro de ejemplo también puede contener un conjunto opcional de pares clave-valor llamados etiquetas. Las etiquetas proporcionan una capacidad de dimensión para métricas en las que una combinación dada de etiquetas para el mismo nombre de la métrica identifica una instanciación dimensional particular de esa métrica. Por ejemplo, una métrica denominada api_http_requests_total puede utilizar etiquetas para proporcionar visibilidad de los recuentos de solicitudes a nivel de URL y tipo de método. En el ejemplo siguiente, el registro de métricas para un valor de muestra de 10 incluye etiquetas que indican el tipo de solicitud.

api_http_requests_total{method="POST", handler="/messages"} 10

Tipos de datos métricos

Aunque todos los valores de muestra de métricas son solo números, el concepto de tipo de datos existe dentro de este modelo de datos numéricos. Una métrica puede ser uno de los siguientes tipos:

  • Contador: métrica acumulativa que representa un único contador monotónicamente creciente cuyo valor solo puede aumentar o restablecerse a cero al reiniciarse.

  • Medidor: métrica que representa un único valor numérico que puede subir y bajar arbitrariamente.

  • Histograma: un histograma muestra las observaciones (como la duración de las solicitudes o los tamaños de respuesta) y las cuenta en buckets configurables. El histograma también proporciona una suma de todos los valores observados.

  • Resumen: similar a un histograma, un resumen muestra observaciones de muestras (como la duración de las solicitudes y los tamaños de respuesta). Si bien también proporciona un recuento total de observaciones y una suma de todos los valores observados, el resumen calcula los cuantilos configurables en un período de tiempo de deslizamiento.

La funcionalidad de métricas en CN2 es implementada por Prometheus. Para obtener más información sobre el modelo de datos de métricas, consulte la documentación en Prometheus.

Métricas compatibles

La solución de análisis admite los siguientes conjuntos de métricas:

Alertas

Las alertas se generan a partir de un análisis de los datos métricos recopilados. Cada tipo de alerta compatible se basa en una definición de regla que contiene la siguiente información:

  • Nombre de alerta: un identificador de cadena único para el tipo de alerta

  • Expresión de condición: expresión de lenguaje de consulta de Prometheus que se evalúa con los valores de métricas recopilados para determinar si existe la condición de alerta

  • Duración de la condición: la cantidad de tiempo que debe existir la condición problemática para que se genere la alerta

  • Gravedad: el nivel de alerta (crítico, importante, advertencia, info.)

  • Resumen: una breve descripción de la condición problemática

  • Descripción: una descripción detallada de la condición problemática

La solución de análisis de CN2 instala un conjunto de reglas de alerta predefinidas. También puede definir sus propias reglas de alerta personalizadas. La creación de recursos de PrometheusRule Kubernetes en el espacio de nombres donde se despliega el gráfico helm analítico admite la definición de alertas personalizadas. A continuación, se muestra un ejemplo de una regla de alerta personalizada.

Prometheus almacena alertas generadas como registros que se pueden ver en la interfaz de usuario de Grafana. El componente AlertManager admite la integración con sistemas externos, como PagerDuty, OpsGenie o correo electrónico para notificaciones de alerta.

Arquitectura

Como se muestra en la figura 1, Prometheus es el componente central de la arquitectura de métricas. Prometheus implementa la siguiente funcionalidad:

  • Recopilación: un mecanismo de sondeo periódico que invoca llamadas de API contra otros componentes (exportadores) para extraer valores de un conjunto de métricas.

  • Almacenamiento: una base de datos de series de tiempo que proporciona persistencia para las métricas recopiladas de los exportadores

  • Consulta: una API compatible con un lenguaje de expresión llamado PromQL (lenguaje de consulta Prometheus) que permite recuperar la información de métrica histórica de la base de datos

  • Alertas: un marco que ofrece la capacidad de definir reglas que producen alertas cuando se observan ciertas condiciones en los datos de métricas recopilados.

Figura 1: Arquitectura Metrics Architecture de métricas

Los otros componentes de la arquitectura de métricas son:

  • Grafana: un servicio que proporciona una interfaz de interfaz de usuario web que permite al usuario visualizar los datos de métricas en gráficos.

  • AlertManager: un servicio de integración que notifica a los sistemas externos de las alertas generadas por Prometheus.

Configuración

La funcionalidad de métricas no requiere ninguna configuración por parte del usuario final. La instalación de análisis se encarga de configurar Prometheus para recopilar métricas de los exportadores que proporcionan todas las métricas descritas en métricas compatibles. También se configura automáticamente un grupo de reglas de alerta predeterminadas como parte de la instalación. Puede ampliar la funcionalidad mediante una configuración adicional después de la instalación. Por ejemplo, puede definir reglas de alerta específicas para el cliente. También puede configurar AlertManager para que se integre con cualquiera de los sistemas externos compatibles en su entorno.

La configuración de Prometheus y AlertManager implica un componente arquitectónico adicional llamado Operador de Prometheus. Como se muestra en la figura 2, la configuración se especifica como recursos personalizados de Kubernetes. El operador de Prometheus traduce el contenido de estos recursos a la configuración nativa que reconocen los componentes de Prometheus. El operador también actualiza los componentes en consecuencia y los reinicia cada vez que un cambio de configuración requiere un reinicio.

Figura 2: Operador Prometheus Operator de Prometheus

La documentación del conjunto completo de recursos que admite el operador de Prometheus está disponible en la API de operador de Prometheus. Juniper Networks recomienda que limite sus configuraciones al subconjunto de tipos de recursos relacionados con la definición de reglas de alerta y la integración del sistema externo.

Grafana

La interfaz de usuario principal para ver los datos de métricas y las alertas es Grafana. La instalación de análisis configura el servicio de Grafana y lo configura con Prometheus como fuente de datos. También se crea un conjunto de paneles predeterminados.

Acceda a la interfaz de usuario web de Grafana en https://<k8sClusterIP>/grafana/login. Las credenciales de inicio de sesión predeterminadas son de usuario admin y contraseña prom-operator.