Juniper NETWORKS- logoTelemetrija u Junosu za AI/ML radna opterećenja
Autor: Shalini Mukherjee

Uvod

Kako AI klaster promet zahtijeva mreže bez gubitaka sa velikom propusnošću i malim kašnjenjem, kritični element AI mreže je prikupljanje podataka za praćenje. Junos Telemetrija omogućava detaljno praćenje ključnih indikatora performansi, uključujući pragove i brojače za upravljanje zagušenjima i balansiranje saobraćajnog opterećenja. gRPC sesije podržavaju striming podataka telemetrije. gRPC je moderan, open-source okvir visokih performansi koji je izgrađen na HTTP/2 transportu. Omogućuje izvorne mogućnosti dvosmjernog striminga i uključuje fleksibilne prilagođene metapodatke u zaglavlja zahtjeva. Prvi korak u telemetriji je znati koji podaci se prikupljaju. Zatim možemo analizirati ove podatke u različitim formatima. Nakon što prikupimo podatke, važno je da ih predstavimo u formatu koji je jednostavan za praćenje, donošenje odluka i poboljšanje usluge koja se nudi. U ovom radu koristimo telemetrijski stek koji se sastoji od Telegrafa, InfluxDB-a i Grafane. Ovaj telemetrijski stog prikuplja podatke koristeći push model. Tradicionalni modeli povlačenja zahtijevaju velike resurse, zahtijevaju ručnu intervenciju i mogu uključivati ​​informacijske praznine u podacima koje prikupljaju. Push modeli prevazilaze ova ograničenja tako što asinhrono isporučuju podatke. Oni obogaćuju podatke korištenjem prilagođenim korisnicima tags i imena. Kada podaci budu u čitljivijem formatu, pohranjujemo ih u bazu podataka i koristimo ih u interaktivnoj vizualizaciji web aplikacija za analizu mreže. Slika. Slika 1 nam pokazuje kako je ovaj stog dizajniran za efikasno prikupljanje, skladištenje i vizualizaciju podataka, od mrežnih uređaja koji guraju podatke u kolektor do podataka koji se prikazuju na kontrolnoj tabli radi analize.

Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software -

TIG Stack

Koristili smo Ubuntu server da instaliramo sav softver uključujući TIG stack.

Telegraph
Za prikupljanje podataka koristimo Telegraf na Ubuntu serveru koji radi 22.04.2. Telegraf verzija koja radi u ovoj demo verziji je 1.28.5.
Telegraf je serverski agent vođen dodacima za prikupljanje i izvještavanje metrike. Koristi procesor plugins da obogati i normalizuje podatke. Izlaz plugins se koriste za slanje ovih podataka u različite skladišta podataka. U ovom dokumentu koristimo dva plugins: jedan za openconfig senzore, a drugi za Juniper izvorne senzore.
InfluxDB
Za skladištenje podataka u bazi podataka vremenskih serija koristimo InfluxDB. Izlazni dodatak u Telegrafu šalje podatke u InfluxDB, koji ih pohranjuje na vrlo efikasan način. Koristimo V1.8 jer ne postoji CLI za V2 i novije.
Grafana
Grafana se koristi za vizualizaciju ovih podataka. Grafana preuzima podatke iz InfluxDB-a i omogućava korisnicima da kreiraju bogate i interaktivne kontrolne table. Ovdje koristimo verziju 10.2.2.

Konfiguracija na prekidaču

Da bismo implementirali ovaj stek, prvo trebamo konfigurirati prekidač kao što je prikazano na slici 2. Koristili smo port 50051. Ovdje se može koristiti bilo koji port. Prijavite se na QFX prekidač i dodajte sljedeću konfiguraciju.

Juniper NETWORKS Telemetrija u Junosu za softver za AI ML Workloads - Switch

Napomena: Ova konfiguracija je za laboratorije/POC jer se lozinka prenosi u čistom tekstu. Koristite SSL da biste to izbjegli.

Životna sredina

Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - okruženje

Nginx
Ovo je potrebno ako ne možete otkriti port na kojem se nalazi Grafana. Sljedeći korak je instaliranje nginxa na Ubuntu server da služi kao reverse proxy agent. Kada se nginx instalira, dodajte linije prikazane na slici 4 u „podrazumevani“ fajl i premestite datoteku iz /etc/nginx u /etc/nginx/sites-enabled.

Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - Nginx

Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - Nginx1

Uvjerite se da je zaštitni zid podešen tako da daje potpuni pristup nginx servisu kao što je prikazano na slici 5.

Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - Nginx2

Kada se nginx instalira i kada se izvrše potrebne promjene, trebali bismo moći pristupiti Grafani sa a web pretraživač koristeći IP adresu Ubuntu servera na kojem je instaliran sav softver.
Postoji mali kvar u Grafani koji vam ne dozvoljava da poništite zadanu lozinku. Koristite ove korake ako naiđete na ovaj problem.
Koraci koje treba izvršiti na Ubuntu serveru za postavljanje lozinke u Grafani:

  • Idite na /var/lib/grafana/grafana.db
  • Instalirajte sqllite3
    o sudo apt install sqlite3
  • Pokrenite ovu naredbu na svom terminalu
    o sqlite3 grafana.db
  •  Otvara se komandna linija Sqlite; pokrenite sljedeći upit:
    >izbriši iz korisnika gdje je login='admin'
  • Ponovo pokrenite grafana i upišite admin kao korisničko ime i lozinku. Traži novu lozinku.

Nakon što je sav softver instaliran, kreirajte konfigacijski fajl u Telegrafu koji će pomoći da se telemetrijski podaci izvuku sa prekidača i gurne u InfluxDB.

Openconfig Sensor Plugin

Na Ubuntu serveru uredite /etc/telegraf/telegraf.conf datoteku da dodate sve potrebne plugins i senzori. Za openconfig senzore koristimo gNMI dodatak prikazan na slici 6. Za potrebe demonstracije, dodajte ime hosta kao “spine1”, broj porta “50051” koji se koristi za gRPC, korisničko ime i lozinku prekidača i broj sekundi za ponovno biranje u slučaju kvara.
U strofu pretplate dodajte jedinstveno ime, “cpu” za ovaj određeni senzor, putanju senzora i vremenski interval za preuzimanje ovih podataka sa prekidača. Dodajte isti dodatak inputs.gnmi i inputs.gnmi.subscription za sve otvorene konfigacijske senzore. (Slika 6)

Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - Nginx3

Native Sensor Plugin

Ovo je Juniper dodatak za telemetrijski interfejs koji se koristi za izvorne senzore. U istoj telegraf.conf datoteci dodajte izvorni dodatak senzora inputs.jti_openconfig_telemetry gdje su polja skoro ista kao i openconfig. Koristite jedinstveni ID klijenta za svaki senzor; ovdje koristimo “telegraf3”. Jedinstveni naziv koji se ovdje koristi za ovaj senzor je “mem” (slika 7).

Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - Nginx4

Na kraju, dodajte izlazni dodatak outputs.influxdb da pošaljete ove podatke senzora u InfluxDB. Ovdje je baza podataka nazvana “telegraf” sa korisničkim imenom kao “influx” i lozinkom “influxdb” (slika 8).

Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - Nginx5

Nakon što uredite telegraf.conf fajl, ponovo pokrenite telegraf servis. Sada provjerite u InfluxDB CLI da biste bili sigurni da su mjerenja kreirana za sve jedinstvene senzore. Upišite “influx” da uđete u InfluxDB CLI.

Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - Nginx6

Kao što se vidi na slici. 9, unesite influxDB prompt i koristite bazu podataka “telegraf”. Sva jedinstvena imena data senzorima su navedena kao mere.
Da biste vidjeli izlaz bilo kojeg mjerenja, samo da biste se uvjerili da je telegraf datoteka ispravna i da senzor radi, koristite naredbu “odaberite * sa ograničenja procesora 1” kao što je prikazano na slici 10.

Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - Nginx7

Svaki put kada se naprave promjene u datoteci telegraf.conf, obavezno zaustavite InfluxDB, ponovo pokrenite Telegraf, a zatim pokrenite InfluxDB.
Prijavite se na Grafanu iz pretraživača i kreirajte nadzorne ploče nakon što se uvjerite da se podaci prikupljaju ispravno.
Idite na Veze > InfuxDB > Dodaj novi izvor podataka.

Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - Nginx8

  1. Dajte naziv ovom izvoru podataka. U ovom demou to je “test-1”.
  2.  Pod HTTP strofom, koristite IP Ubuntu servera i 8086 port.
    Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - Nginx9
  3. U detaljima InfluxDB-a koristite isto ime baze podataka, “telegraf” i navedite korisničko ime i lozinku Ubuntu servera.
  4. Kliknite na Sačuvaj i testiraj. Uvjerite se da vidite poruku „uspješan“.
    Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - Nginx10
  5. Kada je izvor podataka uspješno dodan, idite na Nadzorne ploče i kliknite Novo. Hajde da kreiramo nekoliko kontrolnih ploča koje su neophodne za AI/ML radna opterećenja u modu uređivača.

Examples od senzorskih grafova

Sljedeće su nprampnekoliko glavnih brojača koji su neophodni za praćenje AI/ML mreže.
Percentage korištenje za ulazni interfejs et-0/0/0 na spine-1
Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - Grafovi

  • Odaberite izvor podataka kao test-1.
  • U odeljku FROM izaberite merenje kao „interfejs“. Ovo je jedinstveni naziv koji se koristi za ovu putanju senzora.
  • U odjeljku GDJE odaberite uređaj::tag, i u tag vrijednost, odaberite ime hosta prekidača, odnosno spine1.
  • U odjeljku SELECT odaberite granu senzora koju želite pratiti; u ovom slučaju izaberite “field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)”. Sada u istom odeljku kliknite na “+” i dodajte ovu matematiku (/50000000000 * 100). Mi u osnovi izračunavamo procentetage korištenje 400G interfejsa.
  • Uvjerite se da je FORMAT “vremenska serija” i imenujte graf u odjeljku ALIAS.

Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - Grafovi1Maksimalna zauzetost bafera za bilo koji red čekanja

Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - Grafovi2

  • Odaberite izvor podataka kao test-1.
  • U odjeljku FROM odaberite mjerenje kao "bufer".
  • U odjeljku WHERE postoje tri polja koja treba popuniti. Odaberite uređaj::tag, i u tag value izaberite ime hosta prekidača (tj. spine-1); I izaberite /cos/interfaces/interface/@name::tag i izaberite interfejs (tj. et-0/0/0); I odaberite i red, /cos/interfaces/interface/queues/queue/@queue::tag i izaberite red broj 4.
  • U odjeljku SELECT odaberite granu senzora koju želite pratiti; u ovom slučaju odaberite “field(/cos/interfaces/interface/queues/queue/PeakBufferOccupancy).”
  • Uvjerite se da je FORMAT "vremenska serija" i imenujte graf u odjeljku ALIAS.

Možete uporediti podatke za više interfejsa na istom grafikonu kao što se vidi na slici 17 za et-0/0/0, et-0/0/1, et-0/0/2 itd.

Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - Grafovi3

PFC i ECN srednji derivat
Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - derivat

Za pronalaženje srednje derivacije (razlika u vrijednosti unutar vremenskog raspona), koristite način sirovog upita.
Ovo je influks upit koji smo koristili da pronađemo srednju derivaciju između dvije PFC vrijednosti na et-0/0/0 kičme-1 u sekundi.
SELECT derivat(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) OD “interface” GDJE (“uređaj”::tag = 'Kičma-1') I $timeFilter GRUPI PO vremenu ($interval)

Juniper NETWORKS Telemetrija u Junosu za softver za AI ML Workloads - Slično za ECN

SELECT derivat(mean(“/interfaces/interface[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts”), 1s) OD “interface” GDJE (“uređaj”::tag = 'Kičma-1') I $timeFilter GRUPI PO vremenu ($interval)

Juniper NETWORKS telemetrija u Junosu za softver za AI ML Workloads - Slično za ECN1

Greške ulaznih resursa znače derivaciju

Juniper NETWORKS telemetrija u Junosu za softver za AI ML Workloads - Slično za ECN2

Sirovi upit za greške resursa znači da je derivat:
SELECT derivat(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) OD “interface” GDJE (“uređaj”::tag = 'Kičma-1') I $timeFilter GRUPI PO vremenu ($interval)

Juniper NETWORKS telemetrija u Junosu za softver za AI ML Workloads - Slično za ECN3

Spuštanje repa znači derivat

Juniper NETWORKS telemetrija u Junosu za softver za AI ML Workloads - Slično za ECN4

Sirovi upit za tail drops srednju derivat je:
SELECT derivat(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s) IZ “bafera” GDJE (“uređaj”::tag = 'Leaf-1' I “/cos/interfaces/interface/@name”::tag = 'et-0/0/0' I “/cos/interfaces/interface/queues/queue/@queue”::tag = '4') I $timeFilter GRUPI PO vremenu($__interval) fill(null)
 Iskorišćenost CPU-a

Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - korištenje CPU-a

  • Odaberite izvor podataka kao test-1.
  • U odjeljku FROM odaberite mjerenje kao “newcpu”
  • U WHERE postoje tri polja koja treba popuniti. Odaberite uređaj::tag i u tag value izaberite ime hosta prekidača (tj. spine-1). I u /components/component/properties/property/name:tag, i odaberite cpuutilization-total AND u nazivu::tag izaberite RE0.
  • U odjeljku SELECT odaberite granu senzora koju želite pratiti. U ovom slučaju odaberite “polje (stanje/vrijednost)”.

Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - korištenje CPU-a1

Sirovi upit za pronalaženje nenegativnog izvoda spuštanja repa za više prekidača na više interfejsa u bitovima/sec.
SELECT non_negative_derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s)*8 IZ “bafera” GDJE (uređaj::tag =~ /^Spine-[1-2]$/) i (“/cos/interfaces/interface/@name”::tag =~ /et-0\/0\/[0-9]/ ili “/cos/interfaces/interface/@name”::tag=~/et-0\/0\/1[0-5]/) I $timeFilter GRUPI PO vremenu($__interval),uređaj::tag ispuniti (null)

Juniper NETWORKS Telemetrija u Junosu za AI ML Workloads Software - korištenje CPU-a2

Ovo su bili neki od bivšihampdatoteke grafova koji se mogu kreirati za praćenje AI/ML mreže.

Rezime

Ovaj rad ilustruje metodu izvlačenja telemetrijskih podataka i vizualizacije kreiranjem grafova. Ovaj rad posebno govori o AI/ML senzorima, kako nativnim tako i openconfig, ali se podešavanje može koristiti za sve vrste senzora. Uključili smo i rješenja za više problema s kojima se možete suočiti prilikom kreiranja postavke. Koraci i rezultati opisani u ovom radu su specifični za verzije TIG steka koje su ranije pomenute. Podložno je promjenama u zavisnosti od verzije softvera, senzora i Junos verzije.

Reference

Juniper Yang Data Model Explorer za sve opcije senzora
https://apps.juniper.net/ydm-explorer/
Openconfig forum za openconfig senzore
https://www.openconfig.net/projects/models/

Juniper NETWORKS Telemetrija u Junosu za softver za AI ML Workloads - ikona

Korporativno i prodajno sjedište
Juniper Networks, Inc.
1133 Innovation Way
Sunnyvale, CA 94089 SAD
Telefon: 888. JUNIPER (888.586.4737)
ili +1.408.745.2000
Fax: +1.408.745.2100
www.juniper.net
Sjedište za APAC i EMEA
Juniper Networks International BV
Boeing Avenue 240
1119 PZ Schiphol-Rijk
Amsterdam, Holandija
Telefon: +31.207.125.700
Fax: +31.207.125.701
Autorska prava 2023 Juniper Networks. Inc. Sva prava zadržana. Juniper Networks, Juniper Networks logo, Juniper, Junos i drugi zaštitni znaci su registrovani zaštitni znakovi Juniper Networks. inc. i/ili njegove podružnice u Sjedinjenim Državama i drugim zemljama. Druga imena mogu biti zaštitni znaci njihovih vlasnika. Juniper Networks ne preuzima nikakvu odgovornost za bilo kakve netačnosti u ovom dokumentu. Juniper Networks zadržava pravo promjene. modificirati. prenijeti, ili na drugi način revidirati ovu publikaciju bez prethodne najave.
Pošaljite povratne informacije na: design-center-comments@juniper.net V1.0/240807/ejm5-telemetry-junos-ai-ml

Dokumenti / Resursi

Juniper NETWORKS Telemetrija u Junosu za softver za AI ML Workloads [pdf] Korisnički priručnik
Telemetrija u Junos za AI ML softver za radna opterećenja, Junos za AI ML softver za radna opterećenja, AI ML softver za radna opterećenja, softver za radna opterećenja, softver

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *