Telemetria Junosissa AI/ML-työkuormille
Kirjailija: Shalini Mukherjee
Johdanto
Koska tekoälyklusteriliikenne vaatii häviöttömiä verkkoja suurella suorituskyvyllä ja alhaisella latenssilla, AI-verkon kriittinen elementti on seurantatietojen kerääminen. Junos Telemetry mahdollistaa keskeisten suorituskykyindikaattoreiden, mukaan lukien kynnysarvot ja laskurit, ja liikenteen kuormituksen tasapainotuksen. gRPC-istunnot tukevat telemetriatietojen suoratoistoa. gRPC on moderni, avoimen lähdekoodin, korkean suorituskyvyn kehys, joka on rakennettu HTTP/2-kuljetukselle. Se mahdollistaa alkuperäiset kaksisuuntaiset suoratoistoominaisuudet ja sisältää joustavat mukautetut metatiedot pyyntöjen otsikoissa. Telemetrian ensimmäinen vaihe on tietää, mitä tietoja kerätään. Voimme sitten analysoida nämä tiedot eri muodoissa. Kerättyämme tiedot on tärkeää esittää muodossa, jota on helppo seurata, tehdä päätöksiä ja parantaa tarjottavaa palvelua. Tässä artikkelissa käytämme telemetriapinoa, joka koostuu Telegrafista, InfluxDB:stä ja Grafanasta. Tämä telemetriapino kerää tietoja push-mallin avulla. Perinteiset vetomallit ovat resurssivaltaisia, vaativat manuaalista puuttumista ja voivat sisältää tiedonpuutteita keräämissään tiedoissa. Push-mallit ylittävät nämä rajoitukset toimittamalla tietoja asynkronisesti. Ne rikastavat tietoja käyttämällä käyttäjäystävällistä tags ja nimet. Kun tiedot ovat luettavammassa muodossa, tallennamme ne tietokantaan ja käytämme sitä interaktiivisessa visualisoinnissa web sovellus verkon analysointiin. Kuva. Kuva 1 näyttää meille, kuinka tämä pino on suunniteltu tehokkaaseen tiedonkeruu-, tallennus- ja visualisointiin verkkolaitteista, jotka siirtävät tietoja keräilijään, aina kojelaudoissa analysoitavaksi näytettävään dataan.
TIG-pino
Asensimme Ubuntu-palvelimen kaikki ohjelmistot mukaan lukien TIG-pinon.
Lennätin
Käytämme tietojen keräämiseen Telegrafia Ubuntu-palvelimella, joka on käynnissä 22.04.2. Tässä demossa toimiva Telegraf-versio on 1.28.5.
Telegraf on laajennuspohjainen palvelinagentti mittareiden keräämiseen ja raportointiin. Se käyttää prosessoria plugins rikastaa ja normalisoida tietoja. Lähtö plugins käytetään näiden tietojen lähettämiseen eri tietovarastoihin. Tässä asiakirjassa käytämme kahta plugins: yksi openconfig-antureille ja toinen Juniper-antureille.
InfluxDB
Tietojen tallentamiseksi aikasarjatietokantaan käytämme InfluxDB:tä. Telegrafin lähtölaajennus lähettää tiedot InfluxDB:hen, joka tallentaa ne erittäin tehokkaasti. Käytämme versiota 1.8, koska CLI:tä ei ole saatavilla V2:lle ja uudemmille.
Grafana
Grafanaa käytetään näiden tietojen visualisointiin. Grafana hakee tiedot InfluxDB:stä ja antaa käyttäjille mahdollisuuden luoda monipuolisia ja interaktiivisia hallintapaneeleja. Täällä käytämme versiota 10.2.2.
Konfigurointi kytkimessä
Tämän pinon toteuttamiseksi meidän on ensin konfiguroitava kytkin kuvan 2 mukaisesti. Olemme käyttäneet porttia 50051. Tässä voidaan käyttää mitä tahansa porttia. Kirjaudu sisään QFX-kytkimeen ja lisää seuraavat asetukset.
Huomautus: Tämä konfiguraatio on tarkoitettu laboratorioille/POC:ille, koska salasana lähetetään selkeänä tekstinä. Käytä SSL:ää välttääksesi tämän.
Ympäristö
Nginx
Tätä tarvitaan, jos et pysty paljastamaan porttia, jossa Grafana isännöi. Seuraava vaihe on asentaa nginx Ubuntu-palvelimelle käänteisenä välityspalvelimena. Kun nginx on asennettu, lisää kuvan 4 rivit "oletustiedostoon" ja siirrä tiedosto tiedostosta /etc/nginx hakemistoon /etc/nginx/sites-enabled.
Varmista, että palomuuri on säädetty antamaan täyden pääsyn nginx-palveluun kuvan 5 mukaisesti.
Kun nginx on asennettu ja vaaditut muutokset on tehty, meidän pitäisi pystyä käyttämään Grafanaa osoitteesta a web selaimella käyttämällä sen Ubuntu-palvelimen IP-osoitetta, johon kaikki ohjelmistot on asennettu.
Grafanassa on pieni häiriö, joka ei anna sinun palauttaa oletussalasanaa. Käytä näitä ohjeita, jos kohtaat tämän ongelman.
Ubuntu-palvelimella suoritettavat vaiheet salasanan määrittämiseksi Grafanassa:
- Siirry osoitteeseen /var/lib/grafana/grafana.db
- Asenna sqllite3
o sudo apt install sqlite3 - Suorita tämä komento terminaalissasi
o sqlite3 grafana.db - Sqlite-komentokehote avautuu; suorita seuraava kysely:
>delete from user where login='admin' - Käynnistä grafana uudelleen ja kirjoita käyttäjätunnukseksi ja salasanaksi admin. Se pyytää uutta salasanaa.
Kun kaikki ohjelmistot on asennettu, luo Telegrafiin määritystiedosto, joka auttaa poistamaan telemetriatiedot kytkimestä ja työntämään sen InfluxDB:hen.
Openconfig Sensor Plugin
Muokkaa Ubuntu-palvelimella /etc/telegraf/telegraf.conf-tiedostoa lisätäksesi kaikki tarvittavat plugins ja anturit. Openconfig-antureissa käytämme kuvassa 6 näkyvää gNMI-laajennusta. Esittelyä varten lisää isäntänimi muodossa "spine1", portin numero "50051", jota käytetään gRPC:lle, kytkimen käyttäjätunnus ja salasana sekä numero. sekuntia uudelleenvalintaa varten, jos vika ilmenee.
Lisää tilauskohtaan yksilöllinen nimi, "prosessori" tälle tietylle anturille, anturin polku ja aikaväli näiden tietojen noutamiseen kytkimestä. Lisää sama laajennus inputs.gnmi ja inputs.gnmi.subscription kaikille avoimille konfigurointiantureille. (Kuva 6)
Native Sensor Plugin
Tämä on Juniperin telemetrialiitäntälaajennus, jota käytetään alkuperäisissä antureissa. Lisää samaan telegraf.conf-tiedostoon natiivi anturilaajennus inputs.jti_openconfig_telemetry, jossa kentät ovat melkein samat kuin openconfig. Käytä yksilöllistä asiakastunnusta jokaiselle anturille; tässä käytämme "telegraf3:a". Tässä anturin yksilöllinen nimi on "mem" (kuva 7).
Lisää lopuksi ulostulolaajennus outputs.influxdb lähettääksesi nämä anturitiedot InfluxDB:hen. Tässä tietokanta on nimeltään "telegraf", käyttäjätunnuksella "influx" ja salasanalla "influxdb" (kuva 8).
Kun olet muokannut telegraf.conf-tiedostoa, käynnistä telegraf-palvelu uudelleen. Tarkista nyt InfluxDB CLI:stä varmistaaksesi, että mittaukset on luotu kaikille ainutlaatuisille antureille. Kirjoita "influx" syöttääksesi InfluxDB CLI.
Kuten kuvasta näkyy. 9, kirjoita influxDB-kehote ja käytä tietokantaa "telegraf". Kaikki antureille annetut yksilölliset nimet on listattu mittauksina.
Jos haluat nähdä minkä tahansa mittauksen tuloksen, vain varmistaaksesi, että telegraf-tiedosto on oikea ja anturi toimii, käytä komentoa "select * from cpu limit 1" kuvan 10 mukaisesti.
Aina kun muutoksia tehdään telegraf.conf-tiedostoon, muista pysäyttää InfluxDB, käynnistää Telegraf uudelleen ja käynnistää sitten InfluxDB.
Kirjaudu sisään Grafanaan selaimella ja luo hallintapaneelit sen jälkeen, kun olet varmistanut, että tiedot kerätään oikein.
Siirry kohtaan Yhteydet > InfuxDB > Lisää uusi tietolähde.
- Anna tälle tietolähteelle nimi. Tässä demossa se on "test-1".
- Käytä HTTP-stanzan alla Ubuntu-palvelimen IP-osoitetta ja 8086-porttia.
- Käytä InfluxDB-tiedoissa samaa tietokannan nimeä "telegraf" ja anna Ubuntu-palvelimen käyttäjätunnus ja salasana.
- Napsauta Tallenna ja testaa. Varmista, että näet viestin "onnistui".
- Kun tietolähde on lisätty onnistuneesti, siirry kohtaan Dashboards ja napsauta Uusi. Luodaan muutama kojelauta, jotka ovat välttämättömiä AI/ML-työkuormille editoritilassa.
Examples Of Sensor Graphs
Seuraavat ovat mmampjoistakin tärkeistä laskureista, jotka ovat välttämättömiä AI/ML-verkon valvonnassa.
ProsenttitagKäyttöliittymä et-0/0/0 spine-1:ssä
- Valitse tietolähteeksi testi-1.
- Valitse FROM-osiosta mittaus "rajapinnaksi". Tämä on ainutlaatuinen nimi, jota käytetään tälle anturin polulle.
- Valitse WHERE-osiosta laite::tag, ja tag arvo, valitse kytkimen isäntänimi eli spine1.
- Valitse VALITSE-osiossa anturihaara, jota haluat valvoa; valitse tässä tapauksessa "field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)". Napsauta nyt samassa osiossa "+" ja lisää tämä laskelma (/50000000000 * 100). Pohjimmiltaan laskemme prosenttejatage 400G rajapinnan käyttö.
- Varmista, että FORMAT on "aikasarja", ja nimeä kaavio ALIAS-osiossa.
Huippupuskurin käyttöaste mille tahansa jonolle
- Valitse tietolähteeksi testi-1.
- Valitse FROM-osiossa mittaus "puskuriksi".
- WHERE-osiossa on täytettävä kolme kenttää. Valitse laite::tag, ja tag arvo valitse kytkimen isäntänimi (eli spine-1); JA valitse /cos/interfaces/interface/@name::tag ja valitse liitäntä (eli et- 0/0/0); JA valitse myös jono, /cos/interfaces/interface/queues/queue/@queue::tag ja valitse jono numero 4.
- Valitse VALITSE-osiossa anturihaara, jota haluat valvoa; valitse tässä tapauksessa "field(/cos/interfaces/interface/queues/queue/PeakBufferOccupancy)."
- Varmista, että FORMAT on "aikasarja" ja nimeä kaavio ALIAS-osiossa.
Voit koota tietoja useista liitännöistä samassa kaaviossa, kuten näkyy kuvassa 17 kohteille et-0/0/0, et-0/0/1, et-0/0/2 jne.
PFC ja ECN tarkoittavat johdannaista
Käytä raakakyselytilaa keskiarvon derivaatan (arvon eron aikavälillä) etsimiseen.
Tämä on sisääntulokysely, jota olemme käyttäneet löytääksemme kahden PFC-arvon välisen keskiarvon Spine-0:n et-0/0/1:ssa sekunnissa.
SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) FROM "liitäntä" WHERE ("laite"::tag = 'Spine-1') JA $timeFilter GROUP BY time($interval)
SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts”), 1s) FROM "liitäntä" WHERE ("laite"::tag = 'Spine-1') JA $timeFilter GROUP BY time($interval)
Syöttöresurssivirheet tarkoittavat johdannaista
Resurssivirheiden keskiarvojohdannainen raakakysely on:
SELECT derivative(mean("/interfaces/interface[if_name='et-0/0/0']/state/error-counters/if_in_resource_errors"), 1s) FROM "liitäntä" WHERE ("laite"::tag = 'Spine-1') JA $timeFilter GROUP BY time($interval)
Häntäpisarat tarkoittavat johdannaista
Raaka kysely tail drops -keskiarvojohdannaiselle on:
SELECT johdannainen(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s) FROM “puskuri” WHERE (”laite”::tag = 'Leaf-1' JA "/cos/interfaces/interface/@name"::tag = 'et-0/0/0' JA "/cos/interfaces/interface/queues/queue/@queue"::tag = '4') JA $timeFilter GROUP BY time($__interval) fill(null)
CPU:n käyttö
- Valitse tietolähteeksi testi-1.
- Valitse FROM-osiosta mittaukseksi "newcpu"
- WHERE-kohdassa on täytettävä kolme kenttää. Valitse laite::tag ja sisällä tag arvo valitse kytkimen isäntänimi (eli spine-1). JA hakemistossa /components/component/properties/property/name:tag, ja valitse cpuutilization-total AND nimessä::tag valitse RE0.
- Valitse VALITSE-osiosta anturihaara, jota haluat valvoa. Valitse tässä tapauksessa "Field(state/value)".
Raaka kysely ei-negatiivisen hännän pudotuksen johdannaisen löytämiseksi useille kytkimille useissa liitännöissä bitteinä sekunnissa.
SELECT non_negative_derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s)*8 FROM “puskuri” WHERE (laite::tag =~ /^Spine-[1-2]$/) ja ("/cos/interfaces/interface/@name"::tag =~ /et-0\/0\/[0-9]/ tai "/cos/interfaces/interface/@name"::tag=~/et-0\/0\/1[0-5]/) JA $timeFilter GROUP BY ajan mukaan ($__interval), laite::tag täytä (nolla)
Nämä olivat joitain exiäampAI/ML-verkon valvontaa varten luotavista kaavioista.
Yhteenveto
Tämä artikkeli havainnollistaa menetelmää telemetriatietojen hakemiseen ja sen visualisointiin luomalla kaavioita. Tässä artikkelissa puhutaan erityisesti AI/ML-antureista, sekä alkuperäisistä että openconfig-antureista, mutta asetusta voidaan käyttää kaikenlaisille antureille. Olemme myös sisällyttäneet ratkaisuja useisiin ongelmiin, joita saatat kohdata asennusta luodessasi. Tässä julkaisussa kuvatut vaiheet ja tulosteet koskevat aiemmin mainittuja TIG-pinon versioita. Se voi muuttua ohjelmistoversiosta, antureista ja Junos-versiosta riippuen.
Viitteet
Juniper Yang Data Model Explorer kaikille anturivaihtoehdoille
https://apps.juniper.net/ydm-explorer/
Openconfig-foorumi openconfig-antureille
https://www.openconfig.net/projects/models/
Yritys- ja myyntipääkonttori
Juniper Networks, Inc.
1133 Innovation Way
Sunnyvale, CA 94089 USA
Puhelin: 888. JUNIPER (888.586.4737)
tai +1.408.745.2000 XNUMX XNUMX XNUMX
Faksi: +1.408.745.2100 XNUMX XNUMX XNUMX
www.juniper.net
APAC- ja EMEA-alueen päämaja
Juniper Networks International BV
Boeing Avenue 240
1119 PZ Schiphol-Rijk
Amsterdam, Alankomaat
Puhelin: +31.207.125.700 XNUMX XNUMX XNUMX
Faksi: +31.207.125.701 XNUMX XNUMX XNUMX
Tekijänoikeus 2023 Juniper Networks. Inc. Kaikki oikeudet pidätetään. Juniper Networks, Juniper Networksin logo, Juniper, Junos ja muut tavaramerkit ovat Juniper Networksin rekisteröityjä tavaramerkkejä. Inc. ja/tai sen tytäryhtiöt Yhdysvalloissa ja muissa maissa. Muut nimet voivat olla omistajiensa tavaramerkkejä. Juniper Networks ei ota vastuuta tämän asiakirjan epätarkkuuksista. Juniper Networks pidättää oikeuden muutoksiin. muuttaa. siirtää tai muuten muuttaa tätä julkaisua ilman erillistä ilmoitusta.
Lähetä palautetta osoitteeseen: design-center-comments@juniper.net V1.0/240807/ejm5-telemetry-junos-ai-ml
Asiakirjat / Resurssit
![]() |
Juniper NETWORKS Telemetria Junosissa AI ML Workloads -ohjelmistolle [pdfKäyttöopas Telemetria Junosissa AI ML Workloads -ohjelmistolle, Junos for AI ML Workloads -ohjelmisto, AI ML Workloads -ohjelmisto, Workloads Software, Software |