Telemetria 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.
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.
Nota: Aquesta configuració és per a laboratoris/POC, ja que la contrasenya es transmet en text clar. Utilitzeu SSL per evitar-ho.
Medi ambient
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.
Assegureu-vos que el tallafocs estigui ajustat per donar accés complet al servei nginx tal com es mostra a la figura 5.
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)
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).
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).
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.
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.
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.
- Doneu un nom a aquesta font de dades. En aquesta demostració és "prova-1".
- A l'estrofa HTTP, utilitzeu l'IP del servidor Ubuntu i el port 8086.
- 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.
- Feu clic a Desa i prova. Assegureu-vos que vegeu el missatge "èxit".
- 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
- 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.
Ocupació màxima del buffer per a qualsevol cua
- 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.
PFC i ECN signifiquen derivada
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)
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)
Els errors dels recursos d'entrada signifiquen derivada
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)
Les gotes de la cua signifiquen derivats
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
- 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)".
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)
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/
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 |