Juniper NETWORKS- logoTelemetri i Junos for AI/ML-arbeidsbelastninger
Forfatter: Shalini Mukherjee

Introduksjon

Siden AI-klyngetrafikk krever tapsfrie nettverk med høy gjennomstrømning og lav latens, er et kritisk element i AI-nettverket innsamlingen av overvåkingsdata. Junos Telemetry muliggjør granulær overvåking av nøkkelytelsesindikatorer, inkludert terskler og tellere for køhåndtering og trafikkbelastningsbalansering. gRPC-økter støtter strømming av telemetridata. gRPC er et moderne, åpen kildekode, høyytelsesrammeverk som er bygget på HTTP/2-transport. Den styrker native toveis streaming-funksjoner og inkluderer fleksible tilpassede metadata i forespørselshodene. Det første trinnet i telemetri er å vite hvilke data som skal samles inn. Vi kan deretter analysere disse dataene i ulike formater. Når vi har samlet inn dataene, er det viktig å presentere dem i et format som er enkelt å overvåke, ta beslutninger og forbedre tjenesten som tilbys. I denne artikkelen bruker vi en telemetristabel som består av Telegraf, InfluxDB og Grafana. Denne telemetristabelen samler inn data ved hjelp av en push-modell. Tradisjonelle pull-modeller er ressurskrevende, krever manuell intervensjon og kan inkludere informasjonshull i dataene de samler inn. Push-modeller overvinner disse begrensningene ved å levere data asynkront. De beriker dataene ved å bruke brukervennlig tags og navn. Når dataene er i et mer lesbart format, lagrer vi dem i en database og bruker dem i en interaktiv visualisering web applikasjon for å analysere nettverket. Figur. 1 viser oss hvordan denne stabelen er designet for effektiv datainnsamling, lagring og visualisering, fra nettverksenheter som skyver data til innsamleren til dataene som vises på dashbord for analyse.

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software -

TIG Stack

Vi brukte en Ubuntu-server for å installere all programvaren inkludert TIG-stakken.

telegraf
For å samle inn data bruker vi Telegraf på en Ubuntu-server som kjører 22.04.2. Telegraf-versjonen som kjører i denne demoen er 1.28.5.
Telegraf er en plugin-drevet serveragent for innsamling og rapportering av beregninger. Den bruker prosessor plugins å berike og normalisere dataene. Utgangen plugins brukes til å sende disse dataene til ulike datalagre. I dette dokumentet bruker vi to plugins: en for åpne konfig-sensorer og den andre for Juniper-native sensorer.
InfluxDB
For å lagre dataene i en tidsseriedatabase bruker vi InfluxDB. Utgangsplugin-modulen i Telegraf sender dataene til InfluxDB, som lagrer dem på en svært effektiv måte. Vi bruker V1.8 siden det ikke er noen CLI til stede for V2 og nyere.
Grafana
Grafana brukes til å visualisere disse dataene. Grafana henter dataene fra InfluxDB og lar brukere lage rike og interaktive dashboards. Her kjører vi versjon 10.2.2.

Konfigurasjon på bryteren

For å implementere denne stabelen, må vi først konfigurere svitsjen som vist i figur 2. Vi har brukt port 50051. En hvilken som helst port kan brukes her. Logg på QFX-svitsjen og legg til følgende konfigurasjon.

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

Note: Denne konfigurasjonen er for laboratorier/POCer da passordet overføres i klartekst. Bruk SSL for å unngå dette.

Miljø

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

Nginx
Dette er nødvendig hvis du ikke klarer å avsløre havnen der Grafana er vert. Det neste trinnet er å installere nginx på Ubuntu-serveren for å tjene som en omvendt proxy-agent. Når nginx er installert, legg til linjene vist i figur 4 til "default"-filen og flytt 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 for AI ML Workloads Software - Nginx1

Sørg for at brannmuren er justert for å gi full tilgang til nginx-tjenesten som vist i figur 5.

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

Når nginx er installert og de nødvendige endringene er gjort, bør vi kunne få tilgang til Grafana fra en web nettleseren ved å bruke IP-adressen til Ubuntu-serveren der all programvaren er installert.
Det er en liten feil i Grafana som ikke lar deg tilbakestille standardpassordet. Bruk disse trinnene hvis du støter på dette problemet.
Trinn som skal utføres på Ubuntu-serveren for å angi passordet i Grafana:

  • Gå til /var/lib/grafana/grafana.db
  • Installer sqllite3
    o sudo apt installer sqlite3
  • Kjør denne kommandoen på terminalen
    o sqlite3 grafana.db
  •  Sqlite ledetekst åpnes; kjør følgende spørring:
    >slett fra bruker der login='admin'
  • Start grafana på nytt og skriv inn admin som brukernavn og passord. Den ber om et nytt passord.

Når all programvaren er installert, oppretter du konfigurasjonsfilen i Telegraf som hjelper til med å trekke telemetridataene fra bryteren og skyve den til InfluxDB.

Openconfig Sensor Plugin

Rediger /etc/telegraf/telegraf.conf-filen på Ubuntu-serveren for å legge til alle nødvendige plugins og sensorer. For openconfig-sensorene bruker vi gNMI-pluginen vist i figur 6. For demoformål, legg til vertsnavnet som "spine1", portnummeret "50051" som brukes for gRPC, brukernavnet og passordet til svitsjen, og nummeret sekunder for repetisjon i tilfelle feil.
I abonnementsstrofen legger du til et unikt navn, "cpu" for denne bestemte sensoren, sensorbanen og tidsintervallet for å hente disse dataene fra bryteren. Legg til samme plugin inputs.gnmi og inputs.gnmi.subscription for alle de åpne konfiggssensorene. (Figur 6)

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

Native Sensor Plugin

Dette er en Juniper telemetrigrensesnitt-plugin som brukes for innfødte sensorer. I den samme telegraf.conf-filen legger du til den opprinnelige sensorplugin-inputs.jti_openconfig_telemetry der feltene er nesten de samme som openconfig. Bruk en unik klient-ID for hver sensor; her bruker vi "telegraf3". Det unike navnet som brukes her for denne sensoren er "mem" (Figur 7).

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

Til slutt, legg til en utgangsplugin outputs.influxdb for å sende disse sensordataene til InfluxDB. Her heter databasen "telegraf" med brukernavn som "influx" og passord "influxdb" (Figur 8).

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

Når du har redigert telegraf.conf-filen, start telegraf-tjenesten på nytt. Sjekk nå InfluxDB CLI for å forsikre deg om at målinger er opprettet for alle de unike sensorene. Skriv "influx" for å gå inn i InfluxDB CLI.

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

Som vist i figur. 9, skriv inn influxDB-ledeteksten og bruk databasen "telegraf". Alle de unike navnene gitt til sensorene er oppført som målinger.
For å se resultatet av en måling, bare for å sikre at telegraffilen er riktig og sensoren fungerer, bruk kommandoen "velg * fra cpu-grense 1" som vist i figur 10.

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

Hver gang det gjøres endringer i telegraf.conf-filen, sørg for å stoppe InfluxDB, starte Telegraf på nytt og deretter starte InfluxDB.
Logg på Grafana fra nettleseren og lag dashboards etter å ha sikret at dataene samles inn riktig.
Gå til Tilkoblinger > InfuxDB > Legg til ny datakilde.

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

  1. Gi denne datakilden et navn. I denne demoen er det "test-1".
  2.  Under HTTP-strofen bruker du Ubuntu-serverens IP og 8086-port.
    Juniper NETWORKS Telemetri In Junos for AI ML Workloads Software - Nginx9
  3. I InfluxDB-detaljene, bruk det samme databasenavnet, "telegraf", og oppgi brukernavnet og passordet til Ubuntu-serveren.
  4. Klikk Lagre og test. Sørg for at du ser meldingen "vellykket".
    Juniper NETWORKS Telemetri In Junos for AI ML Workloads Software - Nginx10
  5. Når datakilden er lagt til, går du til Dashboards og klikker på Ny. La oss lage noen få dashbord som er avgjørende for AI/ML-arbeidsbelastninger i redigeringsmodus.

Examples av sensorgrafer

Følgende er eksamples av noen større tellere som er avgjørende for å overvåke et AI/ML-nettverk.
Prosenttage-bruk for et ingress-grensesnitt et-0/0/0 på spine-1
Juniper NETWORKS Telemetri In Junos for AI ML Workloads Software - Grafer

  • Velg datakilden som test-1.
  • I FROM-delen velger du målingen som "grensesnitt". Dette er det unike navnet som brukes for denne sensorbanen.
  • I HVOR-delen velger du enhet::tag, og i tag verdi, velg vertsnavnet til bryteren, det vil si spine1.
  • I SELECT-delen velger du sensorgrenen du vil overvåke; i dette tilfellet velger du "field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)". Nå i samme seksjon, klikk på "+" og legg til denne beregningsmatematikken (/50000000000 * 100). Vi beregner i utgangspunktet prosententage bruk av et 400G-grensesnitt.
  • Sørg for at FORMATET er "tidsserier", og navngi grafen i ALIAS-delen.

Juniper NETWORKS Telemetri In Junos for AI ML Workloads Software - Graphs1Topp bufferbelegg for enhver kø

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

  • Velg datakilden som test-1.
  • I FROM-delen velger du målingen som "buffer".
  • I HVOR-delen er det tre felt å fylle ut. Velg enhet::tag, og i tag verdi velg vertsnavnet til bryteren (dvs. spine-1); OG velg /cos/interfaces/interface/@name::tag og velg grensesnittet (dvs. et- 0/0/0); OG velg køen også, /cos/interfaces/interface/queues/queue/@queue::tag og velg kønummer 4.
  • I SELECT-delen velger du sensorgrenen du vil overvåke; i dette tilfellet velger du "felt(/cos/grensesnitt/grensesnitt/køer/kø/PeakBuerOccupancy)."
  • Sørg for at FORMATET er "tidsserier" og navngi grafen i ALIAS-delen.

Du kan samle data for flere grensesnitt på 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 for AI ML Workloads Software - Graphs3

PFC og ECN betyr derivat
Juniper NETWORKS Telemetri In Junos for AI ML Workloads-programvare - avledet

For å finne den gjennomsnittlige deriverte (forskjellen i verdi innenfor et tidsrom), bruk råspørringsmodusen.
Dette er influksspørringen som vi har brukt for å finne den gjennomsnittlige deriverte mellom to PFC-verdier på et-0/0/0 av Spine-1 i løpet av et sekund.
SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) FRA “interface” WHERE (“device”::tag = 'Spine-1') OG $timeFilter GRUPPER ETTER tid($interval)

Juniper NETWORKS Telemetry In Junos for 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 (“device”::tag = 'Spine-1') OG $timeFilter GRUPPER ETTER tid($interval)

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

Inndataressursfeil betyr avledet

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

Råspørringen for ressursfeil betyr derivativ er:
SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) FRA “interface” WHERE (“device”::tag = 'Spine-1') OG $timeFilter GRUPPER ETTER tid($interval)

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

Haledråper betyr derivat

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

Den rå spørringen for halefall betyr-derivatet er:
SELECT derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s) FROM “buer” WHERE (“device”::tag = 'Leaf-1' OG "/cos/interfaces/interface/@name"::tag = 'et-0/0/0' OG "/cos/interfaces/interface/queues/queue/@queue"::tag = '4') OG $timeFilter GROUP BY time($__interval) fill(null)
 CPU-utnyttelse

Juniper NETWORKS Telemetri In Junos for AI ML Workloads Software - CPU-utnyttelse

  • Velg datakilden som test-1.
  • I FROM-delen velger du målingen som "newcpu"
  • I WHERE er det tre felt å fylle ut. Velg enhet::tag og i tag verdi velg vertsnavnet til bryteren (dvs. spine-1). OG i /components/component/properties/property/name:tag, og velg cpuutilization-total AND in name::tag velg RE0.
  • I VELG-delen velger du sensorgrenen du vil overvåke. I dette tilfellet velger du "felt(tilstand/verdi)".

Juniper NETWORKS telemetri i Junos for AI ML arbeidsbelastningsprogramvare - CPU-utnyttelse1

Den rå spørringen for å finne den ikke-negative deriverten av halefall for flere brytere på flere grensesnitt i bits/sek.
SELECT non_negative_derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s)*8 FROM “buffer” WHERE (enhet::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 ETTER tid($__intervall),enhet::tag fyll (null)

Juniper NETWORKS telemetri i Junos for AI ML arbeidsbelastningsprogramvare - CPU-utnyttelse2

Dette var noen av ekseneamples av grafene som kan opprettes for overvåking av et AI/ML-nettverk.

Sammendrag

Denne artikkelen illustrerer metoden for å trekke telemetridata og visualisere dem ved å lage grafer. Denne artikkelen snakker spesifikt om AI/ML-sensorer, både native og openconfig, men oppsettet kan brukes for alle typer sensorer. Vi har også inkludert løsninger for flere problemer du kan møte mens du oppretter oppsettet. Trinnene og utgangene som er avbildet i denne artikkelen er spesifikke for versjonene av TIG-stakken nevnt tidligere. Det kan endres avhengig av programvareversjonen, sensorene og Junos-versjonen.

Referanser

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

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

Bedrifts- og salgshovedkvarter
Juniper Networks, Inc.
1133 Innovasjonsvei
Sunnyvale, CA 94089 USA
Telefon: 888. JUNIPER (888.586.4737)
eller +1.408.745.2000
Faks: +1.408.745.2100
www.juniper.net
APAC og EMEA hovedkvarter
Juniper Networks International BV
Boeing Avenue 240
1119 PZ Schiphol-Rijk
Amsterdam, Nederland
Telefon: +31.207.125.700
Faks: +31.207.125.701
Copyright 2023 Juniper Networks. Inc. Alle rettigheter forbeholdt. Juniper Networks, Juniper Networks-logoen, Juniper, Junos og andre varemerker er registrerte varemerker for Juniper Networks. inc. og/eller dets tilknyttede selskaper i USA og andre land. Andre navn kan være varemerker for sine respektive eiere. Juniper Networks påtar seg intet ansvar for eventuelle unøyaktigheter i dette dokumentet. Juniper Networks forbeholder seg retten til å endre. endre. overføre eller på annen måte revidere denne publikasjonen uten varsel.
Send tilbakemelding til: design-center-comments@juniper.net V1.0/240807/ejm5-telemetry-junos-ai-ml

Dokumenter / Ressurser

Juniper NETWORKS Telemetri In Junos for AI ML Workloads Software [pdfBrukerhåndbok
Telemetri i Junos for AI ML arbeidsbelastningsprogramvare, Junos for AI ML arbeidsbelastningsprogramvare, AI ML arbeidsbelastningsprogramvare, arbeidsbelastningsprogramvare, programvare

Referanser

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket *