Автор Гілка: egui_pinger — ping з метриками для телефонії  (Прочитано 1805 раз)

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 4091
  • Карма: +34/-0
  • Програміст
egui_pinger — це ping, яки графічно показує результат останніх 300 пінґів та рахує метрики, які потрібні для телефоністам для оцінки якості звʼязку, такі як тремтіння лінії (jitter), MOS, найгірший пінґ з 95%. Метрики можна вмикати чи вимикати для кожного хоста окремо.


Проєкт: https://github.com/vlisivka/egui_pinger
« Змінено: 2026-02-28 18:33:16 від Володимир Лісівка »
[Fedora Linux]

Відсутній ps

  • Кореспондент
  • ***
  • дописів: 161
  • Карма: +2/-0
    • Мої дописи на DevZone
Re: egui_pinger — ping з метриками для телефонії
« Відповідей #1 : 2026-02-28 20:50:24 »
Вау, так це й ще власна розробка! Респект - будем пробувать

UPD. а IPv6 він ще не вміє?

« Змінено: 2026-02-28 21:16:18 від ps »

Відсутній yvs115

  • Графоман
  • ****
  • дописів: 336
  • Карма: +13/-0
Re: egui_pinger — ping з метриками для телефонії
« Відповідей #2 : 2026-03-01 11:10:22 »
Цитата
це ping, яки графічно показує результат останніх 300 пінґів та рахує метрики, які потрібні для телефоністам для оцінки якості звʼязку
відносно реалізації, архітектури, фіч, etc. - майже по всьому достатньо буде зауважень у тих хто використовуватиме якщо то не тільки showcase

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 4091
  • Карма: +34/-0
  • Програміст
Re: egui_pinger — ping з метриками для телефонії
« Відповідей #3 : 2026-03-01 13:14:34 »
Вау, так це й ще власна розробка! Респект - будем пробувать

Не зовсім власна, на півдорозі скористався ШІ. Починав для того щоб навчитися користуватися egui, а тепер бачу що з ШІ я швидко розівчуся.

UPD. а IPv6 він ще не вміє?



Я спробував, ::1 наче пінгує, але автор бібілотеки surge-ping каже що в нього IPv6 не підтримується, він тільки localhost може тестувати. Я переповз з surge-ping на ping-async.

Спробуйте ще раз. Тепер підтримуються (відкидаються) квадратні дужки, а також має працювати %номер_пристрою.

У мене немає публічної адреси і порти відкрити я теж не можу для тунеля, тому IPv6 я повноцінно потестувати не можу.
« Змінено: 2026-03-01 13:29:21 від Володимир Лісівка »
[Fedora Linux]

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 4091
  • Карма: +34/-0
  • Програміст
Re: egui_pinger — ping з метриками для телефонії
« Відповідей #4 : 2026-03-01 13:15:28 »
Цитата
це ping, яки графічно показує результат останніх 300 пінґів та рахує метрики, які потрібні для телефоністам для оцінки якості звʼязку
відносно реалізації, архітектури, фіч, etc. - майже по всьому достатньо буде зауважень у тих хто використовуватиме якщо то не тільки showcase

Зауваження вітаються, я передам їх моєму штучному асистенту — він поправить код.
[Fedora Linux]

Відсутній ps

  • Кореспондент
  • ***
  • дописів: 161
  • Карма: +2/-0
    • Мої дописи на DevZone
Re: egui_pinger — ping з метриками для телефонії
« Відповідей #5 : 2026-03-01 13:18:41 »
Цитата
У мене немає публічної адреси і порти відкрити я теж не можу для тунеля, тому IPv6 я повноцінно потестувати не можу.

Спробуйте Yggdrasil або Mycelium - вони можуть працювати в оверлеї IPv4 і у вас буде валідний IPv6 у 0200::/7 і 0400::/7 відповідно.

Відсутній BeSiDa

  • Графоман
  • ****
  • дописів: 284
  • Карма: +2/-0
Re: egui_pinger — ping з метриками для телефонії
« Відповідей #6 : 2026-03-01 14:01:04 »
Зауваження вітаються, я передам їх моєму штучному асистенту — він поправить код.
А що буде коли вимкнути провід до вашого провайдера? Чи є там інформація що підключено через що саме? Чи про всі кінцеві точки напише "немає пінгу"? (а також коли затримки та джітер виникли у ВайФай найближчому до вас)

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 4091
  • Карма: +34/-0
  • Програміст
Re: egui_pinger — ping з метриками для телефонії
« Відповідей #7 : 2026-03-01 18:30:02 »
Спробуйте Yggdrasil або Mycelium - вони можуть працювати в оверлеї IPv4 і у вас буде валідний IPv6 у 0200::/7 і 0400::/7 відповідно.

Я просто дав IPv6-адресу пристрою, пропінгував його, і на тому заспокоївся.


А що буде коли вимкнути провід до вашого провайдера? Чи є там інформація що підключено через що саме? Чи про всі кінцеві точки напише "немає пінгу"? (а також коли затримки та джітер виникли у ВайФай найближчому до вас)

Для того щоб розуміти де обірвався звʼязок, треба спочатку скласти карту мережі, наприклад подивитися трасу командою traceroute/tracepath/mtr/trippy, або сходити пішки і подивитися на пристрої та позаписувати їхні адреси, а потім послідовно пінгувати пристрої на шляху від компʼютера до провайдера чи навіть далі. Тоді, коли звʼязок обірветься, можна подивитися які пристрої ще пінгуються, а які вже ні, і по тому визначити де звʼязок обірвався.

Для того, щоб це робилося автоматично, я хочу зробити автоматичний виклик traceroute при трьох неуіспішних пінгах, але traceroute жахливо повільний і до того ж він по різному працює під Linux/Windows, а я дуже не люблю сидіти під Windows для тестування. Тому як варіант, я роздумую чи не зробити свою простеньку версію traceroute, яка працюватиме однаково і там і там. Логіка traceroute та ping дуже подібна, але traceroute вимагає більше прав ніж простий ping, через необхідність встановлення TTL пакетам.
[Fedora Linux]

Відсутній yvs115

  • Графоман
  • ****
  • дописів: 336
  • Карма: +13/-0
Re: egui_pinger — ping з метриками для телефонії
« Відповідей #8 : 2026-03-01 20:33:21 »
Цитата
Зауваження вітаються, я передам їх моєму штучному асистенту — він поправить код.
То не проблема коду, це бачення як що і для чого обирається.
Якщо відносно тільки того що напряму до коду можна прив'язати - використання gui незрозуміло для чого (copy-paste відсутній, drag-n-drop відсутній, scrolling відсутній),
пару пунктів з фіч що зразу впадає в очі - l10n embedded то занадто, idn - відсутнє, і багато іншого.

Цитата
Логіка traceroute та ping дуже подібна, але traceroute вимагає більше прав ніж простий ping, через необхідність встановлення TTL пакетам.
не дуже, якщо не брати до уваги розширені можливості - то по дефолту: traceroute надсилає udp packets та отримує інфо по трасі з icmp, ping оперує icmp.
Додаткові права потребують операції з raw sockets, встановлення ttl - не потребує.

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 4091
  • Карма: +34/-0
  • Програміст
Re: egui_pinger — ping з метриками для телефонії
« Відповідей #9 : 2026-03-02 07:08:45 »
То не проблема коду, це бачення як що і для чого обирається.

Я написав утиліту для пінгування, тобто інструмент, тестер, яку можна запустити, покористуватися, і сховати назад. Я не пишу систему моніторингу. Для системи моніторингу потрібні сервер та сервіс, який запущений постійно, і клієнт для показу результатів.

Якщо відносно тільки того що напряму до коду можна прив'язати - використання gui незрозуміло для чого (copy-paste відсутній, drag-n-drop відсутній, scrolling відсутній),

Копіювання присутнє, але по одному рядку за раз. DnD присутній, але лише для переставляння пінгів.  :-\ Скролювання присутнє, але для графіка я спеціально заборонив наближення та скролювання та обмежив результати до 300 пінгів (5 хвилин при 1 пінгу на секунду), щоб не перетворювати утиліту на систему моніторингу.

пару пунктів з фіч що зразу впадає в очі - l10n embedded то занадто, idn - відсутнє, і багато іншого.

Вбудовані переклади зручні на Windows, де всеодно gettext немає. IDN відсутній в DNS, там xn-, які є звичайними іменами.

по дефолту: traceroute надсилає udp packets та отримує інфо по трасі з icmp, ping оперує icmp.
Додаткові права потребують операції з raw sockets, встановлення ttl - не потребує.

Ось крейт tracert: https://github.com/shellrow/tracert , який вміє асинхронно пінгувати та трасувати по icmp та UDP, IPv4 та IPv6. Мені перейти на нього не проблема, але під Лінуксом він вимагатиме додатково дозволу CAP_NET_RAW. Я щось пропустив? Ну і це вже буде traceroute тоді, а не ping.
[Fedora Linux]

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 4091
  • Карма: +34/-0
  • Програміст
Re: egui_pinger — ping з метриками для телефонії
« Відповідей #10 : 2026-03-02 09:39:43 »
А що буде коли вимкнути провід до вашого провайдера? Чи є там інформація що підключено через що саме? Чи про всі кінцеві точки напише "немає пінгу"? (а також коли затримки та джітер виникли у ВайФай найближчому до вас)

Тепер — є.  :)

https://github.com/vlisivka/egui_pinger/releases/tag/0.4
[Fedora Linux]

Відсутній yvs115

  • Графоман
  • ****
  • дописів: 336
  • Карма: +13/-0
Re: egui_pinger — ping з метриками для телефонії
« Відповідей #11 : 2026-03-02 10:35:27 »
Цитата
Цитата
То не проблема коду, це бачення як що і для чого обирається.
Я написав утиліту для пінгування, тобто інструмент, тестер, яку можна запустити, покористуватися, і сховати назад. Я не пишу систему моніторингу. Для системи моніторингу потрібні сервер та сервіс, який запущений постійно, і клієнт для показу результатів.
окей, можна з бази -утиліта- роздивлятися:
- системні утиліти - маленькі, зручні, достатньо функціональні для використання практично скрізь - приклад ping як такої cli тулзи.
  виходячи з того щоб мінімузувати ресурси написані на мові системи - в юніксах це сі
- перехідні майже системні утиліти - розширений функціонал в якому-небудь ракурсі - в принципі пишуть на чому завгодно, хоча зазвичай також на сі хоча це не настільки критично як у першому випадку, приклад - mtr
- проги які надають яку-небудь інформацію і не обмежені критеріями з двох пунктів вище

з такої точки зору - прога написана на раст тобто достатньо ресурсоємка як у роботі так і для збирання (не електрон, але всеж важка)
малаб бути у третій категорії з фокусом на її додаткових можливостях, тобто їх не описують з фокусом на - утиліта для пінгування
(додатково для цієї категорії - з точки зору секюріті, тут не краще місце для додаткових linux caps чи запуску від рута, це згадалось коли побачив сотні бог-зна яких crates необхідних для проги з цього топіку)

Цитата
Копіювання присутнє, але по одному рядку за раз. DnD присутній, але лише для переставляння пінгів.  :-\ Скролювання присутнє
значить не повезло що першим спробував - copy-paste імені хоста для пінгування (спробував скопіювати з іншого терміналу мишею з highlight+middleclick, і через основний clipboard з довгонудним copy-paste), з dnd - передвинути колонки з дата (які до речі без вирівнювання виглядають далеко не кращим чином), scrolling з проскролюванням вправо бо при старті інфо була обрізана з правої сторони.

Цитата
Вбудовані переклади зручні на Windows, де всеодно gettext немає.
я не дуже у віндовсах тому не підскажу як там, відносно unix/gettext - уявіть собі той жах щоб проги роздувалися десятками локалізацій збережених у locale/LANG/CATEGORY/domain.mo

Цитата
IDN відсутній в DNS, там xn-, які є звичайними іменами
ascii representation то інша внутрішня сторона, для користувача важливо щоб набравши нп щось на зразок `ping köthe.de` - працювало

Цитата
до 300 пінгів (5 хвилин при 1 пінгу на секунду)
я був подумав зразу що напевно потребує 300 crates щоб зібрати (побачив під 500 і що помилився у здогадці, і там якийсь інший різон з 300)
(у себе був обирав 100 щоб легко співставити проценти нп)

Цитата
Цитата
якщо не брати до уваги розширені можливості, по дефолту: traceroute надсилає udp packets та отримує інфо по трасі з icmp, ping оперує icmp.
Ось крейт tracert: https://github.com/shellrow/tracert, який вміє асинхронно пінгувати та трасувати по icmp та UDP, IPv4 та IPv6.
якщо не брати до уваги розширені можливості класичний traceroute надсилає udp пакети (отримує icmp по трасі),
відносно можливостей по транспорту з наведеного переліку для того crate - трохи біднувато виглядає, нп у порівнянні з mtr який може працювати з icmp udp tcp (і sctp було навіть додано колись) як в ipv4 мережах так і з ipv6

поінт був не в розширеннях, а в базовому дизайні
« Змінено: 2026-03-02 10:58:59 від yvs115 »

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 4091
  • Карма: +34/-0
  • Програміст
Re: egui_pinger — ping з метриками для телефонії
« Відповідей #12 : 2026-03-03 09:35:39 »
У версії 0.5 додав журналювання з повідомленнями у традиційному для ping стилі з можливістю копіювання і запису на диск. Також зробив журналювання інцидентів та статистики туди ж. Більше можливостей додавати я не планую, тільки виправляти помилки.

- проги які надають яку-небудь інформацію і не обмежені критеріями з двох пунктів вище

з такої точки зору - прога написана на раст тобто достатньо ресурсоємка як у роботі так і для збирання (не електрон, але всеж важка)
малаб бути у третій категорії з фокусом на її додаткових можливостях, тобто їх не описують з фокусом на - утиліта для пінгування

Хай буде в третій категорії: «інструмент для збору статистики шляхом пінгування».

(додатково для цієї категорії - з точки зору секюріті, тут не краще місце для додаткових linux caps чи запуску від рута, це згадалось коли побачив сотні бог-зна яких crates необхідних для проги з цього топіку)

Згоден, використав системний traceroute/tracert.exe.

значить не повезло що першим спробував - copy-paste імені хоста для пінгування (спробував скопіювати з іншого терміналу мишею з highlight+middleclick, і через основний clipboard з довгонудним copy-paste), з dnd - передвинути колонки з дата (які до речі без вирівнювання виглядають далеко не кращим чином), scrolling з проскролюванням вправо бо при старті інфо була обрізана з правої сторони.
Копіювання по середньому кліку ще не підтримується в egui. Це можна зробити самому, але мені ліньки. Пересування полів статистики — поки не відчув потреби в цьому. Я просто вимикаю непотрібну статистику і у мене все влазить на екран (щоправда екран на моєму нетбуку — 4к, я пізніше спробую як воно виглядає на менших екранах).


я не дуже у віндовсах тому не підскажу як там, відносно unix/gettext - уявіть собі той жах щоб проги роздувалися десятками локалізацій збережених у locale/LANG/CATEGORY/domain.mo
Ну це ж опція. Не подобається — не вмикайте. Я, коли розробляю, не вмикаю її, а вмикаю тільки коли роблю реліз, щоб менше файлів класти в архів.

ascii representation то інша внутрішня сторона, для користувача важливо щоб набравши нп щось на зразок `ping köthe.de` - працювало

Згоден що це зручно, але, як обхідний варіант, можна задати IP-адресу і назву в окремих полях. Я не бачив багато локалізованих сайтів, навіть свого позбувся.

якщо не брати до уваги розширені можливості класичний traceroute надсилає udp пакети (отримує icmp по трасі),
відносно можливостей по транспорту з наведеного переліку для того crate - трохи біднувато виглядає, нп у порівнянні з mtr який може працювати з icmp udp tcp (і sctp було навіть додано колись) як в ipv4 мережах так і з ipv6

поінт був не в розширеннях, а в базовому дизайні
Я не планую робити заміну traceroute, так як вже є trippy, який і так чудово працює. Це заміна для vmping, який написаний лише під Windows.
[Fedora Linux]

Відсутній yvs115

  • Графоман
  • ****
  • дописів: 336
  • Карма: +13/-0
Re: egui_pinger — ping з метриками для телефонії
« Відповідей #13 : 2026-03-03 18:36:31 »
Цитата
Цитата
значить не повезло що першим спробував - copy-paste імені хоста для пінгування (спробував скопіювати з іншого терміналу мишею з highlight+middleclick, і через основний clipboard з довгонудним copy-paste), з dnd - передвинути колонки з дата (які до речі без вирівнювання виглядають далеко не кращим чином), scrolling з проскролюванням вправо бо при старті інфо була обрізана з правої сторони.
Копіювання по середньому кліку ще не підтримується в egui. Це можна зробити самому, але мені ліньки. Пересування полів статистики — поки не відчув потреби в цьому. Я просто вимикаю непотрібну статистику і у мене все влазить на екран (щоправда екран на моєму нетбуку — 4к, я пізніше спробую як воно виглядає на менших екранах).
Якщо говорити відносно фіч поза основним функціоналом - то великому рахунку якраз ці відповідні зручності й мали б надаватися з gui версіями - dnd, copypaste, scrolling, gui widgets, etc. Абож якийсь інший функціонал напряму пов'язаний з можливостями графіки. Якщо відсутній - то можливостей tui версій більш ніж достатньо.

Цитата
Цитата
ascii representation то інша внутрішня сторона, для користувача важливо щоб набравши нп щось на зразок `ping köthe.de` - працювало
Згоден що це зручно, але, як обхідний варіант, можна задати IP-адресу і назву в окремих полях. Я не бачив багато локалізованих сайтів, навіть свого позбувся.
всі фічі та можливості в сумі - те що визначає наскільки привабливим для користувача виходить софт

Цитата
Я не планую робити заміну traceroute, так як вже є trippy, який і так чудово працює. Це заміна для vmping, який написаний лише під Windows.
Під лінуксом такого плану підходи (та й малофункціональний gui фреймворк) виглядає чесно кажучи трохи чудернацько.
Відносно відповідного софта навколо ping/traceroute - після mtr нічого нового з ідей не зустрічалося (єдине що пробував сам додати - то дійсно графіку (2D, 3D) - з pingpath нп, але і того певно недостатньо щоб було мас-привабливим до купи з необхідністю).