Juniper NETWORKS- logoTelemetri i Junos til AI/ML-arbejdsbelastninger
Forfatter: Shalini Mukherjee

Indledning

Da AI-klyngetrafik kræver tabsfri netværk med høj gennemløb og lav latenstid, er et kritisk element i AI-netværket indsamlingen af ​​overvågningsdata. Junos Telemetry muliggør granulær overvågning af nøglepræstationsindikatorer, herunder tærskler og tællere til håndtering af overbelastning og balancering af trafikbelastning. gRPC-sessioner understøtter streaming af telemetridata. gRPC er en moderne open source-ramme med høj ydeevne, der er bygget på HTTP/2-transport. Det giver native tovejs streaming-kapaciteter og inkluderer fleksible brugerdefinerede metadata i anmodningsheadere. Det første trin i telemetri er at vide, hvilke data der skal indsamles. Vi kan derefter analysere disse data i forskellige formater. Når vi først har indsamlet dataene, er det vigtigt at præsentere dem i et format, der er nemt at overvåge, træffe beslutninger og forbedre den service, der tilbydes. I dette papir bruger vi en telemetristak bestående af Telegraf, InfluxDB og Grafana. Denne telemetristak indsamler data ved hjælp af en push-model. Traditionelle pull-modeller er ressourcekrævende, kræver manuel indgriben og kan inkludere informationshuller i de data, de indsamler. Push-modeller overvinder disse begrænsninger ved at levere data asynkront. De beriger dataene ved at bruge brugervenligt tags og navne. Når dataene er i et mere læsbart format, gemmer vi dem i en database og bruger dem i en interaktiv visualisering web applikation til at analysere netværket. Figur. 1 viser os, hvordan denne stak er designet til effektiv dataindsamling, lagring og visualisering, fra netværksenheder, der skubber data til indsamleren, til de data, der vises på dashboards til analyse.

Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software -

TIG stak

Vi brugte en Ubuntu-server til at installere al softwaren inklusive TIG-stakken.

telegraf
For at indsamle data bruger vi Telegraf på en Ubuntu-server, der kører 22.04.2. Telegraf-versionen, der kører i denne demo, er 1.28.5.
Telegraf er en plugin-drevet serveragent til indsamling og rapportering af metrics. Den bruger processor plugins at berige og normalisere dataene. Udgangen plugins bruges til at sende disse data til forskellige datalagre. I dette dokument bruger vi to plugins: den ene til openconfig sensorer og den anden til Juniper native sensorer.
InfluxDB
For at gemme dataene i en tidsseriedatabase bruger vi InfluxDB. Output-plugin'et i Telegraf sender dataene til InfluxDB, som gemmer dem på en yderst effektiv måde. Vi bruger V1.8, da der ikke er nogen CLI til stede for V2 og nyere.
Grafana
Grafana bruges til at visualisere disse data. Grafana trækker dataene fra InfluxDB og giver brugerne mulighed for at skabe rige og interaktive dashboards. Her kører vi version 10.2.2.

Konfiguration på kontakten

For at implementere denne stak skal vi først konfigurere switchen som vist i figur 2. Vi har brugt port 50051. Enhver port kan bruges her. Log ind på QFX-switchen og tilføj følgende konfiguration.

Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - Switch

Note: Denne konfiguration er til laboratorier/POC'er, da adgangskoden sendes i klartekst. Brug SSL for at undgå dette.

Miljø

Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - Miljø

Nginx
Dette er nødvendigt, hvis du ikke er i stand til at afsløre den havn, hvor Grafana er hostet. Det næste trin er at installere nginx på Ubuntu-serveren for at tjene som en omvendt proxy-agent. Når nginx er installeret, skal du tilføje linjerne vist i figur 4 til "default"-filen og flytte filen fra /etc/nginx til /etc/nginx/sites-enabled.

Juniper NETWORKS Telemetri In Junos for AI ML Workloads Software - Nginx

Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - Nginx1

Sørg for, at firewallen er justeret for at give fuld adgang til nginx-tjenesten som vist i figur 5.

Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - Nginx2

Når nginx er installeret, og de nødvendige ændringer er foretaget, bør vi være i stand til at få adgang til Grafana fra en web browser ved at bruge IP-adressen på Ubuntu-serveren, hvor al softwaren er installeret.
Der er en lille fejl i Grafana, der ikke lader dig nulstille standardadgangskoden. Brug disse trin, hvis du støder på dette problem.
Trin, der skal udføres på Ubuntu-serveren for at indstille adgangskoden i Grafana:

  • Gå til /var/lib/grafana/grafana.db
  • Installer sqllite3
    o sudo apt installer sqlite3
  • Kør denne kommando på din terminal
    o sqlite3 grafana.db
  •  Sqlite kommandoprompt åbnes; kør følgende forespørgsel:
    >slet fra bruger hvor login='admin'
  • Genstart grafana og skriv admin som brugernavn og adgangskode. Den beder om en ny adgangskode.

Når al softwaren er installeret, skal du oprette konfigurationsfilen i Telegraf, som hjælper med at trække telemetridataene fra switchen og skubbe den til InfluxDB.

Openconfig Sensor Plugin

Rediger /etc/telegraf/telegraf.conf-filen på Ubuntu-serveren for at tilføje alle de nødvendige plugins og sensorer. Til openconfig-sensorerne bruger vi gNMI-pluginet vist i figur 6. Til demoformål skal du tilføje værtsnavnet som "spine1", portnummeret "50051", der bruges til gRPC, switchens brugernavn og adgangskode og nummeret sekunder til genopkald i tilfælde af fejl.
I abonnementsstrofen skal du tilføje et unikt navn, "cpu" for denne særlige sensor, sensorstien og tidsintervallet for at få fat i disse data fra switchen. Tilføj det samme plugin inputs.gnmi og inputs.gnmi.subscription for alle de åbne konfigurationssensorer. (Figur 6)

Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - Nginx3

Native Sensor Plugin

Dette er et Juniper telemetri interface plugin, der bruges til indbyggede sensorer. I den samme telegraf.conf-fil skal du tilføje det native sensor-plugin inputs.jti_openconfig_telemetry, hvor felterne er næsten de samme som openconfig. Brug et unikt klient-id for hver sensor; her bruger vi "telegraf3". Det unikke navn, der bruges her til denne sensor, er "mem" (Figur 7).

Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - Nginx4

Tilføj endelig et output-plugin outputs.influxdb for at sende disse sensordata til InfluxDB. Her er databasen navngivet "telegraf" med brugernavn som "influx" og password "influxdb" (Figur 8).

Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - Nginx5

Når du har redigeret telegraf.conf-filen, skal du genstarte telegraf-tjenesten. Tjek nu InfluxDB CLI for at sikre dig, om der er oprettet målinger for alle de unikke sensorer. Skriv "influx" for at indtaste InfluxDB CLI.

Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - Nginx6

Som det ses i figur. 9, indtast influxDB-prompten og brug databasen "telegraf". Alle de unikke navne, der er givet til sensorerne, er angivet som målinger.
For at se output fra en måling, bare for at sikre, at telegraf-filen er korrekt, og sensoren virker, skal du bruge kommandoen "vælg * fra cpu-grænse 1" som vist i figur 10.

Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - Nginx7

Hver gang der foretages ændringer i telegraf.conf-filen, skal du sørge for at stoppe InfluxDB, genstarte Telegraf og derefter starte InfluxDB.
Log på Grafana fra browseren og opret dashboards efter at have sikret dig, at dataene bliver indsamlet korrekt.
Gå til Forbindelser > InfuxDB > Tilføj ny datakilde.

Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - Nginx8

  1. Giv et navn til denne datakilde. I denne demo er det "test-1".
  2.  Under HTTP-strofen skal du bruge Ubuntu-serverens IP og 8086-port.
    Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - Nginx9
  3. I InfluxDB-detaljerne skal du bruge det samme databasenavn, "telegraf", og angive brugernavnet og adgangskoden til Ubuntu-serveren.
  4. Klik på Gem og test. Sørg for, at du ser beskeden "vellykket".
    Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - Nginx10
  5. Når datakilden er tilføjet, skal du gå til Dashboards og klikke på Ny. Lad os oprette et par dashboards, der er afgørende for AI/ML-arbejdsbelastninger i redigeringstilstand.

Examples Af sensorgrafer

Følgende er examples af nogle større tællere, der er afgørende for overvågning af et AI/ML-netværk.
Procenttage-brug for en indgangsgrænseflade et-0/0/0 på spine-1
Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - Grafer

  • Vælg datakilden som test-1.
  • I FROM-sektionen skal du vælge målingen som "interface". Dette er det unikke navn, der bruges til denne sensorsti.
  • I sektionen WHERE skal du vælge enhed::tag, og i tag værdi, vælg værtsnavnet på switchen, det vil sige spine1.
  • I SELECT-sektionen skal du vælge den sensorgren, du vil overvåge; i dette tilfælde skal du vælge "field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)". Klik nu på "+" i samme afsnit og tilføj denne beregningsmatematik (/50000000000 * 100). Vi beregner som udgangspunkt procententage udnyttelse af et 400G-interface.
  • Sørg for, at FORMATET er "tidsserier", og navngiv grafen i ALIAS-sektionen.

Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - Graphs1Spidsbufferbelægning for enhver kø

Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - Graphs2

  • Vælg datakilden som test-1.
  • I FROM-sektionen skal du vælge målingen som "buffer".
  • I sektionen WHERE er der tre felter, der skal udfyldes. Vælg enhed::tag, og i tag værdi vælg switchens værtsnavn (dvs. spine-1); OG vælg /cos/interfaces/interface/@name::tag og vælg grænsefladen (dvs. et- 0/0/0); OG vælg også køen, /cos/interfaces/interface/queues/queue/@queue::tag og vælg kø nummer 4.
  • I SELECT-sektionen skal du vælge den sensorgren, du vil overvåge; i dette tilfælde skal du vælge "field(/cos/interfaces/interface/queues/queue/PeakBuerOccupancy)."
  • Sørg for, at FORMATET er "tidsserier", og navngiv grafen i ALIAS-sektionen.

Du kan samle data for flere grænseflader på den samme graf som vist i figur 17 for et-0/0/0, et-0/0/1, et-0/0/2 osv.

Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - Graphs3

PFC og ECN betyder derivat
Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - afledt

For at finde den gennemsnitlige afledte (forskellen i værdi inden for et tidsinterval), skal du bruge den rå forespørgselstilstand.
Dette er influx-forespørgslen, som vi har brugt til at finde den gennemsnitlige afledte mellem to PFC-værdier på et-0/0/0 af Spine-1 på et sekund.
SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) FRA “interface” WHERE (“enhed”::tag = 'Spine-1') OG $timeFilter GRUPPER EFTER tid($interval)

Juniper NETWORKS Telemetry In Junos til AI ML Workloads Software - Tilsvarende for ECN

SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts”), 1s) FRA “interface” WHERE (“enhed”::tag = 'Spine-1') OG $timeFilter GRUPPER EFTER tid($interval)

Juniper NETWORKS Telemetry In Junos til AI ML Workloads Software - Tilsvarende for ECN1

Input ressource fejl betyder afledt

Juniper NETWORKS Telemetry In Junos til AI ML Workloads Software - Tilsvarende for ECN2

Den rå forespørgsel efter ressourcefejl betyder afledt er:
SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) FRA “interface” WHERE (“enhed”::tag = 'Spine-1') OG $timeFilter GRUPPER EFTER tid($interval)

Juniper NETWORKS Telemetry In Junos til AI ML Workloads Software - Tilsvarende for ECN3

Haledråber betyder derivat

Juniper NETWORKS Telemetry In Junos til AI ML Workloads Software - Tilsvarende for ECN4

Den rå forespørgsel for tail drops betyder afledte er:
SELECT derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s) FRA “buffer” WHERE (“enhed”::tag = 'Leaf-1' OG "/cos/interfaces/interface/@name"::tag = 'et-0/0/0' OG "/cos/interfaces/interface/queues/queue/@queue"::tag = '4') OG $timeFilter GRUPPER EFTER time($__interval) fill(null)
 CPU-udnyttelse

Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - CPU-udnyttelse

  • Vælg datakilden som test-1.
  • I FROM-sektionen skal du vælge målingen som "newcpu"
  • I WHERE er der tre felter, der skal udfyldes. Vælg enhed::tag og i tag værdi vælg værtsnavnet på switchen (dvs. spine-1). OG i /components/component/properties/property/name:tag, og vælg cpuutilization-total AND in name::tag vælg RE0.
  • I SELECT-sektionen skal du vælge den sensorgren, du vil overvåge. I dette tilfælde skal du vælge "felt(tilstand/værdi)".

Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - CPU-udnyttelse1

Den rå forespørgsel til at finde den ikke-negative afledte af tail drops for flere switches på flere grænseflader i bit/sek.
SELECT non_negative_derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s)*8 FRA “buffer” WHERE (enhed::tag =~ /^Spine-[1-2]$/) og ("/cos/interfaces/interface/@name"::tag =~ /et-0\/0\/[0-9]/ eller “/cos/interfaces/interface/@name”::tag=~/et-0\/0\/1[0-5]/) OG $timeFilter GRUPPER EFTER tid($__interval),enhed::tag fyld (nul)

Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software - CPU-udnyttelse2

Det var nogle af examples af de grafer, der kan oprettes til overvågning af et AI/ML-netværk.

Oversigt

Dette papir illustrerer metoden til at trække telemetridata og visualisere dem ved at lave grafer. Dette papir taler specifikt om AI/ML-sensorer, både native og openconfig, men opsætningen kan bruges til alle slags sensorer. Vi har også inkluderet løsninger til flere problemer, som du kan komme ud for, mens du laver opsætningen. De trin og output, der er afbildet i dette papir, er specifikke for de tidligere nævnte versioner af TIG-stakken. Det kan ændres afhængigt af versionen af ​​softwaren, sensorerne og Junos-versionen.

Referencer

Juniper Yang Data Model Explorer til alle sensormuligheder
https://apps.juniper.net/ydm-explorer/
Openconfig forum for openconfig sensorer
https://www.openconfig.net/projects/models/

Juniper NETWORKS Telemetri In Junos for AI ML Workloads Software - ikon

Virksomheds- og salgshovedkvarter
Juniper Networks, Inc.
1133 Innovationsvej
Sunnyvale, CA 94089 USA
Telefon: 888. JUNIPER (888.586.4737)
eller +1.408.745.2000
Fax: +1.408.745.2100
www.juniper.net
APAC og EMEA hovedkvarter
Juniper Networks International BV
Boeing Avenue 240
1119 PZ Schiphol-Rijk
Amsterdam, Holland
Telefon: +31.207.125.700
Fax: +31.207.125.701
Copyright 2023 Juniper Networks. Inc. Alle rettigheder forbeholdes. Juniper Networks, Juniper Networks-logoet, Juniper, Junos og andre varemærker er registrerede varemærker tilhørende Juniper Networks. inkl. og/eller dets tilknyttede selskaber i USA og andre lande. Andre navne kan være varemærker tilhørende deres respektive ejere. Juniper Networks påtager sig intet ansvar for eventuelle unøjagtigheder i dette dokument. Juniper Networks forbeholder sig retten til ændringer. modificere. overføre eller på anden måde revidere denne publikation uden varsel.
Send feedback til: design-center-comments@juniper.net V1.0/240807/ejm5-telemetry-junos-ai-ml

Dokumenter/ressourcer

Juniper NETWORKS Telemetri In Junos til AI ML Workloads Software [pdfBrugervejledning
Telemetri i Junos for AI ML Workloads Software, Junos for AI ML Workloads Software, AI ML Workloads Software, Workloads Software, Software

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *