AI/ML жумуш жүктөрү үчүн Junosдагы телеметрия
Author: Shalini Mukherjee
Introduction
AI кластердик трафики жогорку өткөрүү жөндөмдүүлүгү жана аз күтүү мөөнөтү бар жоготуусуз тармактарды талап кылгандыктан, AI тармагынын маанилүү элементи мониторинг маалыматтарын чогултуу болуп саналат. Junos Telemetry негизги эффективдүү индикаторлорго, анын ичинде тыгындарды башкаруу жана трафиктин жүгүн тең салмактоо үчүн босоголорду жана эсептегичтерди майда-чүйдөсүнө чейин көзөмөлдөөгө мүмкүндүк берет. gRPC сеанстары телеметрия маалыматтарынын агымын колдойт. gRPC — HTTP/2 транспортунда курулган заманбап, ачык булактуу, жогорку натыйжалуу алкак. Бул эки багыттуу агымдык мүмкүнчүлүктөрдү кеңейтет жана суроо-талаптын аталыштарында ийкемдүү ыңгайлаштырылган метадайындарды камтыйт. Телеметриянын алгачкы кадамы - бул кандай маалыматтарды чогултуу керек экенин билүү. Андан кийин биз бул маалыматтарды ар кандай форматтарда талдай алабыз. Биз маалыматтарды чогулткандан кийин, аны көзөмөлдөөгө, чечимдерди кабыл алууга жана сунушталып жаткан кызматты жакшыртууга оңой форматта берүү маанилүү. Бул макалада биз Telegraf, InfluxDB жана Grafanaдан турган телеметриялык стекти колдонобуз. Бул телеметриялык стек маалымат чогултуу моделин колдонот. Салттуу тартуу моделдери ресурстарды көп талап кылат, кол менен кийлигишүүнү талап кылат жана алар чогулткан маалыматтарда маалыматтык боштуктарды камтышы мүмкүн. Түртүү моделдери маалыматтарды асинхрондук түрдө жеткирүү менен бул чектөөлөрдү жеңет. Алар колдонуучуга ыңгайлуу колдонуу менен маалыматтарды байытат tags жана аттары. Маалыматтар окула турган форматта болгондон кийин, биз аны маалымат базасында сактап, интерактивдүү визуализацияда колдонобуз web тармагын талдоо үчүн колдонмо. Сүрөт. 1 бул стек маалыматтарды чогултууга, сактоого жана визуалдаштырууга, маалыматты чогултуучуга түрткөн тармактык түзүлүштөрдөн баштап, анализдөө үчүн башкаруу панелдеринде көрсөтүлгөн маалыматтарга чейин кандайча иштелип чыкканын көрсөтөт.
TIG Stack
Биз TIG стек менен кошо бардык программалык камсыздоону орнотуу үчүн Ubuntu серверин колдондук.
Телеграф
Маалыматтарды чогултуу үчүн биз 22.04.2 иштеп жаткан Ubuntu серверинде Telegraf колдонобуз. Бул демодо иштеген Telegraf версиясы 1.28.5.
Telegraf - бул көрсөткүчтөрдү чогултуу жана отчеттуулук үчүн плагинге негизделген сервердик агент. Ал процессорду колдонот plugins маалыматтарды байытуу жана нормалдаштыруу. чыгаруу plugins Бул маалыматтарды ар кандай маалымат дүкөндөрүнө жөнөтүү үчүн колдонулат. Бул документте биз эки колдонобуз plugins: бири openconfig сенсорлору үчүн, экинчиси Juniper жергиликтүү сенсорлору үчүн.
InfluxDB
Маалыматтарды убакыт сериялары базасында сактоо үчүн, биз InfluxDB колдонобуз. Telegraf чыгаруу плагини маалыматтарды InfluxDBге жөнөтөт, ал аны абдан эффективдүү сактайт. Биз V1.8ди колдонуп жатабыз, анткени V2 жана андан жогоркулар үчүн CLI жок.
Grafana
Grafana бул маалыматтарды визуализациялоо үчүн колдонулат. Grafana InfluxDBден маалыматтарды алып, колдонуучуларга бай жана интерактивдүү панелдерди түзүүгө мүмкүндүк берет. Бул жерде биз 10.2.2 версиясын иштеп жатабыз.
Которуштагы конфигурация
Бул стекти ишке ашыруу үчүн, биз адегенде 2-сүрөттө көрсөтүлгөндөй которгучту конфигурациялашыбыз керек. Биз 50051 портун колдондук. Бул жерде каалаган портту колдонсо болот. QFX которуштуруусуна кирип, төмөнкү конфигурацияны кошуңуз.
Эскертүү: Бул конфигурация лабораториялар/ПОКтор үчүн, анткени сырсөз так текстте берилет. Мунун алдын алуу үчүн SSL колдонуңуз.
Курчап турган чөйрө
Nginx
Бул Grafana жайгаштырылган портту ачыкка чыгара албасаңыз керек. Кийинки кадам - тескери прокси агенти катары кызмат кылуу үчүн Ubuntu серверине nginx орнотуу. Nginx орнотулгандан кийин, 4-сүрөттө көрсөтүлгөн саптарды "демейки" файлга кошуп, файлды /etc/nginxтен /etc/nginx/sites-enabledге жылдырыңыз.
5-сүрөттө көрсөтүлгөндөй, nginx кызматына толук мүмкүнчүлүк берүү үчүн брандмауэр туураланганын текшериңиз.
Nginx орнотулуп, керектүү өзгөртүүлөр киргизилгенден кийин, биз Grafana'га a web бардык программалык камсыздоо орнотулган Ubuntu серверинин IP дарегин колдонуу менен браузер.
Графанада демейки сырсөздү кайра коюуга мүмкүндүк бербеген кичинекей ката бар. Бул маселеге туш болсоңуз, бул кадамдарды колдонуңуз.
Графанада сырсөздү орнотуу үчүн Ubuntu серверинде аткарыла турган кадамдар:
- /var/lib/grafana/grafana.db дарегине өтүңүз
- sqllite3 орнотуу
o sudo apt орнотуу sqlite3 - Бул буйрукту терминалыңызда иштетиңиз
o sqlite3 grafana.db - Sqlite буйрук сабы ачылат; төмөнкү суроону иштетүү:
>login='admin' турган колдонуучудан жок кылуу - Графананы кайра иштетиңиз жана колдонуучу аты жана сырсөз катары администраторду териңиз. Ал жаңы сырсөздү талап кылат.
Бардык программа орнотулгандан кийин, Telegraf'те конфигурация файлын түзүңүз, ал коммутатордон телеметрия маалыматтарын алып, аны InfluxDBге түртүүгө жардам берет.
Openconfig сенсор плагини
Ubuntu серверинде /etc/telegraf/telegraf.conf файлын оңдоп, керектүү нерселердин баарын кошуңуз plugins жана сенсорлор. Openconfig сенсорлору үчүн биз 6-сүрөттө көрсөтүлгөн gNMI плагинин колдонобуз. Демо максаттар үчүн хосттун атын “spine1”, gRPC үчүн колдонулган “50051” портунун номерин, которуштуруунун колдонуучу аты менен сырсөзүн жана номерди кошуңуз. ката болгон учурда кайра терүү үчүн секунданын.
Жазылуу строфасында ушул конкреттүү сенсор үчүн "cpu" деген уникалдуу аталышты, сенсордун жолун жана коммутатордон бул маалыматтарды алуу үчүн убакыт аралыгын кошуңуз. Бардык ачык конфигурация сенсорлору үчүн inputs.gnmi жана inputs.gnmi.subscription плагиндерин кошуңуз. (6-сүрөт)
Native Sensor Plugin
Бул жергиликтүү сенсорлор үчүн колдонулган Juniper телеметрия интерфейсинин плагини. Ошол эле telegraf.conf файлына inputs.jti_openconfig_telemetry жергиликтүү сенсор плагинин кошуңуз, мында талаалар openconfig менен дээрлик бирдей. Ар бир сенсор үчүн уникалдуу кардар ID колдонуңуз; бул жерде биз "telegraf3" колдонобуз. Бул сенсор үчүн бул жерде колдонулган уникалдуу аталыш "mem" (сүрөт 7).
Акырында, бул сенсор дайындарын InfluxDBге жөнөтүү үчүн outputs.influxdb чыгаруу плагинин кошуңуз. Бул жерде маалымат базасы “telegraf” деп аталат, колдонуучу аты “influx” жана сырсөз “influxdb” (8-сүрөт).
telegraf.conf файлын оңдогондон кийин, telegraf кызматын кайра иштетиңиз. Эми, бардык уникалдуу сенсорлор үчүн өлчөөлөр түзүлгөнүн текшерүү үчүн InfluxDB CLI текшериңиз. InfluxDB CLIге кирүү үчүн “influx” деп териңиз.
Сүрөттө көрүнүп тургандай. 9, influxDB чакырыгын киргизип, “telegraf” маалымат базасын колдонуңуз. Сенсорлорго берилген бардык уникалдуу аталыштар өлчөө катары келтирилген.
Кандайдыр бир өлчөөнүн натыйжасын көрүү үчүн, телеграф файлынын туура экенин жана сенсор иштеп жатканын текшерүү үчүн, 1-сүрөттө көрсөтүлгөндөй, “Cpu limit 10ден * тандоо” буйругун колдонуңуз.
telegraf.conf файлына өзгөртүүлөр киргизилген сайын, InfluxDB токтоп, Telegraf кайра күйгүзүлүп, андан кийин InfluxDB башталсын.
Браузерден Grafana'га кириңиз жана маалыматтар туура чогултулуп жатканын текшергенден кийин панелдерди түзүңүз.
Туташуулар > InfuxDB > Жаңы маалымат булагын кошуңуз.
- Бул маалымат булагына ат бериңиз. Бул демонстрацияда ал "тест-1" болуп саналат.
- HTTP станзасында Ubuntu серверинин IP жана 8086 портун колдонуңуз.
- InfluxDB чоо-жайында, ошол эле маалымат базасынын атын, "телеграфты" колдонуңуз жана Ubuntu серверинин колдонуучу атын жана сырсөзүн бериңиз.
- Сактоо жана текшерүүнү басыңыз. "Ийгиликтүү" деген билдирүүнү көрүп жатканыңызды текшериңиз.
- Берилиштер булагы ийгиликтүү кошулгандан кийин, Башкаруу такталарына өтүп, Жаңы чыкылдатыңыз. Келгиле, редактор режиминде AI/ML жумуш жүктөрү үчүн маанилүү болгон бир нече панелдерди түзөлү.
Examples Of Sensor Graphs
Төмөнкүлөр эксampAI/ML тармагын көзөмөлдөө үчүн маанилүү болгон кээ бир негизги эсептегичтердин les.
Персенtagомуртка-0деги кириш интерфейсин et-0/0/1 үчүн колдонуу
- Тест-1 катары маалымат булагын тандаңыз.
- FROM бөлүмүндө өлчөөнү "интерфейс" катары тандаңыз. Бул сенсор жолу үчүн колдонулган уникалдуу аталыш.
- WHERE бөлүмүндө түзмөктү тандаңыз::tag, жана ичинде tag мааниси, которгучтун хост атын тандаңыз, башкача айтканда, spine1.
- SELECT бөлүмүндө сиз көзөмөлдөгүңүз келген сенсор бутагын тандаңыз; бул учурда “field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)” тандаңыз. Эми ошол эле бөлүмдө "+" баскычын чыкылдатып, бул эсептөө математикасын кошуңуз (/50000000000 * 100). Биз негизи пайызды эсептеп жатабызtag400G интерфейсин колдонуу.
- FORMAT "убакыт сериясы" экенин текшерип, ALIAS бөлүмүндө графикти атаңыз.
Каалаган кезек үчүн буферди толтуруунун эң жогорку чеги
- Тест-1 катары маалымат булагын тандаңыз.
- FROM бөлүмүндө өлчөөнү “буфер” катары тандаңыз.
- КАЙДА бөлүмүндө толтурула турган үч талаа бар. Түзмөктү тандоо::tag, жана ичинде tag маани которгучтун хост атын тандоо (б.а. омуртка-1); ЖАНА тандоо /cos/interfaces/interface/@name::tag жана интерфейсти тандаңыз (б.а. et- 0/0/0); ЖАНА ошондой эле кезекти тандаңыз, /cos/interfaces/interface/queues/queue/@queue::tag жана №4 кезекти тандаңыз.
- SELECT бөлүмүндө сиз көзөмөлдөгүңүз келген сенсор бутагын тандаңыз; бул учурда "талааны(/cos/interfaces/interface/queues/queue/PeakBufierOccupancy)" тандаңыз.
- FORMAT "убакыт сериясы" экенин текшерип, ALIAS бөлүмүндө графикти атаңыз.
17-сүрөттө көрсөтүлгөндөй, бир эле график боюнча бир нече интерфейстер үчүн маалыматтарды чогулта аласыз et-0/0/0, et-0/0/1, et-0/0/2 ж.б.
PFC жана ECN туунду дегенди билдирет
Орточо туундуну (убакыт диапазонундагы маанидеги айырма) табуу үчүн чийки суроо режимин колдонуңуз.
Бул бир секунданын ичинде Spine-0дин et-0/0/1 боюнча эки PFC маанисинин ортосундагы орточо туундуну табуу үчүн колдонгон агылып келген суроо.
SELECT туунду(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) FROM “interface” WHERE (“түзмөк”::tag = 'Spine-1') ЖАНА $timeFilter GROUP BY time($interval)
SELECT туунду(mean(“/interfaces/interface[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts”), 1s) FROM “interface” WHERE (“түзмөк”::tag = 'Spine-1') ЖАНА $timeFilter GROUP BY time($interval)
Киргизүү ресурсундагы каталар туундуну билдирет
Ресурстук каталар үчүн чийки суроо туундуну билдирет:
SELECT туунду(мааниси(“/interfaces/interface[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) FROM “interface” WHERE (“түзмөк”::tag = 'Spine-1') ЖАНА $timeFilter GROUP BY time($interval)
Куйрук тамчылары туунду дегенди билдирет
Куйрук тамчылары үчүн чийки суроо туундуну билдирет:
SELECT туунду(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s) FROM “bufier” WHERE (“түзмөк”::tag = 'Leaf-1' ЖАНА “/cos/interfaces/interface/@name”::tag = 'et-0/0/0' ЖАНА “/cos/interfaces/interface/queues/queue/@queue”::tag = '4') ЖАНА $timeFilter GROUP BY time($__interval) fill(null)
CPU колдонуу
- Тест-1 катары маалымат булагын тандаңыз.
- FROM бөлүмүндө өлчөөнү "newcpu" катары тандаңыз
- КАЙДА, толтурула турган үч талаа бар. Түзмөктү тандоо::tag жана ичинде tag маани которгучтун хост атын тандаңыз (б.а. омуртка-1). ЖАНА /components/component/properties/property/name:tag, жана cpuutilization-total ЖАНА аталышын тандаңыз::tag RE0 тандаңыз.
- SELECT бөлүмүндө сиз көзөмөлдөгүңүз келген сенсор бутагын тандаңыз. Бул учурда, "талаа (абал/маани)" тандаңыз.
Бир нече интерфейстердеги бир нече которгучтар үчүн бит/сек боюнча куйруктун терс эмес туундусун табуу үчүн чийки суроо.
Негативдик_туундуну ТАҢДАҢЫЗ("/cos/interfaces/interface/queues/queue/tailDropBytes"), 1s)*8 "буферден" КАЙДА (түзмөк::tag =~ /^Spine-[1-2]$/) жана (“/cos/interfaces/interface/@name”::tag =~ /et-0\/0\/[0-9]/ же “/cos/interfaces/interface/@name”::tag=~/et-0\/0\/1[0-5]/) ЖАНА $timeFilter GROUP BY time($__interval),түзмөк::tag толтуруу (нөл)
Булар мурункулардын айрымдары болчуampAI/ML тармагын көзөмөлдөө үчүн түзүлө турган графиктер.
Жыйынтык
Бул кагаз телеметриялык маалыматтарды тартуу жана графиктерди түзүү аркылуу визуалдаштыруу ыкмасын көрсөтөт. Бул документте өзгөчө AI/ML сенсорлору жөнүндө сөз болот, жергиликтүү жана ачык конфигурация, бирок орнотуу сенсорлордун бардык түрлөрү үчүн колдонулушу мүмкүн. Орнотууну түзүү учурунда сиз туш болушу мүмкүн болгон бир нече маселелерди чечүү жолдорун да киргиздик. Бул документте сүрөттөлгөн кадамдар жана натыйжалар жогоруда айтылган TIG стекинин версияларына тиешелүү. Бул программалык камсыздоонун версиясына, сенсорлорго жана Junos версиясына жараша өзгөрүшү мүмкүн.
Шилтемелер
Бардык сенсор параметрлери үчүн Juniper Yang Data Model Explorer
https://apps.juniper.net/ydm-explorer/
Openconfig сенсорлору үчүн Openconfig форуму
https://www.openconfig.net/projects/models/
Корпоративдик жана сатуу боюнча штаб
Juniper Networks, Inc.
1133 Инновация жолу
Sunnyvale, CA 94089, Америка Кошмо Штаттары
Телефон: 888. JUNIPER (888.586.4737)
же +1.408.745.2000
Факс: +1.408.745.2100
www.juniper.net
APAC жана EMEA штаб-квартирасы
Juniper Networks International BV
Боинг проспектиси 240
1119 PZ Schiphol-Rijk
Амстердам, Нидерланды
Телефон: +31.207.125.700
Факс: +31.207.125.701
Copyright 2023 Juniper Networks. Inc. Ail укуктары корголгон. Juniper Networks, Juniper Networks логотиби, Juniper, Junos жана башка соода белгилери Juniper Networks компаниясынын катталган соода белгилери болуп саналат. Inc. жана/же анын Кошмо Штаттардагы жана башка өлкөлөрдөгү филиалдары. Башка аталыштар алардын ээлеринин соода белгилери болушу мүмкүн. Juniper Networks бул документтеги так эместиктер үчүн эч кандай жоопкерчиликти албайт. Juniper Networks өзгөртүү укугун өзүнө калтырат. өзгөртүү. өткөрүп берүү, же башка жол менен бул жарыялоону эскертүүсүз кайра карап чыгуу.
Пикир жөнөтүңүз: design-center-comments@juniper.net V1.0/240807/ejm5-telemetry-junos-ai-ml
Документтер / Ресурстар
![]() |
Juniper NETWORKS Telemetry In Junos AI ML Workloads программасы үчүн [pdf] Колдонуучунун колдонмосу Telemetry In Junos for AI ML Workloads Программасы, Junos for AI ML Workloads Программасы, AI ML Workloads Программасы, Иш жүктөөлөр Программасы, Программа |