Telemetria v Junos pre pracovné zaťaženie AI/ML
Autor: Shalini Mukherjee
Úvod
Keďže klastrová prevádzka AI vyžaduje bezstratové siete s vysokou priepustnosťou a nízkou latenciou, kritickým prvkom siete AI je zber monitorovacích údajov. Junos Telemetry umožňuje podrobné monitorovanie kľúčových ukazovateľov výkonu, vrátane prahových hodnôt a počítadiel pre riadenie preťaženia a vyrovnávanie dopravného zaťaženia. Relácie gRPC podporujú streamovanie telemetrických údajov. gRPC je moderný, open-source, vysoko výkonný rámec, ktorý je postavený na prenose HTTP/2. Umožňuje natívne obojsmerné streamovanie a obsahuje flexibilné vlastné metadáta v hlavičkách požiadaviek. Prvým krokom v telemetrii je vedieť, aké údaje sa majú zbierať. Tieto údaje potom môžeme analyzovať v rôznych formátoch. Keď údaje zhromaždíme, je dôležité ich prezentovať vo formáte, ktorý sa dá ľahko monitorovať, robiť rozhodnutia a zlepšovať ponúkané služby. V tomto článku používame telemetrický zásobník pozostávajúci z Telegraf, InfluxDB a Grafana. Tento zásobník telemetrie zhromažďuje údaje pomocou modelu push. Tradičné modely ťahania sú náročné na zdroje, vyžadujú manuálny zásah a mohli by obsahovať informačné medzery v údajoch, ktoré zhromažďujú. Push modely prekonávajú tieto obmedzenia tým, že doručujú údaje asynchrónne. Obohacujú údaje o užívateľsky prívetivé použitie tags a mená. Keď sú dáta v čitateľnejšom formáte, uložíme ich do databázy a použijeme v interaktívnej vizualizácii web aplikácia na analýzu siete. Obrázok. 1 nám ukazuje, ako je tento zásobník navrhnutý na efektívny zber, ukladanie a vizualizáciu údajov, od sieťových zariadení, ktoré tlačia údaje do kolektora, až po údaje, ktoré sa zobrazujú na paneloch na analýzu.
TIG zásobník
Na inštaláciu všetkého softvéru vrátane zásobníka TIG sme použili server Ubuntu.
telegraf
Na zhromažďovanie údajov používame Telegraf na serveri Ubuntu so systémom 22.04.2. Verzia Telegraf spustená v tejto ukážke je 1.28.5.
Telegraf je serverový agent riadený doplnkami na zhromažďovanie a vykazovanie metrík. Používa procesor plugins obohatiť a normalizovať údaje. Výstup plugins sa používajú na odosielanie týchto údajov do rôznych dátových úložísk. V tomto dokumente používame dva plugins: jeden pre senzory openconfig a druhý pre natívne senzory Juniper.
InfluxDB
Na uloženie údajov do databázy časových radov používame InfluxDB. Výstupný plugin v Telegrafe odosiela dáta do InfluxDB, ktorá ich vysoko efektívnym spôsobom ukladá. Používame V1.8, pretože pre V2 a vyššie neexistuje CLI.
Grafana
Grafana sa používa na vizualizáciu týchto údajov. Grafana sťahuje údaje z InfluxDB a umožňuje používateľom vytvárať bohaté a interaktívne dashboardy. Tu používame verziu 10.2.2.
Konfigurácia na prepínači
Na implementáciu tohto zásobníka musíme najprv nakonfigurovať prepínač, ako je znázornené na obrázku 2. Použili sme port 50051. Tu je možné použiť akýkoľvek port. Prihláste sa do prepínača QFX a pridajte nasledujúcu konfiguráciu.
Poznámka: Táto konfigurácia je určená pre laboratóriá/POC, pretože heslo sa prenáša ako čistý text. Aby ste tomu zabránili, použite protokol SSL.
Životné prostredie
Nginx
Toto je potrebné, ak nemôžete odhaliť port, na ktorom je hosťovaná Grafana. Ďalším krokom je inštalácia nginx na server Ubuntu, ktorý bude slúžiť ako reverzný proxy agent. Po nainštalovaní nginx pridajte riadky zobrazené na obrázku 4 do „predvoleného“ súboru a presuňte súbor z /etc/nginx do /etc/nginx/sites-enabled.
Uistite sa, že je brána firewall nastavená tak, aby poskytovala úplný prístup k službe nginx, ako je znázornené na obrázku 5.
Po nainštalovaní nginx a vykonaní požadovaných zmien by sme mali mať prístup ku Grafane z a web prehliadača pomocou IP adresy servera Ubuntu, kde je nainštalovaný všetok softvér.
V Grafane je malá chyba, ktorá vám neumožňuje obnoviť predvolené heslo. Ak narazíte na tento problém, použite tieto kroky.
Kroky, ktoré sa majú vykonať na serveri Ubuntu na nastavenie hesla v Grafane:
- Prejdite na /var/lib/grafana/grafana.db
- Nainštalujte sqllite3
o sudo apt install sqlite3 - Spustite tento príkaz na svojom termináli
o sqlite3 grafana.db - Otvorí sa príkazový riadok Sqlite; spustite nasledujúci dotaz:
>odstrániť z používateľa kde login='admin' - Reštartujte grafana a zadajte admin ako užívateľské meno a heslo. Vyzve na zadanie nového hesla.
Keď je všetok softvér nainštalovaný, vytvorte konfiguračný súbor v Telegrafe, ktorý vám pomôže stiahnuť telemetrické údaje z prepínača a vložiť ich do InfluxDB.
Openconfig Sensor Plugin
Na serveri Ubuntu upravte súbor /etc/telegraf/telegraf.conf a pridajte všetky požadované plugins a senzory. Pre senzory openconfig používame doplnok gNMI zobrazený na obrázku 6. Na účely ukážky pridajte názov hostiteľa ako „spine1“, číslo portu „50051“, ktoré sa používa pre gRPC, používateľské meno a heslo prepínača a číslo sekúnd na opätovné vytáčanie v prípade zlyhania.
V sekcii predplatného pridajte jedinečný názov „cpu“ pre tento konkrétny senzor, cestu k senzoru a časový interval na získanie týchto údajov z prepínača. Pridajte rovnaký plugin inputs.gnmi a inputs.gnmi.subscription pre všetky otvorené konfiguračné senzory. (Obrázok 6)
Doplnok Native Sensor Plugin
Toto je doplnok telemetrického rozhrania Juniper používaný pre natívne senzory. Do toho istého súboru telegraf.conf pridajte natívny senzorový plugin inputs.jti_openconfig_telemetry, kde sú polia takmer rovnaké ako openconfig. Použite jedinečné ID klienta pre každý senzor; tu používame „telegraf3“. Jedinečný názov, ktorý sa tu používa pre tento senzor, je „mem“ (obrázok 7).
Nakoniec pridajte výstupný plugin outputs.influxdb na odoslanie týchto údajov senzora do InfluxDB. Tu je databáza pomenovaná „telegraf“ s užívateľským menom „influx“ a heslom „influxdb“ (obrázok 8).
Po úprave súboru telegraf.conf reštartujte službu telegraf. Teraz skontrolujte v InfluxDB CLI, aby ste sa uistili, že sú vytvorené merania pre všetky jedinečné senzory. Napíšte „influx“ pre vstup do InfluxDB CLI.
Ako je vidieť na obrázku. 9, zadajte príkaz influxDB a použite databázu „telegraf“. Všetky jedinečné názvy priradené senzorom sú uvedené ako merania.
Ak chcete vidieť výstup akéhokoľvek merania, len aby ste sa uistili, že telegrafný súbor je správny a snímač funguje, použite príkaz „select * from cpu limit 1“, ako je znázornené na obrázku 10.
Zakaždým, keď sa v súbore telegraf.conf vykonajú zmeny, nezabudnite zastaviť InfluxDB, reštartovať Telegraf a potom spustiť InfluxDB.
Prihláste sa do Grafany z prehliadača a vytvorte dashboardy po uistení sa, že údaje sa zhromažďujú správne.
Prejdite na Pripojenia > InfuxDB > Pridať nový zdroj údajov.
- Pomenujte tento zdroj údajov. V tejto ukážke je to „test-1“.
- V časti HTTP použite IP servera Ubuntu a port 8086.
- V detailoch InfluxDB použite rovnaký názov databázy „telegraf“ a zadajte používateľské meno a heslo servera Ubuntu.
- Kliknite na položku Uložiť a otestovať. Uistite sa, že vidíte správu „úspešné“.
- Po úspešnom pridaní zdroja údajov prejdite na Panely a kliknite na položku Nové. Poďme vytvoriť niekoľko informačných panelov, ktoré sú nevyhnutné pre pracovné zaťaženie AI/ML v režime editora.
Exampsúbor grafov senzorov
Nasledujúce sú naprampniektoré hlavné počítadlá, ktoré sú nevyhnutné na monitorovanie siete AI/ML.
Percenttage využitie pre vstupné rozhranie et-0/0/0 na chrbtici-1
- Vyberte zdroj údajov ako test-1.
- V časti FROM vyberte meranie ako „rozhranie“. Toto je jedinečný názov používaný pre túto dráhu snímača.
- V časti KDE vyberte zariadenie::taga v tag hodnotu, vyberte názov hostiteľa prepínača, teda chrbticu1.
- V sekcii SELECT vyberte vetvu snímača, ktorú chcete monitorovať; v tomto prípade zvoľte “field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)”. Teraz v tej istej sekcii kliknite na „+“ a pridajte túto výpočtovú matematiku (/50000000000 * 100). V podstate počítame percentátage využitie rozhrania 400G.
- Uistite sa, že FORMÁT je „časový rad“ a pomenujte graf v časti ALIAS.
Najvyššia obsadenosť vyrovnávacej pamäte pre akýkoľvek front
- Vyberte zdroj údajov ako test-1.
- V časti FROM vyberte meranie ako „buffer“.
- V sekcii WHERE sú tri polia, ktoré treba vyplniť. Vyberte zariadenie::taga v tag hodnota vyberte názov hostiteľa prepínača (tj chrbtica-1); A vyberte /cos/interfaces/interface/@name::tag a vyberte rozhranie (tj et- 0/0/0); A tiež vyberte front, /cos/interfaces/interface/queues/queue/@queue::tag a vyberte si poradie číslo 4.
- V sekcii SELECT vyberte vetvu snímača, ktorú chcete monitorovať; v tomto prípade zvoľte „field(/cos/interfaces/interface/queues/queue/PeakBufferOccupancy).“
- Uistite sa, že FORMÁT je „časový rad“ a pomenujte graf v sekcii ALIAS.
Údaje pre viacero rozhraní môžete porovnávať na rovnakom grafe, ako je znázornené na obrázku 17 pre et-0/0/0, et-0/0/1, et-0/0/2 atď.
PFC a ECN znamenajú derivát
Na nájdenie strednej derivácie (rozdiel v hodnote v časovom rozsahu) použite režim nespracovaného dotazu.
Toto je dotaz na prílev, ktorý sme použili na nájdenie strednej derivácie medzi dvoma hodnotami PFC na et-0/0/0 Spine-1 za sekundu.
SELECT derivácia(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) FROM “interface” WHERE (“device”::tag = 'Chrbtica-1') A $timeFilter SKUPINA PODĽA času ($interval)
SELECT derivát(mean(“/interfaces/interface[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts”), 1s) FROM “interface” WHERE (“device”::tag = 'Chrbtica-1') A $timeFilter SKUPINA PODĽA času ($interval)
Chyby vstupných zdrojov znamenajú odvodenie
Nespracovaný dotaz na priemerný derivát chýb zdrojov je:
SELECT derivát(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) FROM “interface” WHERE (“device”::tag = 'Chrbtica-1') A $timeFilter SKUPINA PODĽA času ($interval)
Chvostové kvapky znamenajú derivát
Nespracovaný dopyt pre strednú deriváciu spadnutia chvosta je:
SELECT derivácia(priemer(“/cos/rozhrania/rozhranie/fronty/front/tailDropBytes”), 1s) FROM “buffer” WHERE (”zariadenie”::tag = 'Leaf-1' AND "/cos/interfaces/interface/@name"::tag = 'et-0/0/0' AND “/cos/interfaces/interface/queues/queue/@queue”::tag = '4') A $timeFilter GROUP BY time($__interval) fill (null)
využitie CPU
- Vyberte zdroj údajov ako test-1.
- V sekcii FROM vyberte meranie ako „newcpu“
- V WHERE sú tri polia, ktoré treba vyplniť. Vyberte zariadenie::tag a v tag hodnota vyberte názov hostiteľa prepínača (tj chrbtica-1). A v /components/component/properties/property/name:taga vyberte cpuutilization-total AND in name::tag vyberte RE0.
- V sekcii SELECT vyberte vetvu senzora, ktorú chcete monitorovať. V tomto prípade zvoľte „field(state/value)“.
Surový dotaz na nájdenie nezápornej derivácie koncových kvapiek pre viaceré prepínače na viacerých rozhraniach v bitoch/s.
SELECT non_negative_derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s)*8 FROM “buffer” WHERE (zariadenie::tag =~ /^Spine-[1-2]$/) a („/cos/interfaces/interface/@name“::tag =~ /et-0\/0\/[0-9]/ alebo „/cos/interfaces/interface/@name“::tag=~/et-0\/0\/1[0-5]/) A $timeFilter GROUP BY time($__interval),zariadenie::tag vyplniť (null)
Toto boli niektorí z bývalýchamppočet grafov, ktoré je možné vytvoriť na monitorovanie siete AI/ML.
Zhrnutie
Tento článok ilustruje spôsob získavania telemetrických údajov a ich vizualizácie pomocou vytvárania grafov. Tento dokument hovorí konkrétne o senzoroch AI/ML, natívnych aj openconfig, ale nastavenie možno použiť pre všetky druhy senzorov. Zahrnuli sme aj riešenia viacerých problémov, s ktorými sa môžete stretnúť pri vytváraní nastavenia. Kroky a výstupy zobrazené v tomto dokumente sú špecifické pre verzie zásobníka TIG spomenuté vyššie. Môže sa zmeniť v závislosti od verzie softvéru, snímačov a verzie Junos.
Referencie
Juniper Yang Data Model Explorer pre všetky možnosti senzorov
https://apps.juniper.net/ydm-explorer/
Openconfig fórum pre openconfig senzory
https://www.openconfig.net/projects/models/
Firemné a obchodné ústredie
Spoločnosť Juniper Networks, Inc.
1133 Inovačný spôsob
Sunnyvale, CA 94089, USA
Telefón: 888. JUNIPER (888.586.4737)
alebo +1.408.745.2000
Fax: +1.408.745.2100
www.juniper.net
Centrála pre APAC a EMEA
Juniper Networks International BV
Boeing Avenue 240
1119 PZ Schiphol-Rijk
Amsterdam, Holandsko
Telefón: +31.207.125.700 XNUMX XNUMX XNUMX
Fax: +31.207.125.701
Copyright 2023 Juniper Networks. Inc. Všetky práva vyhradené. Juniper Networks, logo Juniper Networks, Juniper, Junos a ďalšie ochranné známky sú registrované ochranné známky spoločnosti Juniper Networks. Inc. a/alebo jej pridružených spoločností v Spojených štátoch a iných krajinách. Ostatné názvy môžu byť ochrannými známkami ich príslušných vlastníkov. Juniper Networks nepreberá žiadnu zodpovednosť za akékoľvek nepresnosti v tomto dokumente. Juniper Networks si vyhradzuje právo na zmenu. upraviť. preniesť alebo inak upraviť túto publikáciu bez upozornenia.
Odoslať spätnú väzbu na: design-center-comments@juniper.net V1.0/240807/ejm5-telemetry-junos-ai-ml
Dokumenty / zdroje
![]() |
Telemetria Juniper NETWORKS v Junos pre softvér pracovných zaťažení AI ML [pdf] Používateľská príručka Telemetria v softvéri Junos for AI ML Workloads, Junos for AI ML Workloads Software, AI ML Workloads Software, Workloads Software, Software |