Telemetri dalam Junos untuk Beban Kerja AI/ML
Pengarang: Shalini Mukherjee
pengenalan
Memandangkan traffic kluster AI memerlukan rangkaian tanpa kerugian dengan daya pemprosesan tinggi dan kependaman rendah, elemen kritikal rangkaian AI ialah pengumpulan data pemantauan. Junos Telemetry membolehkan pemantauan berbutir bagi penunjuk prestasi utama, termasuk ambang dan pembilang untuk pengurusan kesesakan dan pengimbangan beban trafik. Sesi gRPC menyokong penstriman data telemetri. gRPC ialah rangka kerja moden, sumber terbuka, berprestasi tinggi yang dibina pada pengangkutan HTTP/2. Ia memperkasakan keupayaan penstriman dwiarah asli dan termasuk metadata tersuai yang fleksibel dalam pengepala permintaan. Langkah awal dalam telemetri ialah mengetahui data yang hendak dikumpul. Kami kemudiannya boleh menganalisis data ini dalam pelbagai format. Sebaik sahaja kami mengumpul data, adalah penting untuk membentangkannya dalam format yang mudah dipantau, membuat keputusan dan menambah baik perkhidmatan yang ditawarkan. Dalam kertas ini, kami menggunakan timbunan telemetri yang terdiri daripada Telegraf, InfluxDB dan Grafana. Tindanan telemetri ini mengumpul data menggunakan model tolak. Model tarikan tradisional adalah intensif sumber, memerlukan campur tangan manual dan boleh memasukkan jurang maklumat dalam data yang mereka kumpulkan. Model tolak mengatasi batasan ini dengan menyampaikan data secara tidak segerak. Mereka memperkayakan data dengan menggunakan mesra pengguna tags dan nama. Setelah data berada dalam format yang lebih mudah dibaca, kami menyimpannya dalam pangkalan data dan menggunakannya dalam visualisasi interaktif web aplikasi untuk menganalisis rangkaian. Rajah. 1 menunjukkan kepada kita cara tindanan ini direka bentuk untuk pengumpulan, penyimpanan dan visualisasi data yang cekap, daripada peranti rangkaian yang menolak data kepada pengumpul kepada data yang dipaparkan pada papan pemuka untuk analisis.
Timbunan TIG
Kami menggunakan pelayan Ubuntu untuk memasang semua perisian termasuk timbunan TIG.
telegraf
Untuk mengumpul data, kami menggunakan Telegraf pada pelayan Ubuntu yang menjalankan 22.04.2. Versi Telegraf yang dijalankan dalam demo ini ialah 1.28.5.
Telegraf ialah ejen pelayan dipacu pemalam untuk mengumpul dan melaporkan metrik. Ia menggunakan pemproses plugins untuk memperkaya dan menormalkan data. Keluaran plugins digunakan untuk menghantar data ini ke pelbagai stor data. Dalam dokumen ini kami menggunakan dua plugins: satu untuk sensor openconfig dan satu lagi untuk sensor asli Juniper.
InuxDB
Untuk menyimpan data dalam pangkalan data siri masa, kami menggunakan InfluxDB. Pemalam output dalam Telegraf menghantar data ke InuxDB, yang menyimpannya dengan cara yang sangat cekap. Kami menggunakan V1.8 kerana tiada CLI hadir untuk V2 dan ke atas.
Grafana
Grafana digunakan untuk menggambarkan data ini. Grafana menarik data daripada InfluxDB dan membenarkan pengguna mencipta papan pemuka yang kaya dan interaktif. Di sini, kami menjalankan versi 10.2.2.
Konfigurasi Pada Suis
Untuk melaksanakan tindanan ini, mula-mula kita perlu mengkonfigurasi suis seperti yang ditunjukkan dalam Rajah 2. Kami telah menggunakan port 50051. Mana-mana port boleh digunakan di sini. Log masuk ke suis QFX dan tambahkan konfigurasi berikut.
Nota: Konfigurasi ini adalah untuk makmal/POC kerana kata laluan dihantar dalam teks yang jelas. Gunakan SSL untuk mengelakkan ini.
Persekitaran
Nginx
Ini diperlukan jika anda tidak dapat mendedahkan port di mana Grafana dihoskan. Langkah seterusnya ialah memasang nginx pada pelayan Ubuntu untuk berfungsi sebagai ejen proksi terbalik. Setelah nginx dipasang, tambahkan baris yang ditunjukkan dalam Rajah 4 kepada fail "lalai" dan alihkan fail dari /etc/nginx ke /etc/nginx/sites-enabled.
Pastikan firewall dilaraskan untuk memberikan akses penuh kepada perkhidmatan nginx seperti yang ditunjukkan dalam Rajah 5.
Setelah nginx dipasang dan perubahan yang diperlukan dibuat, kita seharusnya dapat mengakses Grafana dari a web pelayar dengan menggunakan alamat IP pelayan Ubuntu di mana semua perisian dipasang.
Terdapat gangguan kecil dalam Grafana yang tidak membenarkan anda menetapkan semula kata laluan lalai. Gunakan langkah ini jika anda menghadapi masalah ini.
Langkah-langkah yang perlu dilakukan pada pelayan Ubuntu untuk menetapkan kata laluan dalam Grafana:
- Pergi ke /var/lib/grafana/grafana.db
- Pasang sqlite3
o sudo apt install sqlite3 - Jalankan arahan ini pada terminal anda
o sqlite3 grafana.db - Sqlite command prompt dibuka; jalankan pertanyaan berikut:
>padam daripada pengguna di mana log masuk='admin' - Mulakan semula grafana dan taip admin sebagai nama pengguna dan kata laluan. Ia meminta kata laluan baharu.
Setelah semua perisian dipasang, cipta fail konfigurasi dalam Telegraf yang akan membantu menarik data telemetri daripada suis dan menolaknya ke InfluxDB.
Pemalam Sensor Openconfig
Pada pelayan Ubuntu, edit fail /etc/telegraf/telegraf.conf untuk menambah semua yang diperlukan plugins dan penderia. Untuk penderia openconfig, kami menggunakan pemalam gNMI yang ditunjukkan dalam Rajah 6. Untuk tujuan demo, tambahkan nama hos sebagai "spine1", nombor port "50051" yang digunakan untuk gRPC, nama pengguna dan kata laluan suis dan nombor beberapa saat untuk mendail semula sekiranya berlaku kegagalan.
Dalam bait langganan, tambahkan nama unik, "cpu" untuk penderia khusus ini, laluan penderia dan selang masa untuk mengambil data ini daripada suis. Tambahkan pemalam inputs.gnmi dan inputs.gnmi.subscription yang sama untuk semua penderia konfigurasi terbuka. (Rajah 6)
Pemalam Sensor Asli
Ini ialah pemalam antara muka telemetri Juniper yang digunakan untuk penderia asli. Dalam fail telegraf.conf yang sama, tambahkan input pemalam sensor asli.jti_openconfig_telemetry di mana medan hampir sama dengan openconfig. Gunakan ID pelanggan unik untuk setiap penderia; di sini, kami menggunakan "telegraf3". Nama unik yang digunakan di sini untuk sensor ini ialah "mem" (Rajah 7).
Akhir sekali, tambahkan pemalam keluaran outputs.influxdb untuk menghantar data penderia ini ke InfluxDB. Di sini, pangkalan data dinamakan “telegraf” dengan nama pengguna sebagai “inux” dan kata laluan “inuxdb” (Rajah 8).
Sebaik sahaja anda telah mengedit fail telegraf.conf, mulakan semula perkhidmatan telegraf. Sekarang, semak dalam InxDB CLI untuk memastikan sama ada ukuran dibuat untuk semua penderia unik. Taip “inx” untuk memasuki InxDB CLI.
Seperti yang dilihat dalam Rajah. 9, masukkan gesaan inxDB dan gunakan pangkalan data “telegraf”. Semua nama unik yang diberikan kepada penderia disenaraikan sebagai ukuran.
Untuk melihat output mana-mana satu ukuran, hanya untuk memastikan fail telegraf adalah betul dan penderia berfungsi, gunakan arahan "pilih * daripada had cpu 1" seperti yang ditunjukkan dalam Rajah 10.
Setiap kali perubahan dibuat pada fail telegraf.conf, pastikan untuk menghentikan InfluxDB, mulakan semula Telegraf, dan kemudian mulakan InfluxDB.
Log masuk ke Grafana dari pelayar dan buat papan pemuka selepas memastikan data dikumpul dengan betul.
Pergi ke Sambungan > InfuxDB > Tambah sumber data baharu.
- Beri nama kepada sumber data ini. Dalam demo ini ia adalah "ujian-1".
- Di bawah stanza HTTP, gunakan IP pelayan Ubuntu dan port 8086.
- Dalam butiran InuxDB, gunakan nama pangkalan data yang sama, “telegraf,” dan berikan nama pengguna dan kata laluan pelayan Ubuntu.
- Klik Simpan & uji. Pastikan anda melihat mesej, "berjaya".
- Setelah sumber data berjaya ditambahkan, pergi ke Papan Pemuka dan klik Baharu. Mari kita cipta beberapa papan pemuka yang penting untuk beban kerja AI/ML dalam mod editor.
Examples Daripada Graf Penderia
Berikut adalah exampbeberapa kaunter utama yang penting untuk memantau rangkaian AI/ML.
Peratustage penggunaan untuk antara muka kemasukan et-0/0/0 pada tulang belakang-1
- Pilih sumber data sebagai ujian-1.
- Dalam bahagian FROM, pilih ukuran sebagai "antara muka". Ini adalah nama unik yang digunakan untuk laluan penderia ini.
- Dalam bahagian WHERE, pilih peranti::tag, dan dalam tag nilai, pilih nama hos suis, iaitu, tulang belakang1.
- Dalam bahagian PILIH, pilih cawangan sensor yang anda mahu pantau; dalam kes ini pilih “field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)”. Sekarang dalam bahagian yang sama, klik pada “+” dan tambahkan pengiraan matematik ini (/50000000000 * 100). Kami pada asasnya mengira peratusantage penggunaan antara muka 400G.
- Pastikan FORMAT ialah "siri masa", dan namakan graf dalam bahagian ALIAS.
Penghunian penimbal puncak untuk sebarang baris gilir
- Pilih sumber data sebagai ujian-1.
- Dalam bahagian FROM, pilih ukuran sebagai "penampan."
- Dalam bahagian WHERE, terdapat tiga medan untuk diisi. Pilih peranti::tag, dan dalam tag nilai pilih nama hos suis (iaitu tulang belakang-1); DAN pilih /cos/interfaces/interface/@name::tag dan pilih antara muka (iaitu et- 0/0/0); DAN pilih baris gilir juga, /cos/interfaces/interface/queues/queue/@queue::tag dan pilih nombor giliran 4.
- Dalam bahagian PILIH, pilih cawangan sensor yang anda mahu pantau; dalam kes ini pilih "field(/cos/interfaces/interface/queues/queue/PeakBuerOccupancy).”
- Pastikan FORMAT adalah "siri masa" dan namakan graf dalam bahagian ALIAS.
Anda boleh menyusun data untuk berbilang antara muka pada graf yang sama seperti yang dilihat dalam Rajah 17 untuk et-0/0/0, et-0/0/1, et-0/0/2 dsb.
PFC dan ECN bermaksud derivatif
Untuk mencari min derivatif (perbezaan nilai dalam julat masa), gunakan mod pertanyaan mentah.
Ini ialah pertanyaan kemasukan yang telah kami gunakan untuk mencari terbitan min antara dua nilai PFC pada et-0/0/0 Spine-1 dalam satu saat.
SELECT derivatif(min(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) DARI “interface” WHERE (“peranti”::tag = 'Spine-1') DAN $timeFilter KUMPULAN MENGIKUT masa($interval)
PILIH terbitan(min(“/antara muka/antara muka[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts”), 1s) DARI “antara muka” WHERE (“peranti”::tag = 'Spine-1') DAN $timeFilter KUMPULAN MENGIKUT masa($interval)
Ralat sumber input bermakna derivatif
Pertanyaan mentah untuk ralat sumber min derivatif ialah:
PILIH terbitan(min(“/antara muka/antara muka[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) DARI “antara muka” WHERE (“peranti”::tag = 'Spine-1') DAN $timeFilter KUMPULAN MENGIKUT masa($interval)
Titisan ekor bermakna terbitan
Pertanyaan mentah untuk penurunan ekor min derivatif ialah:
PILIH terbitan(min(“/cos/antara muka/antara muka/baris gilir/baris gilir/tailDropBytes”), 1s) DARI “penampan” WHERE (“peranti”::tag = 'Leaf-1' DAN “/cos/interfaces/interface/@name”::tag = 'et-0/0/0' DAN “/cos/interfaces/interface/queues/queue/@queue”::tag = '4') DAN $timeFilter KUMPULAN MENGIKUT masa($__selang) isi(null)
Penggunaan CPU
- Pilih sumber data sebagai ujian-1.
- Dalam bahagian FROM, pilih ukuran sebagai "newcpu"
- Dalam WHERE, terdapat tiga medan untuk diisi. Pilih peranti::tag dan dalam tag nilai pilih nama hos suis (iaitu tulang belakang-1). DAN dalam /components/component/properties/property/name:tag, dan pilih cpuutilization-total DAN dalam nama::tag pilih RE0.
- Dalam bahagian PILIH, pilih cawangan penderia yang anda ingin pantau. Dalam kes ini, pilih "medan(keadaan/nilai)".
Pertanyaan mentah untuk mencari terbitan bukan negatif tail drop untuk berbilang suis pada berbilang antara muka dalam bit/saat.
PILIH non_negative_derivative(min(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s)*8 DARI “buer” WHERE (peranti::tag =~ /^Spine-[1-2]$/) dan (“/cos/interfaces/interface/@name”::tag =~ /et-0\/0\/[0-9]/ atau “/cos/interfaces/interface/@name”::tag=~/et-0\/0\/1[0-5]/) DAN $timeFilter KUMPULAN MENGIKUT masa($__interval),peranti::tag isi (null)
Ini adalah beberapa bekasampsedikit daripada graf yang boleh dibuat untuk memantau rangkaian AI/ML.
Ringkasan
Kertas kerja ini menggambarkan kaedah menarik data telemetri dan menggambarkannya dengan mencipta graf. Kertas ini secara khusus bercakap tentang penderia AI/ML, kedua-dua asli dan openconfig tetapi persediaan boleh digunakan untuk semua jenis penderia. Kami juga telah menyertakan penyelesaian untuk berbilang isu yang mungkin anda hadapi semasa membuat persediaan. Langkah-langkah dan output yang digambarkan dalam kertas ini adalah khusus untuk versi timbunan TIG yang dinyatakan sebelum ini. Ia tertakluk kepada perubahan bergantung pada versi perisian, penderia dan versi Junos.
Rujukan
Penjelajah Model Data Juniper Yang untuk semua pilihan sensor
https://apps.juniper.net/ydm-explorer/
Forum Openconfig untuk penderia openconfig
https://www.openconfig.net/projects/models/
Ibu Pejabat Korporat dan Jualan
Juniper Networks, Inc.
1133 Cara Inovasi
Sunnyvale, CA 94089 Amerika Syarikat
Telefon: 888. JUNIPER (888.586.4737)
atau +1.408.745.2000
Faks: +1.408.745.2100
www.juniper.net
Ibu Pejabat APAC dan EMEA
Juniper Networks International BV
Boeing Avenue 240
1119 PZ Schiphol-Rijk
Amsterdam, Belanda
Telefon: +31.207.125.700
Faks: +31.207.125.701
Hak Cipta 2023 Juniper Networks. Inc. Hak Ail terpelihara. Juniper Networks, logo Juniper Networks, Juniper, Junos, dan tanda dagangan lain ialah tanda dagangan berdaftar Juniper Networks. inc. dan/atau sekutunya di Amerika Syarikat dan negara lain. Nama lain mungkin merupakan tanda dagangan pemilik masing-masing. Juniper Networks tidak bertanggungjawab untuk sebarang ketidaktepatan dalam dokumen ini. Juniper Networks berhak untuk menukar. ubah suai. memindahkan, atau sebaliknya menyemak penerbitan ini tanpa notis.
Hantar maklum balas kepada: design-center-comments@juniper.net V1.0/240807/ejm5-telemetri-junos-ai-ml
Dokumen / Sumber
![]() |
Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML [pdf] Panduan Pengguna Telemetri Dalam Junos untuk Perisian Beban Kerja AI ML, Perisian Junos untuk Perisian Beban Kerja AI ML, Perisian Beban Kerja AI ML, Perisian Beban Kerja, Perisian |