Kadagio TINKLAI- logotipasTelemetrija „Junos“, skirta dirbtinio intelekto / ML darbo krūviams
Autorius: Shalini Mukherjee

Įvadas

Kadangi dirbtinio intelekto klasterio srautas reikalauja be nuostolių tinklų, turinčių didelį pralaidumą ir mažą delsą, esminis AI tinklo elementas yra stebėjimo duomenų rinkimas. „Junos Telemetry“ leidžia detaliai stebėti pagrindinius veiklos rodiklius, įskaitant slenksčius ir skaitiklius, skirtus spūsčių valdymui ir eismo apkrovos balansavimui. gRPC sesijos palaiko telemetrijos duomenų srautinį perdavimą. gRPC yra moderni atvirojo kodo didelio našumo sistema, sukurta HTTP/2 transportu. Jis suteikia savąsias dvikrypčio srautinio perdavimo galimybes ir į užklausų antraštes įtraukia lanksčius tinkintus metaduomenis. Pradinis telemetrijos žingsnis yra žinoti, kokius duomenis reikia rinkti. Tada galime analizuoti šiuos duomenis įvairiais formatais. Kai renkame duomenis, svarbu juos pateikti tokiu formatu, kad būtų lengva stebėti, priimti sprendimus ir tobulinti teikiamą paslaugą. Šiame darbe naudojame telemetrijos rinkinį, kurį sudaro Telegraf, InfluxDB ir Grafana. Šis telemetrijos rinkinys renka duomenis naudodamas „push“ modelį. Tradiciniai traukimo modeliai reikalauja daug išteklių, reikalauja rankinio įsikišimo, o renkamuose duomenyse gali būti informacijos spragų. „Push“ modeliai įveikia šiuos apribojimus pateikdami duomenis asinchroniškai. Jie praturtina duomenis naudodamiesi patogiu vartotoju tags ir vardai. Kai duomenys yra lengviau skaitomo formato, saugome juos duomenų bazėje ir naudojame interaktyvioje vizualizacijoje web programa, skirta tinklo analizei. Paveikslas. 1 parodyta, kaip šis krūvas sukurtas efektyviam duomenų rinkimui, saugojimui ir vizualizavimui, pradedant tinklo įrenginiais, perduodančiais duomenis į rinktuvą, baigiant duomenimis, rodomais prietaisų skydelyje analizei.

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai –

TIG Stack

Mes naudojome Ubuntu serverį, kad įdiegtume visą programinę įrangą, įskaitant TIG krūvą.

Telegrafas
Duomenims rinkti naudojame Telegraf Ubuntu serveryje, kuriame veikia 22.04.2. Šioje demonstracijoje veikianti „Telegraf“ versija yra 1.28.5.
„Telegraf“ yra įskiepiu valdomas serverio agentas, skirtas metrikai rinkti ir teikti ataskaitas. Jis naudoja procesorių plugins praturtinti ir normalizuoti duomenis. Išvestis plugins naudojami šiems duomenims siųsti į įvairias duomenų saugyklas. Šiame dokumente naudojame du plugins: vienas skirtas openconfig jutikliams, o kitas – Juniper vietiniams jutikliams.
InfluxDB
Duomenims saugoti laiko eilučių duomenų bazėje naudojame InfluxDB. „Telegraf“ išvesties papildinys siunčia duomenis į „InfluxDB“, kuris juos saugo labai efektyviai. Naudojame V1.8, nes 2 ir naujesnės versijos CLI nėra.
Grafana
Šiems duomenims vizualizuoti naudojama Grafana. „Grafana“ ištraukia duomenis iš „InfluxDB“ ir leidžia vartotojams kurti išsamias ir interaktyvias informacijos suvestines. Čia veikia 10.2.2 versija.

Konfigūracija ant jungiklio

Norėdami įdiegti šį krūvą, pirmiausia turime sukonfigūruoti jungiklį, kaip parodyta 2 paveiksle. Naudojome 50051 prievadą. Čia galima naudoti bet kurį prievadą. Prisijunkite prie QFX jungiklio ir pridėkite šią konfigūraciją.

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – jungiklis

Pastaba: Ši konfigūracija skirta laboratorijoms / POC, nes slaptažodis perduodamas aiškiu tekstu. Norėdami to išvengti, naudokite SSL.

Aplinka

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – aplinka

Nginx
Tai reikalinga, jei negalite atskleisti prievado, kuriame yra „Grafana“. Kitas žingsnis yra įdiegti nginx Ubuntu serveryje, kad jis veiktų kaip atvirkštinio tarpinio serverio agentas. Įdiegę nginx, pridėkite 4 pav. parodytas eilutes prie „numatytojo“ failo ir perkelkite failą iš /etc/nginx į /etc/nginx/sites-enabled.

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – Nginx

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – Nginx1

Įsitikinkite, kad ugniasienė sureguliuota taip, kad suteiktų visišką prieigą prie nginx paslaugos, kaip parodyta 5 paveiksle.

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – Nginx2

Įdiegę „nginx“ ir atlikę reikiamus pakeitimus, „Grafana“ turėtume pasiekti iš a web naršyklę naudodami Ubuntu serverio, kuriame įdiegta visa programinė įranga, IP adresą.
„Grafana“ yra nedidelis gedimas, neleidžiantis iš naujo nustatyti numatytojo slaptažodžio. Jei susiduriate su šia problema, atlikite šiuos veiksmus.
Veiksmai, kuriuos reikia atlikti Ubuntu serveryje, norint nustatyti slaptažodį Grafana:

  • Eikite į /var/lib/grafana/grafana.db
  • Įdiekite sqllite3
    o sudo apt install sqlite3
  • Vykdykite šią komandą savo terminale
    o sqlite3 grafana.db
  •  Atsidaro „Sqlite“ komandų eilutė; paleiskite šią užklausą:
    >ištrinti iš vartotojo, kur login='admin'
  • Iš naujo paleiskite grafana ir įveskite admin kaip vartotojo vardą ir slaptažodį. Jis ragina įvesti naują slaptažodį.

Įdiegę visą programinę įrangą, sukurkite Telegraf konfigūracijos failą, kuris padės paimti telemetrijos duomenis iš jungiklio ir perkelti juos į InfluxDB.

„Openconfig“ jutiklio papildinys

Ubuntu serveryje redaguokite /etc/telegraf/telegraf.conf failą, kad pridėtumėte visus reikalingus plugins ir jutikliai. Openconfig jutikliams naudojame gNMI papildinį, parodytą 6 paveiksle. Demonstraciniais tikslais pridėkite pagrindinio kompiuterio pavadinimą kaip „spine1“, prievado numerį „50051“, kuris naudojamas gRPC, jungiklio vartotojo vardą ir slaptažodį bei numerį. sekundžių perrinkimui gedimo atveju.
Prenumeratos poskyryje pridėkite unikalų šio konkretaus jutiklio pavadinimą, „procesorių“, jutiklio kelią ir laiko intervalą, per kurį šie duomenys paimami iš jungiklio. Visiems atviriems konfigūracijos jutikliams pridėkite tą patį papildinį inputs.gnmi ir inputs.gnmi.subscription. (6 pav.)

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – Nginx3

Vietinis jutiklio papildinys

Tai yra Juniper telemetrijos sąsajos papildinys, naudojamas vietiniams jutikliams. Tame pačiame faile telegraf.conf pridėkite vietinį jutiklio įskiepį inputs.jti_openconfig_telemetry, kur laukai yra beveik tokie patys kaip ir openconfig. Kiekvienam jutikliui naudokite unikalų kliento ID; čia mes naudojame „telegraf3“. Unikalus šio jutiklio pavadinimas yra „mem“ (7 pav.).

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – Nginx4

Galiausiai pridėkite išvesties papildinį outputs.influxdb, kad nusiųstumėte šio jutiklio duomenis į InfluxDB. Čia duomenų bazė pavadinta „telegraf“, o vartotojo vardas yra „influx“ ir slaptažodis „influxdb“ (8 pav.).

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – Nginx5

Redaguodami telegraf.conf failą, iš naujo paleiskite telegrafo paslaugą. Dabar patikrinkite InfluxDB CLI, kad įsitikintumėte, ar sukurti visų unikalių jutiklių matavimai. Įveskite „influx“, kad įvestumėte InfluxDB CLI.

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – Nginx6

Kaip matyti paveiksle. 9, įveskite influxDB eilutę ir naudokite duomenų bazę „telegraf“. Visi unikalūs jutikliams suteikti pavadinimai pateikiami kaip matavimai.
Norėdami pamatyti bet kurio vieno matavimo išvestį ir įsitikinti, kad telegrafo failas yra teisingas ir jutiklis veikia, naudokite komandą „select * from cpu limit 1“, kaip parodyta 10 paveiksle.

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – Nginx7

Kiekvieną kartą, kai atliekami failo telegraf.conf pakeitimai, būtinai sustabdykite InfluxDB, iš naujo paleiskite Telegraf ir tada paleiskite InfluxDB.
Naršyklėje prisijunkite prie „Grafana“ ir sukurkite prietaisų skydelius įsitikinę, kad duomenys renkami teisingai.
Eikite į Ryšiai > InfuxDB > Pridėti naują duomenų šaltinį.

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – Nginx8

  1. Suteikite pavadinimą šiam duomenų šaltiniui. Šioje demonstracijoje tai yra „test-1“.
  2.  Pagal HTTP posmą naudokite Ubuntu serverio IP ir 8086 prievadą.
    „Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – Nginx9
  3. Išsamioje „InfluxDB“ dalyje naudokite tą patį duomenų bazės pavadinimą „telegraf“ ir pateikite Ubuntu serverio vartotojo vardą ir slaptažodį.
  4. Spustelėkite Išsaugoti ir išbandyti. Įsitikinkite, kad matote pranešimą „sėkmingai“.
    „Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – Nginx10
  5. Sėkmingai įtraukę duomenų šaltinį, eikite į Prietaisų skydelius ir spustelėkite Naujas. Leiskite mums sukurti keletą prietaisų skydelių, kurie yra būtini AI / ML darbo krūviams redaktoriaus režimu.

Examples Of Sensor Graphs

Toliau pateikiami exampkai kurių pagrindinių skaitiklių, būtinų AI/ML tinklui stebėti.
Proctage panaudojimas įėjimo sąsajai et-0/0/0 ant spine-1
„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – grafikai

  • Pasirinkite duomenų šaltinį kaip test-1.
  • Skiltyje FROM pasirinkite matavimą kaip „sąsaja“. Tai unikalus šio jutiklio kelio pavadinimas.
  • Skiltyje WHERE pasirinkite įrenginį::tag, ir esančiame tag reikšmę, pasirinkite jungiklio pagrindinio kompiuterio pavadinimą, tai yra, spine1.
  • Skiltyje SELECT pasirinkite jutiklio šaką, kurią norite stebėti; šiuo atveju pasirinkite „field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)“. Dabar tame pačiame skyriuje spustelėkite „+“ ir pridėkite šią skaičiavimo matematiką (/50000000000 * 100). Iš esmės skaičiuojame proctage 400G sąsajos panaudojimas.
  • Įsitikinkite, kad FORMATAS yra „laiko eilutė“, ir pavadinkite diagramą skiltyje ALIAS.

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – Graphs1Didžiausias bet kurios eilės buferio užimtumas

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – Graphs2

  • Pasirinkite duomenų šaltinį kaip test-1.
  • Skiltyje FROM pasirinkite matavimą kaip „buferis“.
  • Skiltyje WHERE reikia užpildyti tris laukus. Pasirinkite įrenginį:tag, ir esančiame tag reikšmė pasirinkite jungiklio pagrindinio kompiuterio pavadinimą (ty spine-1); IR pasirinkite /cos/interfaces/interface/@name::tag ir pasirinkite sąsają (ty et- 0/0/0); IR taip pat pasirinkite eilę, /cos/interfaces/interface/queues/queue/@queue::tag ir pasirinkite eilės numerį 4.
  • Skiltyje SELECT pasirinkite jutiklio šaką, kurią norite stebėti; šiuo atveju pasirinkite „field(/cos/interfaces/interface/queues/queue/PeakBufferOccupancy).“
  • Įsitikinkite, kad FORMATAS yra „laiko eilutė“, ir pavadinkite diagramą skiltyje ALIAS.

Galite lyginti kelių sąsajų duomenis toje pačioje diagramoje, kaip parodyta 17 paveiksle, skirtuose et-0/0/0, et-0/0/1, et-0/0/2 ir kt.

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – Graphs3

PFC ir ECN reiškia darinį
Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software – išvestinė

Norėdami rasti vidutinę išvestinę priemonę (vertės skirtumą tam tikru laiko intervalu), naudokite neapdorotos užklausos režimą.
Tai yra antplūdžio užklausa, kurią naudojome norėdami rasti vidutinę išvestinę tarp dviejų PFC reikšmių et-0/0/0 Spine-1 per sekundę.
SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) FROM „interface“ WHERE („įrenginys“::tag = 'Stuburas-1') IR $timeFilter GROUP BY laikas($interval)

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – panašiai ir ECN

SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts”), 1s) FROM „interface“ WHERE („įrenginys“::tag = 'Stuburas-1') IR $timeFilter GROUP BY laikas($interval)

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – panašiai ir ECN1

Įvesties išteklių klaidos reiškia išvestinę

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – panašiai ir ECN2

Neapdorota išteklių klaidų užklausa reiškia išvestinę priemonę:
SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) FROM „interface“ WHERE („įrenginys“::tag = 'Stuburas-1') IR $timeFilter GROUP BY laikas($interval)

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – panašiai ir ECN3

Uodegos lašai reiškia darinį

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – panašiai ir ECN4

Neapdorota uodegos lašų vidurkio išvestinė užklausa yra tokia:
SELECT išvestinė(reiškinys(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s) FROM “buffer” WHERE (“įrenginys”::tag = 'Leaf-1' IR "/cos/interfaces/interface/@name"::tag = 'et-0/0/0' IR "/cos/interfaces/interface/queues/queue/@queue"::tag = '4') IR $timeFilter GROUP BY laikas($__interval) fill(null)
 CPU panaudojimas

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai – procesoriaus naudojimas

  • Pasirinkite duomenų šaltinį kaip test-1.
  • Skiltyje FROM pasirinkite matavimą kaip „newcpu“
  • KUR yra trys laukai, kuriuos reikia užpildyti. Pasirinkite įrenginį:tag ir į tag reikšmę pasirinkite jungiklio pagrindinio kompiuterio pavadinimą (ty spine-1). IR /components/component/properties/property/name:tag, ir pavadinime pasirinkite cpuutilization-total AND::tag pasirinkite RE0.
  • Skiltyje SELECT pasirinkite jutiklio šaką, kurią norite stebėti. Tokiu atveju pasirinkite „laukas(būsena/reikšmė)“.

„Juniper NETWORKS“ telemetrija „Junos for AI ML Workloads“ programinė įranga – procesoriaus panaudojimas1

Neapdorota užklausa, skirta rasti neneigiamą uodegos kritimo išvestį keliems jungikliams keliose sąsajose bitais per sekundę.
SELECT non_negative_derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s)*8 FROM “buffer” WHERE (įrenginys::tag =~ /^Spine-[1-2]$/) ir ("/cos/interfaces/interface/@name"::tag =~ /et-0\/0\/[0-9]/ arba „/cos/interfaces/interface/@name“::tag=~/et-0\/0\/1[0-5]/) IR $timeFilter GROUP BY laikas($__interval),įrenginys::tag užpildyti (nuliai)

„Juniper NETWORKS“ telemetrija „Junos for AI ML Workloads“ programinė įranga – procesoriaus panaudojimas2

Tai buvo kai kurie buvęampgrafikų, kuriuos galima sukurti AI/ML tinklui stebėti.

Santrauka

Šiame darbe iliustruojamas telemetrijos duomenų gavimo ir vizualizavimo būdas kuriant grafikus. Šiame dokumente konkrečiai kalbama apie AI/ML jutiklius, tiek vietinius, tiek atviros konfigūracijos, tačiau sąranka gali būti naudojama visų tipų jutikliams. Taip pat įtraukėme kelių problemų, su kuriomis galite susidurti kurdami sąranką, sprendimus. Šiame dokumente pavaizduoti žingsniai ir išėjimai yra būdingi anksčiau paminėtoms TIG kamino versijoms. Jis gali keistis priklausomai nuo programinės įrangos versijos, jutiklių ir Junos versijos.

Nuorodos

Juniper Yang Data Model Explorer visoms jutiklių parinktims
https://apps.juniper.net/ydm-explorer/
Openconfig forumas, skirtas openconfig jutikliams
https://www.openconfig.net/projects/models/

„Juniper NETWORKS“ telemetrija „Junos for AI ML Workloads Software“ – piktograma

Įmonės ir pardavimų būstinė
Juniper Networks, Inc.
1133 inovacijų kelias
Sunnyvale, CA 94089 JAV
Telefonas: 888. JUNIPER (888.586.4737)
arba +1.408.745.2000
Faksas: +1.408.745.2100 XNUMX XNUMX XNUMX
www.juniper.net
APAC ir EMEA būstinė
Juniper Networks International BV
Boeing Avenue 240
1119 PZ Schiphol-Rijk
Amsterdamas, Nyderlandai
Telefonas: +31.207.125.700 XNUMX XNUMX XNUMX
Faksas: +31.207.125.701 XNUMX XNUMX XNUMX
Autorių teisės, 2023 m. „Juniper Networks“. Inc. Visos teisės saugomos. „Juniper Networks“, „Juniper Networks“ logotipas, „Juniper“, „Junos“ ir kiti prekių ženklai yra registruotieji „Juniper Networks“ prekių ženklai. inc. ir (arba) jos filialai Jungtinėse Valstijose ir kitose šalyse. Kiti pavadinimai gali būti atitinkamų savininkų prekių ženklai. Juniper Networks neprisiima atsakomybės už bet kokius šio dokumento netikslumus. Juniper Networks pasilieka teisę keistis. modifikuoti. perkelti arba kitaip peržiūrėti šį leidinį be įspėjimo.
Atsiliepimus siųsti adresu: design-center-comments@juniper.net V1.0/240807/ejm5-telemetry-junos-ai-ml

Dokumentai / Ištekliai

„Juniper NETWORKS“ telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai [pdfVartotojo vadovas
Telemetrija „Junos“, skirta AI ML darbo krūvių programinei įrangai, „Junos“, skirta AI ML darbo krūvių programinei įrangai, AI ML darbo krūvių programinei įrangai, darbo krūvių programinei įrangai, programinei įrangai

Nuorodos

Palikite komentarą

Jūsų el. pašto adresas nebus skelbiamas. Privalomi laukai pažymėti *