Juniper NETWORKS- logotipTelemetria a Junos per a càrregues de treball d'IA/ML
Autor: Shalini Mukherjee

Introducció

Com que el trànsit del clúster d'IA requereix xarxes sense pèrdues amb alt rendiment i baixa latència, un element crític de la xarxa d'IA és la recollida de dades de monitorització. Junos Telemetry permet un seguiment granular dels indicadors clau de rendiment, inclosos llindars i comptadors per a la gestió de la congestió i l'equilibri de la càrrega del trànsit. Les sessions gRPC admeten la transmissió de dades de telemetria. gRPC és un marc modern, de codi obert i d'alt rendiment que es basa en el transport HTTP/2. Potencia les capacitats de transmissió bidireccional natives i inclou metadades personalitzades flexibles a les capçaleres de la sol·licitud. El pas inicial de la telemetria és saber quines dades s'han de recollir. Aleshores podem analitzar aquestes dades en diferents formats. Un cop recollits les dades, és important presentar-les en un format fàcil de controlar, prendre decisions i millorar el servei que s'ofereix. En aquest article, utilitzem una pila de telemetria formada per Telegraf, InfluxDB i Grafana. Aquesta pila de telemetria recopila dades mitjançant un model push. Els models d'extracció tradicionals consumeixen molts recursos, requereixen una intervenció manual i poden incloure buits d'informació a les dades que recullen. Els models push superen aquestes limitacions mitjançant l'entrega de dades de manera asíncrona. Enriqueixen les dades mitjançant l'ús fàcil d'utilitzar tags i noms. Un cop les dades estan en un format més llegible, les emmagatzemem en una base de dades i les utilitzem en una visualització interactiva web aplicació per a l'anàlisi de la xarxa. Figura. La figura 1 ens mostra com aquesta pila està dissenyada per a la recollida, l'emmagatzematge i la visualització de dades eficients, des dels dispositius de xarxa que transmeten dades al col·lector fins a les dades que es mostren als taulers de control per a l'anàlisi.

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML -

Pila TIG

Hem utilitzat un servidor Ubuntu per instal·lar tot el programari inclosa la pila TIG.

Telègraf
Per recollir dades, utilitzem Telegraf en un servidor Ubuntu amb 22.04.2. La versió de Telegraf que s'executa en aquesta demostració és la 1.28.5.
Telegraf és un agent de servidor impulsat per complements per recopilar i informar mètriques. Utilitza un processador plugins per enriquir i normalitzar les dades. La sortida plugins s'utilitzen per enviar aquestes dades a diversos magatzems de dades. En aquest document en fem servir dos plugins: un per a sensors openconfig i l'altre per a sensors natius Juniper.
InfluxDB
Per emmagatzemar les dades en una base de dades de sèries temporals, utilitzem InfluxDB. El connector de sortida de Telegraf envia les dades a InfluxDB, que les emmagatzema d'una manera altament eficient. Estem utilitzant la V1.8, ja que no hi ha cap CLI per a la V2 i superior.
Grafana
Grafana s'utilitza per visualitzar aquestes dades. Grafana extreu les dades d'InfluxDB i permet als usuaris crear taulers de control rics i interactius. Aquí, estem executant la versió 10.2.2.

Configuració a l'interruptor

Per implementar aquesta pila, primer hem de configurar el commutador tal com es mostra a la figura 2. Hem utilitzat el port 50051. Aquí es pot utilitzar qualsevol port. Inicieu sessió al commutador QFX i afegiu la configuració següent.

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

Nota: Aquesta configuració és per a laboratoris/POC, ja que la contrasenya es transmet en text clar. Utilitzeu SSL per evitar-ho.

Medi ambient

Juniper NETWORKS Telemetria a Junos per al programari de càrregues de treball d'AI ML - Entorn

Nginx
Això és necessari si no podeu exposar el port on està allotjat Grafana. El següent pas és instal·lar nginx al servidor Ubuntu per servir com a agent intermediari invers. Un cop instal·lat nginx, afegiu les línies que es mostren a la figura 4 al fitxer "predeterminat" i moveu el fitxer de /etc/nginx a /etc/nginx/sites-enabled.

Juniper NETWORKS Telemetria a Junos per al programari AI ML Workloads - Nginx

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML - Nginx1

Assegureu-vos que el tallafocs estigui ajustat per donar accés complet al servei nginx tal com es mostra a la figura 5.

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML - Nginx2

Un cop instal·lat nginx i fets els canvis necessaris, hauríem de poder accedir a Grafana des d'un web navegador mitjançant l'adreça IP del servidor Ubuntu on està instal·lat tot el programari.
Hi ha un petit error a Grafana que no us permet restablir la contrasenya predeterminada. Seguiu aquests passos si us trobeu amb aquest problema.
Passos a realitzar al servidor Ubuntu per establir la contrasenya a Grafana:

  • Aneu a /var/lib/grafana/grafana.db
  • Instal·leu sqllite3
    o sudo apt install sqlite3
  • Executeu aquesta comanda al vostre terminal
    o sqlite3 grafana.db
  •  S'obre l'indicador d'ordres de Sqlite; executeu la consulta següent:
    > esborra de l'usuari on login='admin'
  • Reinicieu grafana i escriviu admin com a nom d'usuari i contrasenya. Demana una nova contrasenya.

Un cop instal·lat tot el programari, creeu el fitxer de configuració a Telegraf que us ajudarà a extreure les dades de telemetria del commutador i empènyer-los a InfluxDB.

Connector Openconfig Sensor

Al servidor Ubuntu, editeu el fitxer /etc/telegraf/telegraf.conf per afegir tot el necessari plugins i sensors. Per als sensors openconfig, utilitzem el connector gNMI que es mostra a la figura 6. Per a finalitats de demostració, afegiu el nom d'amfitrió com a "spine1", el número de port "50051" que s'utilitza per a gRPC, el nom d'usuari i la contrasenya del commutador i el número. de segons per tornar a marcar en cas d'error.
A l'estrofa de subscripció, afegiu un nom únic, "cpu" per a aquest sensor en concret, la ruta del sensor i l'interval de temps per agafar aquestes dades del commutador. Afegiu el mateix connector inputs.gnmi i inputs.gnmi.subscription per a tots els sensors de configuració oberts. (Figura 6)

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML - Nginx3

Connector de sensor natiu

Aquest és un connector d'interfície de telemetria de Juniper utilitzat per a sensors natius. Al mateix fitxer telegraf.conf, afegiu el connector de sensor natiu inputs.jti_openconfig_telemetry on els camps són gairebé els mateixos que openconfig. Utilitzeu un identificador de client únic per a cada sensor; aquí, fem servir "telegraf3". El nom únic que s'utilitza aquí per a aquest sensor és "mem" (figura 7).

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML - Nginx4

Finalment, afegiu un connector de sortida outputs.influxdb per enviar aquestes dades del sensor a InfluxDB. Aquí, la base de dades s'anomena "telegraf" amb el nom d'usuari com "influx" i la contrasenya "influxdb" (figura 8).

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML - Nginx5

Un cop hàgiu editat el fitxer telegraf.conf, reinicieu el servei de telegraf. Ara, comproveu l'InfluxDB CLI per assegurar-vos que es creen mesures per a tots els sensors únics. Escriviu "influx" per entrar a la CLI d'InfluxDB.

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML - Nginx6

Com es veu a la figura. 9, introduïu l'indicador d'influxDB i utilitzeu la base de dades "telegraf". Tots els noms únics donats als sensors s'enumeren com a mesures.
Per veure la sortida de qualsevol mesura, només per assegurar-vos que el fitxer de telègraf és correcte i que el sensor funciona, utilitzeu l'ordre "seleccioneu * del límit 1 de la CPU", tal com es mostra a la figura 10.

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML - Nginx7

Cada vegada que es fan canvis al fitxer telegraf.conf, assegureu-vos d'aturar InfluxDB, reinicieu Telegraf i, a continuació, inicieu InfluxDB.
Inicieu sessió a Grafana des del navegador i creeu taulers de control després d'assegurar-vos que les dades s'estan recopilant correctament.
Aneu a Connexions > InfuxDB > Afegeix una font de dades nova.

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML - Nginx8

  1. Doneu un nom a aquesta font de dades. En aquesta demostració és "prova-1".
  2.  A l'estrofa HTTP, utilitzeu l'IP del servidor Ubuntu i el port 8086.
    Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML - Nginx9
  3. Als detalls d'InfluxDB, utilitzeu el mateix nom de base de dades, "telegraf", i proporcioneu el nom d'usuari i la contrasenya del servidor Ubuntu.
  4. Feu clic a Desa i prova. Assegureu-vos que vegeu el missatge "èxit".
    Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML - Nginx10
  5. Un cop s'hagi afegit correctament la font de dades, aneu a Taulers de control i feu clic a Nou. Creem uns quants quadres de comandament que són essencials per a les càrregues de treball d'IA/ML en mode editor.

Exampels de gràfics de sensors

Els següents són exampfitxers d'alguns comptadors principals que són essencials per supervisar una xarxa d'IA/ML.
PercenttagÚs per a una interfície d'entrada et-0/0/0 a la columna vertebral-1
Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Gràfics

  • Seleccioneu la font de dades com a prova-1.
  • A la secció DE, seleccioneu la mesura com a "interfície". Aquest és el nom únic utilitzat per a aquesta ruta del sensor.
  • A la secció ON, seleccioneu el dispositiu::tag, i en el tag valor, seleccioneu el nom d'amfitrió de l'interruptor, és a dir, spine1.
  • A la secció SELECT, trieu la branca del sensor que voleu controlar; en aquest cas, trieu “field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)”. Ara, a la mateixa secció, feu clic a "+" i afegiu aquestes matemàtiques de càlcul (/50000000000 * 100). Bàsicament estem calculant el percentatgetagÚs d'una interfície 400G.
  • Assegureu-vos que el FORMAT sigui "sèrie temporal" i anomeneu el gràfic a la secció ALIAS.

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML - Gràfics1Ocupació màxima del buffer per a qualsevol cua

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML - Gràfics2

  • Seleccioneu la font de dades com a prova-1.
  • A la secció DE, seleccioneu la mesura com a "búfer".
  • A la secció ON, hi ha tres camps per omplir. Seleccioneu dispositiu::tag, i en el tag valor seleccionar el nom d'amfitrió de l'interruptor (és a dir, la columna vertebral-1); I seleccioneu /cos/interfaces/interface/@name::tag i seleccioneu la interfície (és a dir, et- 0/0/0); I també seleccioneu la cua, /cos/interfaces/interface/queues/queue/@queue::tag i trieu la cua número 4.
  • A la secció SELECT, trieu la branca del sensor que voleu controlar; en aquest cas, trieu "field(/cos/interfaces/interface/queues/queue/PeakBufferOccupancy)."
  • Assegureu-vos que el FORMAT sigui "sèrie temporal" i anomeneu el gràfic a la secció ALIAS.

Podeu recopilar dades per a diverses interfícies en el mateix gràfic tal com es veu a la figura 17 per a et-0/0/0, et-0/0/1, et-0/0/2, etc.

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML - Gràfics3

PFC i ECN signifiquen derivada
Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - derivat

Per trobar la derivada mitjana (la diferència de valor dins d'un interval de temps), utilitzeu el mode de consulta en brut.
Aquesta és la consulta d'influx que hem utilitzat per trobar la derivada mitjana entre dos valors de PFC a et-0/0/0 de Spine-1 en un segon.
SELECT derivat(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) DES de “interfície” ON (“dispositiu”::tag = 'Spine-1') I $timeFilter GROUP BY time($interval)

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML: de la mateixa manera per a ECN

SELECT derivat(mean ("/interfaces/interface[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts"), 1s) FROM "interface" WHERE ("dispositiu"::tag = 'Spine-1') I $timeFilter GROUP BY time($interval)

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML: de la mateixa manera per a ECN1

Els errors dels recursos d'entrada signifiquen derivada

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML: de la mateixa manera per a ECN2

La consulta en brut per als errors de recursos significa derivada és:
SELECT derivat(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) DE “interfície” ON (“dispositiu”::tag = 'Spine-1') I $timeFilter GROUP BY time($interval)

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML: de la mateixa manera per a ECN3

Les gotes de la cua signifiquen derivats

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML: de la mateixa manera per a ECN4

La consulta en brut per a la derivada mitjana de caigudes de cua és:
SELECT derivat(mean ("/cos/interfaces/interface/queues/queue/tailDropBytes"), 1s) FROM "buffer" WHERE ("dispositiu"::tag = "Fulla-1" I "/cos/interfaces/interface/@name"::tag = "et-0/0/0" I "/cos/interfaces/interface/queues/queue/@queue"::tag = '4') I $timeFilter GROUP BY time($__interval) fill(nul)
 Ús de la CPU

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Ús de la CPU

  • Seleccioneu la font de dades com a prova-1.
  • A la secció DE, seleccioneu la mesura com a "newcpu"
  • Al ON, hi ha tres camps per omplir. Seleccioneu dispositiu::tag i en el tag valor seleccioneu el nom d'amfitrió de l'interruptor (és a dir, la columna vertebral-1). I a /components/component/properties/propietat/nom:tag, i seleccioneu cpuutilization-total AND al nom::tag seleccioneu RE0.
  • A la secció SELECT, trieu la branca del sensor que voleu supervisar. En aquest cas, trieu "camp (estat/valor)".

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML: utilització de la CPU1

La consulta en brut per trobar la derivada no negativa de les caigudes de cua per a diversos interruptors en múltiples interfícies en bits/s.
SELECT non_negative_derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s)*8 DES DEL “búfer” ON (dispositiu::tag =~ /^Spine-[1-2]$/) i ("/cos/interfaces/interface/@name"::tag =~ /et-0\/0\/[0-9]/ o "/cos/interfaces/interface/@name"::tag=~/et-0\/0\/1[0-5]/) I $timeFilter GROUP BY time($__interval),dispositiu::tag omplir (null)

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML: utilització de la CPU2

Aquests van ser alguns dels exampfitxers dels gràfics que es poden crear per supervisar una xarxa AI/ML.

Resum

Aquest article il·lustra el mètode per extreure dades de telemetria i visualitzar-les mitjançant la creació de gràfics. Aquest article parla específicament dels sensors AI/ML, tant natius com openconfig, però la configuració es pot utilitzar per a tot tipus de sensors. També hem inclòs solucions per a diversos problemes que podríeu trobar durant la creació de la configuració. Els passos i sortides descrits en aquest document són específics de les versions de la pila TIG esmentades anteriorment. Està subjecte a canvis segons la versió del programari, els sensors i la versió de Junos.

Referències

Juniper Yang Data Model Explorer per a totes les opcions de sensor
https://apps.juniper.net/ydm-explorer/
Fòrum Openconfig per a sensors openconfig
https://www.openconfig.net/projects/models/

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

Seu Corporativa i Comercial
Juniper Networks, Inc.
1133 Camí de la Innovació
Sunnyvale, CA 94089 EUA
Telèfon: 888. JUNIPER (888.586.4737)
o +1.408.745.2000
Fax: +1.408.745.2100
www.juniper.net
Seu APAC i EMEA
Juniper Networks International BV
Avinguda Boeing 240
1119 PZ Schiphol-Rijk
Amsterdam, Països Baixos
Telèfon: +31.207.125.700
Fax: +31.207.125.701
Copyright 2023 Juniper Networks. Inc. Tots els drets reservats. Juniper Networks, el logotip de Juniper Networks, Juniper, Junos i altres marques comercials són marques registrades de Juniper Networks. inc. i/o les seves filials als Estats Units i altres països. Altres noms poden ser marques comercials dels seus respectius propietaris. Juniper Networks no assumeix cap responsabilitat per qualsevol inexactitud en aquest document. Juniper Networks es reserva el dret de canviar. modificar. transferir o revisar aquesta publicació sense previ avís.
Envieu comentaris a: design-center-comments@juniper.net V1.0/240807/ejm5-telemetry-junos-ai-ml

Documents/Recursos

Telemetria de Juniper NETWORKS a Junos per al programari de càrregues de treball d'AI ML [pdfGuia de l'usuari
Telemetria a Junos per al programari AI ML Workloads, Junos for AI ML Workloads Software, AI ML Workloads Software, Workloads Software, Software

Referències

Deixa un comentari

La teva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats *