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

Uvod

Budući da promet klastera umjetne inteligencije zahtijeva mreže bez gubitaka s visokom propusnošću i malom latencijom, ključni element mreže umjetne inteligencije je prikupljanje podataka za praćenje. Junos Telemetry omogućuje precizno praćenje ključnih pokazatelja performansi, uključujući pragove i brojače za upravljanje zagušenjem i uravnoteženje opterećenja prometa. gRPC sesije podržavaju strujanje telemetrijskih podataka. gRPC je moderan, open-source okvir visokih performansi koji je izgrađen na HTTP/2 prijenosu. Omogućuje izvorne mogućnosti dvosmjernog strujanja i uključuje fleksibilne prilagođene metapodatke u zaglavljima zahtjeva. Početni korak u telemetriji je znati koje podatke treba prikupiti. Zatim možemo analizirati te podatke u različitim formatima. Nakon što prikupimo podatke, važno ih je predstaviti u obliku koji je jednostavan za praćenje, donošenje odluka i poboljšanje usluge koja se nudi. U ovom radu koristimo telemetrijski skup koji se sastoji od Telegrafa, InfluxDB i Grafana. Ovaj telemetrijski skup prikuplja podatke pomoću push modela. Tradicionalni modeli povlačenja zahtijevaju velike resurse, zahtijevaju ručnu intervenciju i mogu uključivati ​​nedostatke informacija u podacima koje prikupljaju. Push modeli nadilaze ta ograničenja isporukom podataka asinkrono. Oni obogaćuju podatke korištenjem jednostavnim za korištenje tags i imena. Kada su podaci u čitljivijem formatu, pohranjujemo ih u bazu podataka i koristimo u interaktivnoj vizualizaciji web aplikacija za analizu mreže. Lik. 1 nam pokazuje kako je ovaj skup dizajniran za učinkovito prikupljanje podataka, pohranjivanje i vizualizaciju, od mrežnih uređaja koji guraju podatke u sakupljač do podataka koji se prikazuju na nadzornim pločama za analizu.

Juniper NETWORKS telemetrija u softveru Junos za AI ML Workloads -

TIG dimnjak

Koristili smo Ubuntu poslužitelj za instalaciju cijelog softvera uključujući i TIG stog.

telegraf
Za prikupljanje podataka koristimo Telegraf na Ubuntu poslužitelju s 22.04.2. Verzija Telegrafa koja se izvodi u ovoj demo verziji je 1.28.5.
Telegraf je poslužiteljski agent vođen dodatkom za prikupljanje i izvješćivanje metrike. Koristi procesor plugins obogatiti i normalizirati podatke. Izlaz plugins koriste se za slanje tih podataka u različite pohrane podataka. U ovom dokumentu koristimo dva plugins: jedan za openconfig senzore, a drugi za izvorne Juniper senzore.
InfluxDB
Za pohranjivanje podataka u bazu podataka vremenskih serija koristimo InfluxDB. Dodatak za izlaz u Telegrafu šalje podatke u InfluxDB, koji ih pohranjuje na vrlo učinkovit način. Koristimo V1.8 jer ne postoji CLI za V2 i novije.
Grafana
Za vizualizaciju ovih podataka koristi se Grafana. Grafana povlači podatke iz InfluxDB-a i omogućuje korisnicima stvaranje bogatih i interaktivnih nadzornih ploča. Ovdje koristimo verziju 10.2.2.

Konfiguracija na prekidaču

Da bismo implementirali ovaj skup, prvo moramo konfigurirati preklopnik 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 softveru Junos for AI ML Workloads - Switch

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

okoliš

Juniper NETWORKS Telemetrija u Junosu za AI ML radna opterećenja softvera - 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 poslužitelju koji će služiti kao obrnuti proxy agent. Nakon što je nginx instaliran, dodajte retke prikazane na slici 4 u "zadanu" datoteku i premjestite datoteku iz /etc/nginx u /etc/nginx/sites-enabled.

Juniper NETWORKS Telemetrija u softveru Junos for AI ML Workloads - Nginx

Juniper NETWORKS Telemetrija u softveru Junos for AI ML Workloads - Nginx1

Uvjerite se da je vatrozid podešen tako da daje puni pristup usluzi nginx kao što je prikazano na slici 5.

Juniper NETWORKS Telemetrija u softveru Junos for AI ML Workloads - Nginx2

Nakon što se nginx instalira i uvedu potrebne promjene, trebali bismo moći pristupiti Grafani s a web preglednik pomoću IP adrese Ubuntu poslužitelja na kojem je instaliran sav softver.
Postoji mala greška u Grafani koja vam ne dopušta resetiranje zadane lozinke. Koristite ove korake ako naiđete na ovaj problem.
Koraci koje treba izvršiti na Ubuntu poslužitelju za postavljanje lozinke u Grafani:

  • Idite na /var/lib/grafana/grafana.db
  • Instalirajte sqllite3
    o sudo apt instalirajte sqlite3
  • Pokrenite ovu naredbu na svom terminalu
    o sqlite3 grafana.db
  •  Otvara se Sqlite naredbeni redak; pokrenite sljedeći upit:
    >izbriši od korisnika gdje je prijava='admin'
  • Ponovno pokrenite grafanu i upišite admin kao korisničko ime i lozinku. Traži se nova lozinka.

Nakon što se sav softver instalira, stvorite konfiguracijsku datoteku u Telegrafu koja će vam pomoći pri izvlačenju telemetrijskih podataka s prekidača i gurnuti ih u InfluxDB.

Openconfig senzorski dodatak

Na Ubuntu poslužitelju uredite datoteku /etc/telegraf/telegraf.conf da biste dodali sve potrebne plugins i senzori. Za openconfig senzore koristimo dodatak gNMI prikazan na slici 6. Za demo svrhe dodajte naziv hosta kao "spine1", broj porta "50051" koji se koristi za gRPC, korisničko ime i lozinku preklopnika i broj sekundi za ponovno biranje u slučaju kvara.
U strofu pretplate dodajte jedinstveni naziv, "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 senzore otvorene konfiguracije. (Slika 6)

Juniper NETWORKS Telemetrija u softveru Junos for AI ML Workloads - Nginx3

Izvorni senzorski dodatak

Ovo je Juniperov dodatak za telemetrijsko sučelje koji se koristi za izvorne senzore. U istoj datoteci telegraf.conf dodajte izvorni senzorski dodatak inputs.jti_openconfig_telemetry gdje su polja gotovo ista kao kod 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 softveru Junos for AI ML Workloads - Nginx4

Na kraju, dodajte izlazni dodatak outputs.influxdb za slanje podataka senzora u InuxDB. Ovdje je baza podataka nazvana "telegraf" s korisničkim imenom "influx" i lozinkom "influxdb" (Slika 8).

Juniper NETWORKS Telemetrija u softveru Junos for AI ML Workloads - Nginx5

Nakon što ste uredili datoteku telegraf.conf, ponovno pokrenite uslugu telegraf. Sada provjerite u InfluxDB CLI kako biste bili sigurni jesu li mjerenja stvorena za sve jedinstvene senzore. Upišite "influx" za ulazak u InfluxDB CLI.

Juniper NETWORKS Telemetrija u softveru Junos for AI ML Workloads - Nginx6

Kao što se vidi na slici. 9, unesite influxDB prompt i koristite bazu podataka “telegraf”. Sva jedinstvena imena dana senzorima navedena su kao mjerenja.
Da biste vidjeli izlaz bilo kojeg mjerenja, samo da biste bili sigurni da je telegrafska datoteka ispravna i da senzor radi, upotrijebite naredbu “select * from cpu limit 1” kao što je prikazano na slici 10.

Juniper NETWORKS Telemetrija u softveru Junos for AI ML Workloads - Nginx7

Svaki put kada se izvrše promjene u datoteci telegraf.conf, obavezno zaustavite InuxDB, ponovno pokrenite Telegraf, a zatim pokrenite InfluxDB.
Prijavite se na Grafanu iz preglednika i izradite nadzorne ploče nakon što provjerite prikupljaju li se podaci ispravno.
Idite na Veze > InfuxDB > Dodaj novi izvor podataka.

Juniper NETWORKS Telemetrija u softveru Junos for AI ML Workloads - Nginx8

  1. Dodijelite naziv ovom izvoru podataka. U ovom demou to je "test-1".
  2.  Ispod HTTP strofe koristite IP poslužitelja Ubuntu i 8086 port.
    Juniper NETWORKS Telemetrija u softveru Junos for AI ML Workloads - Nginx9
  3. U detaljima InfluxDB-a koristite isti naziv baze podataka, "telegraf", i navedite korisničko ime i lozinku Ubuntu poslužitelja.
  4. Kliknite Spremi i testiraj. Provjerite vidite li poruku "uspješno".
    Juniper NETWORKS Telemetrija u softveru Junos for AI ML Workloads - Nginx10
  5. Nakon što je izvor podataka uspješno dodan, idite na Nadzorne ploče i kliknite Novo. Kreirajmo nekoliko nadzornih ploča koje su neophodne za AI/ML radna opterećenja u uređivaču.

ExampLes Of Sensor Graphs

Sljedeće su prampneke glavne brojače koji su bitni za nadzor AI/ML mreže.
PercentagUpotreba za ulazno sučelje et-0/0/0 na spine-1
Juniper NETWORKS Telemetrija u softveru Junos for AI ML Workloads - Grafikoni

  • Odaberite izvor podataka kao test-1.
  • U odjeljku FROM odaberite mjerenje kao "interface". Ovo je jedinstveni naziv koji se koristi za ovaj put 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 nadzirati; u ovom slučaju odaberite “field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)”. Sada u istom odjeljku kliknite na “+” i dodajte ovu matematiku izračuna (/50000000000 * 100). U osnovi izračunavamo postotaktage korištenje 400G sučelja.
  • Provjerite je li FORMAT "vremenska serija" i dajte naziv grafikonu u odjeljku ALIAS.

Juniper NETWORKS Telemetrija u softveru Junos for AI ML Workloads - Grafikoni1Vršna popunjenost međuspremnika za bilo koji red

Juniper NETWORKS Telemetrija u softveru Junos for AI ML Workloads - Grafikoni2

  • Odaberite izvor podataka kao test-1.
  • U odjeljku FROM odaberite mjerenje kao "međuspremnik".
  • U odjeljku WHERE postoje tri polja za popunjavanje. Odaberite uređaj::tag, i u tag vrijednost odaberite ime hosta prekidača (tj. spine-1); I odaberite /cos/interfaces/interface/@name::tag i odaberite sučelje (tj. et-0/0/0); I također odaberite red čekanja, /cos/interfaces/interface/queues/queue/@queue::tag i odaberite red broj 4.
  • U odjeljku SELECT odaberite granu senzora koju želite nadzirati; u ovom slučaju odaberite "field(/cos/interfaces/interface/queues/queue/PeakBuerOccupancy)."
  • Provjerite je li FORMAT "time-series" i dajte naziv grafikonu u odjeljku ALIAS.

Možete usporediti podatke za više sučelja 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 softveru Junos for AI ML Workloads - Grafikoni3

PFC i ECN srednja derivacija
Juniper NETWORKS Telemetrija u softveru Junos for AI ML Workloads - derivat

Za pronalaženje srednje derivacije (razlika u vrijednosti unutar vremenskog raspona) upotrijebite neobrađeni način upita.
Ovo je influx upit koji smo upotrijebili za pronalaženje srednje derivacije između dvije PFC vrijednosti na et-0/0/0 od Spine-1 u sekundi.
SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) FROM “interface” WHERE (“uređaj”::tag = 'Spine-1') I $timeFilter GROUP BY time($interval)

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

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

Juniper NETWORKS telemetrija u Junosu za AI ML radna opterećenja softvera - slično za ECN1

Pogreške ulaznog resursa znače izvedenicu

Juniper NETWORKS telemetrija u Junosu za AI ML radna opterećenja softvera - slično za ECN2

Neobrađeni upit za derivativ srednje vrijednosti pogrešaka resursa je:
SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) FROM “interface” WHERE (“uređaj”::tag = 'Spine-1') I $timeFilter GROUP BY time($interval)

Juniper NETWORKS telemetrija u Junosu za AI ML radna opterećenja softvera - slično za ECN3

Padovi repa znače izvedenicu

Juniper NETWORKS telemetrija u Junosu za AI ML radna opterećenja softvera - slično za ECN4

Neobrađeni upit za derivat srednje vrijednosti pada je:
SELECT derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s) FROM “buer” WHERE (“uređaj”::tag = 'List-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(null)
 Iskorištenost CPU-a

Juniper NETWORKS telemetrija u softveru Junos za AI ML Workloads - iskorištenje CPU-a

  • Odaberite izvor podataka kao test-1.
  • U odjeljku FROM odaberite mjerenje kao "newcpu"
  • U WHERE postoje tri polja za popunjavanje. Odaberite uređaj::tag i u tag vrijednost odaberite naziv hosta preklopnika (tj. spine-1). I u /components/component/properties/property/name:tag, i odaberite cpuutilization-total AND u name::tag odaberite RE0.
  • U odjeljku SELECT odaberite granu senzora koju želite nadzirati. U ovom slučaju odaberite "field(state/value)".

Juniper NETWORKS telemetrija u softveru Junos za AI ML radna opterećenja - iskorištenje CPU-a1

Neobrađeni upit za pronalaženje nenegativne derivacije repa za više prekidača na više sučelja u bitovima/s.
SELECT non_negative_derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s)*8 FROM “buer” WHERE (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 GROUP BY time($__interval),uređaj::tag ispuni (nula)

Juniper NETWORKS telemetrija u softveru Junos za AI ML radna opterećenja - iskorištenje CPU-a2

Ovo su bili neki od bivšihampgrafikona koji se mogu izraditi za nadzor AI/ML mreže.

Sažetak

Ovaj rad ilustrira metodu izvlačenja telemetrijskih podataka i njihovu vizualizaciju stvaranjem grafikona. Ovaj dokument posebno govori o AI/ML senzorima, izvornim i openconfig, ali postavke se mogu koristiti za sve vrste senzora. Također smo uključili rješenja za više problema s kojima biste se mogli suočiti tijekom izrade postavki. Koraci i rezultati opisani u ovom radu specifični su za ranije spomenute verzije TIG dimnjaka. Podložan je promjenama ovisno o verziji softvera, senzorima i Junos verziji.

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 softveru Junos for AI ML Workloads - ikona

Korporativno i prodajno sjedište
Juniper Networks, Inc.
1133 Inovacijski put
Sunnyvale, CA 94089 SAD
Telefon: 888. JUNIPER (888.586.4737)
ili +1.408.745.2000
Faks: +1.408.745.2100
www.juniper.net
APAC i EMEA sjedište
Juniper Networks International BV
Boeing Avenue 240
1119 PZ Schiphol-Rijk
Amsterdam, Nizozemska
Telefon: +31.207.125.700
Faks: +31.207.125.701
Autorska prava 2023 Juniper Networks. Inc. Sva prava pridržana. Juniper Networks, logotip Juniper Networks, Juniper, Junos i drugi zaštitni znakovi registrirani su zaštitni znakovi Juniper Networksa. inc. i/ili njegovih podružnica u Sjedinjenim Državama i drugim zemljama. Ostali nazivi mogu biti zaštitni znakovi svojih vlasnika. Juniper Networks ne preuzima odgovornost za bilo kakve netoč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-telemetrija-junos-ai-ml

Dokumenti / Resursi

Juniper NETWORKS telemetrija u softveru Junos for 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 *