Telemetrija programmā Junos AI/ML darba slodzēm
Autors: Shalini Mukherjee
Ievads
Tā kā AI klasteru satiksmei ir nepieciešami bezzudumu tīkli ar lielu caurlaidspēju un zemu latentumu, būtisks AI tīkla elements ir uzraudzības datu vākšana. Junos Telemetry ļauj detalizēti uzraudzīt galvenos veiktspējas rādītājus, tostarp sliekšņus un skaitītājus sastrēgumu pārvaldībai un satiksmes slodzes līdzsvarošanai. gRPC sesijas atbalsta telemetrijas datu straumēšanu. gRPC ir moderns, atvērtā koda augstas veiktspējas ietvars, kas balstīts uz HTTP/2 transportu. Tas nodrošina vietējās divvirzienu straumēšanas iespējas un ietver elastīgus pielāgotus metadatus pieprasījumu galvenēs. Sākotnējais solis telemetrijā ir zināt, kādi dati ir jāapkopo. Pēc tam mēs varam analizēt šos datus dažādos formātos. Kad mēs apkopojam datus, ir svarīgi tos pasniegt formātā, kas ir viegli pārskatāms, pieņemams un pilnveidojams piedāvātais pakalpojums. Šajā rakstā mēs izmantojam telemetrijas steku, kas sastāv no Telegraf, InfluxDB un Grafana. Šis telemetrijas steks apkopo datus, izmantojot push modeli. Tradicionālie pievilkšanas modeļi ir resursietilpīgi, tiem nepieciešama manuāla iejaukšanās, un tajos apkopotajos datos var būt informācijas nepilnības. Push modeļi pārvar šos ierobežojumus, piegādājot datus asinhroni. Tie bagātina datus, izmantojot lietotājam draudzīgu tags un vārdi. Kad dati ir lasāmākā formātā, mēs tos uzglabājam datu bāzē un izmantojam interaktīvā vizualizācijā web lietojumprogramma tīkla analīzei. attēls. 1 parāda, kā šī kopa ir paredzēta efektīvai datu apkopošanai, glabāšanai un vizualizācijai, sākot no tīkla ierīcēm, kas nosūta datus uz savācēju, līdz datiem, kas tiek parādīti informācijas paneļos analīzei.
TIG kaudze
Mēs izmantojām Ubuntu serveri, lai instalētu visu programmatūru, ieskaitot TIG steku.
Telegrāfs
Lai vāktu datus, mēs izmantojam Telegraf Ubuntu serverī, kurā darbojas 22.04.2. Telegraf versija, kas darbojas šajā demonstrācijā, ir 1.28.5.
Telegraf ir spraudņu vadīts servera aģents metrikas apkopošanai un ziņošanai. Tas izmanto procesoru plugins lai bagātinātu un normalizētu datus. Izvade plugins tiek izmantoti, lai nosūtītu šos datus uz dažādiem datu krātuvēm. Šajā dokumentā mēs izmantojam divus plugins: viens openconfig sensoriem un otrs Juniper native sensoriem.
InfluxDB
Lai saglabātu datus laikrindu datu bāzē, mēs izmantojam InfluxDB. Telegraf izvades spraudnis nosūta datus uz InfluxDB, kas tos saglabā ļoti efektīvi. Mēs izmantojam V1.8, jo V2 un jaunākām versijām nav CLI.
Grafana
Lai vizualizētu šos datus, tiek izmantota Grafana. Grafana iegūst datus no InfluxDB un ļauj lietotājiem izveidot bagātīgus un interaktīvus informācijas paneļus. Šeit mēs izmantojam versiju 10.2.2.
Konfigurācija uz slēdža
Lai ieviestu šo steku, mums vispirms ir jākonfigurē slēdzis, kā parādīts 2. attēlā. Mēs esam izmantojuši portu 50051. Šeit var izmantot jebkuru portu. Piesakieties QFX slēdzī un pievienojiet šādu konfigurāciju.
Piezīme: Šī konfigurācija ir paredzēta laboratorijām/POC, jo parole tiek pārsūtīta skaidrā tekstā. Lai no tā izvairītos, izmantojiet SSL.
Vide
Nginx
Tas ir nepieciešams, ja nevarat atklāt portu, kurā tiek mitināts Grafana. Nākamais solis ir instalēt nginx Ubuntu serverī, lai tas kalpotu kā reversais starpniekservera aģents. Kad nginx ir instalēts, pievienojiet 4. attēlā redzamās rindas “noklusējuma” failam un pārvietojiet failu no /etc/nginx uz /etc/nginx/sites-enabled.
Pārliecinieties, vai ugunsmūris ir pielāgots tā, lai nodrošinātu pilnīgu piekļuvi pakalpojumam nginx, kā parādīts 5. attēlā.
Kad nginx ir instalēts un nepieciešamās izmaiņas ir veiktas, mums vajadzētu būt iespējai piekļūt Grafana no a web pārlūkprogrammā, izmantojot tā Ubuntu servera IP adresi, kurā ir instalēta visa programmatūra.
Programmā Grafana ir neliela kļūme, kas neļauj atiestatīt noklusējuma paroli. Ja rodas šī problēma, veiciet šīs darbības.
Darbības, kas jāveic Ubuntu serverī, lai Grafana iestatītu paroli:
- Dodieties uz /var/lib/grafana/grafana.db
- Instalējiet sqllite3
o sudo apt install sqlite3 - Palaidiet šo komandu savā terminālī
o sqlite3 grafana.db - Tiek atvērta Sqlite komandu uzvedne; izpildiet šādu vaicājumu:
>dzēst no lietotāja, kur login='admin' - Restartējiet grafana un ievadiet admin kā lietotājvārdu un paroli. Tas pieprasa jaunu paroli.
Kad visa programmatūra ir instalēta, programmā Telegraf izveidojiet konfigurācijas failu, kas palīdzēs izvilkt telemetrijas datus no slēdža un nospiest tos uz InfluxDB.
Openconfig sensora spraudnis
Ubuntu serverī rediģējiet /etc/telegraf/telegraf.conf failu, lai pievienotu visu nepieciešamo plugins un sensori. Openconfig sensoriem mēs izmantojam gNMI spraudni, kas parādīts 6. attēlā. Demonstrācijas nolūkos pievienojiet resursdatora nosaukumu kā “spine1”, porta numuru “50051”, kas tiek izmantots gRPC, slēdža lietotājvārdu un paroli, kā arī numuru. sekundes, lai atkārtotu zvanu kļūmes gadījumā.
Abonementa sadaļā pievienojiet unikālu nosaukumu, “cpu” šim konkrētajam sensoram, sensora ceļu un laika intervālu šo datu iegūšanai no slēdža. Pievienojiet vienu un to pašu spraudni inputs.gnmi un inputs.gnmi.subscription visiem atvērtajiem konfigurācijas sensoriem. (6. attēls)
Vietējais sensora spraudnis
Šis ir Juniper telemetrijas interfeisa spraudnis, ko izmanto vietējiem sensoriem. Tajā pašā telegraf.conf failā pievienojiet sākotnējo sensora spraudni inputs.jti_openconfig_telemetry, kur lauki ir gandrīz tādi paši kā openconfig. Katram sensoram izmantojiet unikālu klienta ID; šeit mēs izmantojam “telegraf3”. Šim sensoram šeit izmantotais unikālais nosaukums ir “mem” (7. attēls).
Visbeidzot, pievienojiet izvades spraudni outputs.influxdb, lai nosūtītu šo sensora datus uz InfluxDB. Šeit datu bāze tiek nosaukta par "telegraf" ar lietotājvārdu "influx" un paroli "influxdb" (8. attēls).
Kad esat rediģējis telegraf.conf failu, restartējiet telegraf pakalpojumu. Tagad pārbaudiet InfluxDB CLI, lai pārliecinātos, vai mērījumi ir izveidoti visiem unikālajiem sensoriem. Ievadiet “influx”, lai ievadītu InfluxDB CLI.
Kā redzams attēlā. 9, ievadiet inuxDB uzvedni un izmantojiet datubāzi “telegraf”. Visi unikālie nosaukumi, kas piešķirti sensoriem, ir uzskaitīti kā mērījumi.
Lai redzētu jebkura mērījuma izvadi, lai pārliecinātos, ka telegrafa fails ir pareizs un sensors darbojas, izmantojiet komandu “select * from cpu limit 1”, kā parādīts 10. attēlā.
Katru reizi, kad tiek veiktas izmaiņas failā telegraf.conf, noteikti apturiet InfluxDB, restartējiet Telegraf un pēc tam palaidiet InfluxDB.
Piesakieties Grafana no pārlūkprogrammas un izveidojiet informācijas paneļus pēc tam, kad esat pārliecinājies, ka dati tiek vākti pareizi.
Dodieties uz Savienojumi > InfuxDB > Pievienot jaunu datu avotu.
- Piešķiriet šim datu avotam nosaukumu. Šajā demonstrācijā tas ir “test-1”.
- Saskaņā ar HTTP stanza izmantojiet Ubuntu servera IP un 8086 portu.
- InfluxDB detaļās izmantojiet to pašu datu bāzes nosaukumu “telegraf” un norādiet Ubuntu servera lietotājvārdu un paroli.
- Noklikšķiniet uz Saglabāt un pārbaudīt. Pārliecinieties, vai redzat ziņojumu “Veiksmīgi”.
- Kad datu avots ir veiksmīgi pievienots, atveriet informācijas paneļus un noklikšķiniet uz Jauns. Izveidosim dažus informācijas paneļus, kas ir būtiski AI/ML darba slodzēm redaktora režīmā.
Examples Of Sensor Graphs
Tālāk ir norādīti exampdaži galvenie skaitītāji, kas ir būtiski AI/ML tīkla uzraudzībai.
Procentitage izmantošana ieejas interfeisam et-0/0/0 uz mugurkaula-1
- Atlasiet datu avotu kā test-1.
- Sadaļā FROM atlasiet mērījumu kā “interfeiss”. Šis ir unikālais nosaukums, kas tiek izmantots šim sensora ceļam.
- Sadaļā WHERE atlasiet ierīci:tag, un sadaļā tag vērtību, atlasiet slēdža resursdatora nosaukumu, tas ir, spine1.
- Sadaļā SELECT izvēlieties sensora atzaru, kuru vēlaties uzraudzīt; šajā gadījumā izvēlieties "field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)". Tagad tajā pašā sadaļā noklikšķiniet uz “+” un pievienojiet šo aprēķinu matemātiku (/50000000000 * 100). Mēs pamatā aprēķinām procentustage 400G interfeisa izmantošana.
- Pārliecinieties, vai FORMAT ir “laikrinda”, un nosauciet diagrammu sadaļā ALIAS.
Maksimālais bufera noslogojums jebkurai rindai
- Atlasiet datu avotu kā test-1.
- Sadaļā FROM atlasiet mērījumu kā “buferis”.
- Sadaļā WHERE ir jāaizpilda trīs lauki. Izvēlieties ierīci:tag, un sadaļā tag vērtība izvēlieties slēdža resursdatora nosaukumu (ti, spine-1); UN atlasiet /cos/interfaces/interface/@name::tag un izvēlieties interfeisu (ti, et- 0/0/0); UN atlasiet arī rindu, /cos/interfaces/interface/queues/queue/@queue::tag un izvēlieties rindas numuru 4.
- Sadaļā SELECT izvēlieties sensora atzaru, kuru vēlaties uzraudzīt; šajā gadījumā izvēlieties “field(/cos/interfaces/interface/queues/queue/PeakBufferOccupancy).”
- Pārliecinieties, vai FORMAT ir “laikrinda”, un nosauciet diagrammu sadaļā ALIAS.
Varat apkopot datus par vairākām saskarnēm vienā diagrammā, kā parādīts 17. attēlā et-0/0/0, et-0/0/1, et-0/0/2 utt.
PFC un ECN nozīmē atvasinājumu
Lai atrastu vidējo atvasinājumu (vērtības starpību laika diapazonā), izmantojiet neapstrādātā vaicājuma režīmu.
Šis ir pieplūduma vaicājums, ko esam izmantojuši, lai atrastu vidējo atvasinājumu starp divām PFC vērtībām Spine-0 et-0/0/1 sekundē.
SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) FROM “interfeiss” WHERE (“ierīce”::tag = 'Spine-1') UN $timeFilter GROUP BY BY ($intervalls)
SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts”), 1s) FROM “interfeiss” WHERE (“ierīce”::tag = 'Spine-1') UN $timeFilter GROUP BY BY ($intervalls)
Ievades resursu kļūdas nozīmē atvasinājumu
Neapstrādāts resursu kļūdu vaicājums nozīmē atvasinājumu:
SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) FROM “interfeiss” WHERE (“ierīce”::tag = 'Spine-1') UN $timeFilter GROUP BY BY ($intervalls)
Astes pilieni nozīmē atvasinājumu
Neapstrādāts vaicājums par astes izkrišanas vidējo atvasinājumu ir:
SELECT atvasinājums(nozīmē (“/cos/interfeiss/interfeiss/rindas/rinda/tailDropBytes”), 1s) FROM “buffer” WHERE (“ierīce”::tag = 'Lapa-1' UN "/cos/interfaces/interface/@name"::tag = 'et-0/0/0' UN "/cos/interfaces/interface/queues/queue/@queue"::tag = '4') UN $timeFilter GROUP BY BY time($__interval) aizpildiet(null)
CPU izmantošana
- Atlasiet datu avotu kā test-1.
- Sadaļā FROM atlasiet mērījumu kā “newcpu”
- Laukā KUR ir jāaizpilda trīs lauki. Izvēlieties ierīci:tag un iekšā tag vērtība atlasiet slēdža resursdatora nosaukumu (ti, spine-1). UN mapē /components/component/properties/property/name:tagun nosaukumā atlasiet cpuutilization-total AND::tag atlasiet RE0.
- Sadaļā SELECT izvēlieties sensora atzaru, kuru vēlaties pārraudzīt. Šajā gadījumā izvēlieties “lauks(stāvoklis/vērtība)”.
Neapstrādāts vaicājums, lai atrastu nenegatīvu atvasinājumu no astes kritumiem vairākiem slēdžiem vairākās saskarnēs bitos/s.
SELECT non_negative_derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s)*8 FROM “buffer” WHERE (ierīce::tag =~ /^Spine-[1-2]$/) un (“/cos/interfaces/interface/@name”::tag =~ /et-0\/0\/[0-9]/ vai "/cos/interfaces/interface/@name"::tag=~/et-0\/0\/1[0-5]/) UN $timeFilter GROUP BY BY ($__intervāls),ierīce::tag aizpildīt (nulle)
Tie bija daži no bijušajiemampgrafikiem, ko var izveidot AI/ML tīkla uzraudzībai.
Kopsavilkums
Šis raksts ilustrē telemetrijas datu iegūšanas un vizualizācijas metodi, izveidojot grafikus. Šajā rakstā ir īpaši runāts par AI/ML sensoriem, gan native, gan openconfig, taču iestatīšanu var izmantot visu veidu sensoriem. Mēs esam iekļāvuši arī risinājumus vairākām problēmām, ar kurām jūs varētu saskarties, veidojot iestatījumu. Šajā rakstā aprakstītās darbības un izvades ir raksturīgas iepriekš minētajām TIG kaudzes versijām. Tas var mainīties atkarībā no programmatūras versijas, sensoriem un Junos versijas.
Atsauces
Juniper Yang Data Model Explorer visām sensoru opcijām
https://apps.juniper.net/ydm-explorer/
Openconfig forums openconfig sensoriem
https://www.openconfig.net/projects/models/
Korporatīvās un tirdzniecības štābs
Juniper Networks, Inc.
1133 Inovāciju ceļš
Sunnyvale, CA 94089 ASV
Tālrunis: 888. JUNIPER (888.586.4737)
vai +1.408.745.2000
Fakss: +1.408.745.2100
www.juniper.net
APAC un EMEA galvenā mītne
Juniper Networks International BV
Boeing Avenue 240
1119 PZ Schiphol-Rijk
Amsterdama, Nīderlande
Tālrunis: +31.207.125.700
Fakss: +31.207.125.701
Autortiesības 2023 Juniper Networks. Inc. Visas tiesības paturētas. Juniper Networks, Juniper Networks logotips, Juniper, Junos un citas preču zīmes ir Juniper Networks reģistrētas preču zīmes. inc. un/vai tās filiāles ASV un citās valstīs. Citi nosaukumi var būt to attiecīgo īpašnieku preču zīmes. Juniper Networks neuzņemas atbildību par neprecizitātēm šajā dokumentā. Juniper Networks patur tiesības veikt izmaiņas. modificēt. pārsūtīt vai citādi pārskatīt šo publikāciju bez brīdinājuma.
Sūtīt atsauksmes uz: design-center-comments@juniper.net V1.0/240807/ejm5-telemetry-junos-ai-ml
Dokumenti / Resursi
![]() |
Juniper NETWORKS telemetrija In Junos AI ML Workloads programmatūrai [pdfLietotāja rokasgrāmata Telemetrija programmā Junos for AI ML Workloads Software, Junos for AI ML Workloads Software, AI ML Workloads Software, Workloads Software, Software |