Juniper NETWORKS- logotipoTelemetría en Junos para cargas de traballo de IA/ML
Autor: Shalini Mukherjee

Introdución

Como o tráfico do clúster de IA require redes sen perdas con alto rendemento e baixa latencia, un elemento crítico da rede de IA é a recollida de datos de monitorización. Junos Telemetry permite un seguimento granular dos indicadores clave de rendemento, incluídos limiares e contadores para a xestión da conxestión e o equilibrio da carga de tráfico. As sesións de gRPC admiten a transmisión de datos de telemetría. gRPC é un marco moderno, de código aberto e de alto rendemento que se basea no transporte HTTP/2. Potencia as capacidades nativas de transmisión bidireccional e inclúe metadatos personalizados flexíbeis nas cabeceiras das solicitudes. O paso inicial en telemetría é saber que datos se van recoller. Despois podemos analizar estes datos en varios formatos. Unha vez recollidos os datos, é importante presentalos nun formato que sexa fácil de controlar, tomar decisións e mellorar o servizo que se ofrece. Neste artigo, usamos unha pila de telemetría formada por Telegraf, InfluxDB e Grafana. Esta pila de telemetría recolle datos mediante un modelo push. Os modelos de extracción tradicionais requiren un uso intensivo de recursos, requiren intervención manual e poden incluír lagoas de información nos datos que recollen. Os modelos push superan estas limitacións entregando datos de forma asíncrona. Eles enriquecen os datos mediante o uso fácil de usar tags e nomes. Unha vez que os datos están nun formato máis lexible, almacenámolos nunha base de datos e utilizámolos nunha visualización interactiva web aplicación para analizar a rede. Figura. A figura 1 móstranos como está deseñada esta pila para a recollida, almacenamento e visualización de datos eficientes, desde os dispositivos de rede que envían datos ao colector ata os datos que se amosan nos paneis para a súa análise.

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de AI ML -

Pila TIG

Usamos un servidor Ubuntu para instalar todo o software, incluíndo a pila TIG.

Telegrafa
Para recoller datos, usamos Telegraf nun servidor Ubuntu que executa o 22.04.2. A versión de Telegraf que se executa nesta demostración é a 1.28.5.
Telegraf é un axente de servidor impulsado por complementos para recoller e informar métricas. Usa un procesador plugins para enriquecer e normalizar os datos. A saída plugins úsanse para enviar estes datos a varios almacéns de datos. Neste documento utilizamos dous plugins: un para sensores openconfig e outro para sensores nativos de Juniper.
InfluxDB
Para almacenar os datos nunha base de datos de series temporais, usamos InfluxDB. O complemento de saída en Telegraf envía os datos a InfluxDB, que os almacena dun xeito altamente eficiente. Estamos a usar a versión 1.8 xa que non hai ningunha CLI para a versión 2 ou superior.
Grafana
Grafana úsase para visualizar estes datos. Grafana extrae os datos de InfluxDB e permite aos usuarios crear paneis de control ricos e interactivos. Aquí estamos executando a versión 10.2.2.

Configuración no Switch

Para implementar esta pila, primeiro necesitamos configurar o conmutador como se mostra na Figura 2. Usamos o porto 50051. Aquí pódese usar calquera porto. Inicie sesión no interruptor QFX e engada a seguinte configuración.

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de AI ML - Switch

Nota: Esta configuración é para laboratorios/POC xa que o contrasinal transmítese en texto claro. Use SSL para evitar isto.

Medio ambiente

Telemetría de Juniper NETWORKS en Junos para AI ML Workloads Software - Ambiente

Nginx
Isto é necesario se non podes expoñer o porto no que está aloxado Grafana. O seguinte paso é instalar nginx no servidor Ubuntu para servir como axente de proxy inverso. Unha vez instalado nginx, engade as liñas mostradas na Figura 4 ao ficheiro "predeterminado" e move o ficheiro de /etc/nginx a /etc/nginx/sites-enabled.

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de AI ML - Nginx

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de IA ML - Nginx1

Asegúrese de que o firewall estea axustado para dar acceso total ao servizo nginx como se mostra na Figura 5.

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de IA ML - Nginx2

Unha vez instalado nginx e feitos os cambios necesarios, deberíamos poder acceder a Grafana desde a web navegador utilizando o enderezo IP do servidor Ubuntu onde está instalado todo o software.
Hai un pequeno fallo en Grafana que non che permite restablecer o contrasinal predeterminado. Use estes pasos se se atopa con este problema.
Pasos a realizar no servidor Ubuntu para establecer o contrasinal en Grafana:

  • Vaia a /var/lib/grafana/grafana.db
  • Instalar sqllite3
    o sudo apt install sqlite3
  • Executa este comando no teu terminal
    o sqlite3 grafana.db
  •  Ábrese o indicador de comandos de Sqlite; executa a seguinte consulta:
    >eliminar do usuario onde login='admin'
  • Reinicie grafana e escriba admin como nome de usuario e contrasinal. Solicita un novo contrasinal.

Unha vez instalado todo o software, cree o ficheiro de configuración en Telegraf que axudará a extraer os datos de telemetría do interruptor e empúxao a InfluxDB.

Complemento de sensor Openconfig

No servidor Ubuntu, edite o ficheiro /etc/telegraf/telegraf.conf para engadir todo o necesario plugins e sensores. Para os sensores openconfig, usamos o complemento gNMI que se mostra na Figura 6. Para fins de demostración, engade o nome de host como "spine1", o número de porto "50051" que se usa para gRPC, o nome de usuario e o contrasinal do switch e o número. de segundos para volver a marcar en caso de falla.
Na estrofa da subscrición, engade un nome único, "cpu" para este sensor en particular, a ruta do sensor e o intervalo de tempo para coller estes datos do interruptor. Engade o mesmo complemento inputs.gnmi e inputs.gnmi.subscription para todos os sensores de configuración abertos. (Figura 6)

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de IA ML - Nginx3

Complemento de sensor nativo

Este é un complemento de interface de telemetría de Juniper usado para sensores nativos. No mesmo ficheiro telegraf.conf, engade o complemento de sensor nativo inputs.jti_openconfig_telemetry onde os campos son case os mesmos que openconfig. Use un ID de cliente único para cada sensor; aquí, usamos "telegraf3". O nome único usado aquí para este sensor é "mem" (Figura 7).

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de IA ML - Nginx4

Por último, engade un complemento de saída outputs.influxdb para enviar os datos deste sensor a InfluxDB. Aquí, a base de datos chámase "telegraf" co nome de usuario como "influx" e contrasinal "influxdb" (Figura 8).

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de IA ML - Nginx5

Despois de editar o ficheiro telegraf.conf, reinicie o servizo de telegraf. Agora, comprobe a CLI de InfluxDB para asegurarse de que se crean medidas para todos os sensores únicos. Escriba "influx" para entrar na CLI de InfluxDB.

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de IA ML - Nginx6

Como se ve na figura. 9, introduza o indicador de influxDB e use a base de datos "telegraf". Todos os nomes únicos dados aos sensores están listados como medidas.
Para ver a saída de calquera medida, só para asegurarse de que o ficheiro de telegraf é correcto e que o sensor funciona, use o comando "seleccionar * do límite da CPU 1" como se mostra na Figura 10.

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de IA ML - Nginx7

Cada vez que se fagan cambios no ficheiro telegraf.conf, asegúrate de deter InfluxDB, reiniciar Telegraf e despois iniciar InfluxDB.
Inicie sesión en Grafana desde o navegador e cree paneis despois de asegurarse de que os datos se recollen correctamente.
Vaia a Conexións > InfuxDB > Engadir nova fonte de datos.

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de IA ML - Nginx8

  1. Dálle un nome a esta fonte de datos. Nesta demostración é "test-1".
  2.  Baixo a estrofa HTTP, use a IP do servidor Ubuntu e o porto 8086.
    Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de IA ML - Nginx9
  3. Nos detalles de InfluxDB, use o mesmo nome da base de datos, "telegraf", e proporcione o nome de usuario e o contrasinal do servidor Ubuntu.
  4. Fai clic en Gardar e probar. Asegúrate de ver a mensaxe "con éxito".
    Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de IA ML - Nginx10
  5. Unha vez que se engade a fonte de datos con éxito, vai a Paneles e fai clic en Novo. Imos crear algúns paneis que son esenciais para as cargas de traballo de AI/ML no modo editor.

Exampos de gráficos de sensores

Os seguintes son os exampficheiros dalgúns contadores principais que son esenciais para supervisar unha rede de IA/ML.
Porcenttage utilización para unha interface de entrada et-0/0/0 en spine-1
Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de AI ML - Gráficos

  • Seleccione a fonte de datos como proba-1.
  • Na sección DE, seleccione a medida como "interfaz". Este é o nome único usado para esta ruta do sensor.
  • Na sección ONDE, selecciona o dispositivo::tag, e no tag valor, seleccione o nome de host do switch, é dicir, spine1.
  • Na sección SELECCIONAR, escolla a rama do sensor que quere supervisar; neste caso, escolla "field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)". Agora, na mesma sección, fai clic en "+" e engade esta matemática de cálculo (/50000000000 * 100). Basicamente estamos calculando o porcentaxetage utilización dunha interface 400G.
  • Asegúrate de que o FORMATO é "serie temporal" e nomea o gráfico na sección ALIAS.

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de AI ML - Gráficos 1Ocupación máxima do buffer para calquera cola

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de AI ML - Gráficos 2

  • Seleccione a fonte de datos como proba-1.
  • Na sección DE, seleccione a medida como "búfer".
  • Na sección ONDE hai tres campos para cubrir. Seleccionar dispositivo::tag, e no tag value seleccione o nome de host do interruptor (é dicir, spine-1); E selecciona /cos/interfaces/interface/@name::tag e seleccione a interface (é dicir, et- 0/0/0); E selecciona tamén a cola, /cos/interfaces/interface/queues/queue/@queue::tag e escolle a cola número 4.
  • Na sección SELECCIONAR, escolla a rama do sensor que quere supervisar; neste caso, escolla "field(/cos/interfaces/interface/queues/queue/PeakBufferOccupancy)."
  • Asegúrate de que o FORMATO é "serie temporal" e nomea o gráfico na sección ALIAS.

Podes agrupar datos de varias interfaces no mesmo gráfico como se ve na Figura 17 para et-0/0/0, et-0/0/1, et-0/0/2, etc.

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de AI ML - Gráficos 3

PFC e ECN significan derivada
Juniper NETWORKS Telemetry In Junos para AI ML Workloads Software - derivado

Para atopar a derivada media (a diferenza de valor dentro dun intervalo de tempo), use o modo de consulta en bruto.
Esta é a consulta de afluencia que usamos para atopar a derivada media entre dous valores de PFC en et-0/0/0 de Spine-1 nun segundo.
SELECCIONAR derivado(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) FROM “interface” WHERE (“dispositivo”::tag = 'Columna vertebral-1') E $timeFiltro GRUPO POR tempo ($intervalo)

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de AI ML: do mesmo xeito para ECN

SELECCIONAR derivado(mean(“/interfaces/interface[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts”), 1s) FROM “interface” WHERE (“dispositivo”::tag = 'Columna vertebral-1') E $timeFiltro GRUPO POR tempo ($intervalo)

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de AI ML: do mesmo xeito para ECN1

Os erros dos recursos de entrada significan derivados

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de AI ML: do mesmo xeito para ECN2

A consulta en bruto para erros de recursos significa derivada é:
SELECCIONAR derivado(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) FROM “interface” WHERE (“dispositivo”::tag = 'Columna vertebral-1') E $timeFiltro GRUPO POR tempo ($intervalo)

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de AI ML: do mesmo xeito para ECN3

As gotas de cola significan derivada

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de AI ML: do mesmo xeito para ECN4

A consulta en bruto para a derivada media de caídas de cola é:
SELECCIONAR derivado(media ("/cos/interfaces/interface/queues/queue/tailDropBytes"), 1s) FROM "buffer" WHERE ("dispositivo"::tag = "Folla-1" E "/cos/interfaces/interface/@nome"::tag = 'et-0/0/0' E "/cos/interfaces/interface/queues/queue/@queue"::tag = '4') E $timeFilter GROUP BY time($__interval) fill(null)
 Utilización da CPU

Telemetría de Juniper NETWORKS en Junos para software de cargas de traballo de AI ML: utilización da CPU

  • Seleccione a fonte de datos como proba-1.
  • Na sección DE, seleccione a medida como "newcpu"
  • No DONDE hai tres campos para cubrir. Seleccionar dispositivo::tag e no tag value seleccione o nome de host do switch (é dicir, spine-1). E en /components/component/properties/property/nome:tag, e seleccione cpuutilization-total AND no nome::tag seleccione RE0.
  • Na sección SELECCIONAR, escolla a rama do sensor que quere supervisar. Neste caso, escolla "campo(estado/valor)".

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de AI ML: utilización da CPU1

A consulta en bruto para atopar a derivada non negativa das caídas de cola para varios interruptores en múltiples interfaces en bits/s.
SELECT non_negative_derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s)*8 FROM “buffer” WHERE (dispositivo::tag =~ /^Spine-[1-2]$/) e ("/cos/interfaces/interface/@name"::tag =~ /et-0\/0\/[0-9]/ ou "/cos/interfaces/interface/@name"::tag=~/et-0\/0\/1[0-5]/) E $timeFilter GROUP BY time($__interval),dispositivo::tag recheo (nulo)

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de AI ML: utilización da CPU2

Estes foron algúns dos exampficheiros dos gráficos que se poden crear para supervisar unha rede AI/ML.

Resumo

Este artigo ilustra o método de extraer datos de telemetría e visualizalos mediante a creación de gráficos. Este artigo fala específicamente dos sensores AI/ML, tanto nativos como openconfig, pero a configuración pódese usar para todo tipo de sensores. Tamén incluímos solucións para varios problemas que podes enfrontar ao crear a configuración. Os pasos e saídas descritos neste documento son específicos para as versións da pila TIG mencionadas anteriormente. Está suxeito a cambios dependendo da versión do software, dos sensores e da versión de Junos.

Referencias

Juniper Yang Data Model Explorer para todas as opcións de sensor
https://apps.juniper.net/ydm-explorer/
Foro Openconfig para sensores openconfig
https://www.openconfig.net/projects/models/

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - icona

Sede Corporativa e Comercial
Juniper Networks, Inc.
1133 Camiño da Innovación
Sunnyvale, CA 94089 EUA
Teléfono: 888. JUNIPER (888.586.4737)
ou +1.408.745.2000
Fax: +1.408.745.2100
www.juniper.net
Sede APAC e EMEA
Juniper Networks International BV
Boeing Avenue 240
1119 PZ Schiphol-Rijk
Amsterdam, Países Baixos
Teléfono: +31.207.125.700
Fax: +31.207.125.701
Copyright 2023 Juniper Networks. Inc. Todos os dereitos reservados. Juniper Networks, o logotipo de Juniper Networks, Juniper, Junos e outras marcas comerciais son marcas rexistradas de Juniper Networks. inc. e/ou as súas filiales nos Estados Unidos e noutros países. Outros nomes poden ser marcas comerciais dos seus respectivos propietarios. Juniper Networks non asume ningunha responsabilidade por calquera imprecisión neste documento. Juniper Networks resérvase o dereito de cambiar. modificar. transferir ou revisar esta publicación sen previo aviso.
Enviar comentarios a: design-center-comments@juniper.net V1.0/240807/ejm5-telemetry-junos-ai-ml

Documentos/Recursos

Telemetría de Juniper NETWORKS en Junos para o software de cargas de traballo de AI ML [pdfGuía do usuario
Telemetría en Junos para AI ML Workloads Software, Junos para AI ML Workloads Software, AI ML Workloads Software, Workloads Software, Software

Referencias

Deixa un comentario

O teu enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados *