LINUX.ORG.RU

TTop — утилита мониторинга системы с поддержкой исторических данных

 , , , ,


6

2

Программа мониторинга системы TTop поддерживает следующие функции:

  • Снятие снапшотов системы через systemd.timers;
  • Перемещение по историческим данным с помощью [ и ];
  • Подсветка критических значений >80%;
  • Ascii-график по снапшотам;
  • Может работать без root;
  • Имеет статическую сборку или yay -S ttop для arch;

Планируется добавление нотификаций через telegram.

>>> Подробности



Проверено: hobbit ()

Оно ещё и на Nim написано!

CYB3R ★★★★★ ()

Автор молодец, но прога выглядит как что-то среднее между htop и экспортом метрик через prometheus в какую-нибудь графану.

Для аналога htop’а тут лишние systemd.timers и всякие нотификации.

Для прометеуса примитивно, но почему бы и нет.

Я лично пользуюсь bpytop для мониторинга системы «на глаз».

cocucka ★★★★☆ ()
Ответ на: комментарий от iron

Под фряху можно сабж сбилдить

К systemd прибит только таймер. В кроне это будет просто */10 * * * * ttop -s

Я уже не помню отличий в procfs у фри, но, теоретически ничего сложного, если наберётся достаточно запросов - сделаю

inv2004 ()
Последнее исправление: inv2004 (всего исправлений: 5)
Ответ на: комментарий от cocucka

Автор молодец, но прога выглядит как что-то среднее между htop и > экспортом метрик через prometheus в какую-нибудь графану.

Для аналога htop’а тут лишние systemd.timers и всякие нотификации.

Для прометеуса примитивно, но почему бы и нет.

Я лично пользуюсь bpytop для мониторинга системы «на глаз».

Я могу в кратце описать как дошёл до такой жизни: на любой новый сервер я тут же ставил atop пока не приедет что-то более серьёзное типа прометея, иногда оно и не приезжало, но следить было как-то надо.

почему не htop - он не умеет снепшоты - а это ключевое в данном приложении почему не atop - он не умеет диск да и в целом довольно страшноват, а тут график помогает найти спайки глазами

Как выше заметили - да, это Nim - на глаз не больше чем htop нагружает проц, хотя я особо не лез в оптимизацию, а всякие решения на bash/питон на слабых серверах не очень, да и зачем. Кто-то это на raspberry-pi использует даже

inv2004 ()
Последнее исправление: inv2004 (всего исправлений: 2)
Ответ на: комментарий от inv2004

Я уже не помню отличий в procfs у фри

Можно глянуть как реализован доступ к счетчикам в htop/glances/atop которые прекрастно работают под фрей.

если надерётся достаточно запросов - сделаю

Было бы глотком свежего воздуха после atop, главной фичей которого является сохранение истории счетчиков.

iron ★★★★★ ()
Ответ на: комментарий от iron

Можно глянуть как реализован доступ к счетчикам в htop/glances/atop

Я думаю там отличие только в формате, хотя, конечно есть ньюансы как процессорные тики считаются тоже

свежего воздуха после atop

Да, это именно замена atop а не просто top/htop

Если хотите - откройте issue (хотя я и так запомню), главное - ставьте звёздочку на гитхабе. Если наберётся достаточно звёздочек - с радостью сделаю, но для этого надо больше одного пользователя на фре, да и на linux тоже

inv2004 ()
Последнее исправление: inv2004 (всего исправлений: 3)

А он по процессам тоже сохраняет статистику, или только общие значения? Из скрин и описания не особо понятно

Murz ()

Сколько ж множно этих топов? Раньше были top и htop, теперь есть несколько на питоне, один на расте, один на го, вроде даже что-то на баше. Скорее всего на расте даже не один, я давно не следил. Раз в месяц где-то что-нибудь новенькое всплывает. Больше только аналогов neofetch.

CrX ()
Ответ на: комментарий от cocucka

Я лично пользуюсь bpytop для мониторинга системы «на глаз».

А чего не btop? Он вроде как примерно такой же, но на крестах и пошустрее.

CrX ()
Ответ на: комментарий от CrX

Да как-то повелось, что я bpytop ставлю т.к. питон обычно есть

cocucka ★★★★☆ ()
Ответ на: комментарий от Murz

А он по процессам тоже сохраняет статистику, или только общие значения? Из скрин и описания не особо понятно

Да сохраняет. Включая дерево дочерних процессов, которое можно включить через t

inv2004 ()
Ответ на: комментарий от CrX

Сколько ж множно этих топов

Я вполне понимал это когда начал писать, основной посыл был что с историческими данными вроде только atop, и то без диска и страшный

inv2004 ()
Ответ на: комментарий от dmitry237

Что это такое, статистика ее состояния или бэкап?

По сути сохранение всех основных параметров и параметров процессов на диск, ну и потом можно смотреть как там выглядело вчера вечером когда всё упало

inv2004 ()
Ответ на: комментарий от dmitry237

От btop отличает что видно I/O процессов в основной таблице и можно сортировать - I/O часто бывает узким местом, которое надо видеть сразу.

Ну и опять же, главное, что btop это типа realtime, а тут ещё можно назад по времени назад бегать как atop

inv2004 ()
Ответ на: комментарий от inv2004

Я уже не помню отличий в procfs у фри

Главное отличие в том что во фре его монтируют только для всяких легаси или для линукс-эмулятора, а так через sysctl доступ к этим данным.

firkax ★★★ ()
Ответ на: комментарий от firkax

syscall выглядит гораздо более адекватным решением, но, почему-то, в линуксе не практикуют даже в одних из самых популярных мониторингов

inv2004 ()
Ответ на: комментарий от inv2004

Я как-то не сталкивался с такой необходимостью, просто заинтересовало предназначение. Я и htop запускаю не часто.

dmitry237 ()
Ответ на: комментарий от inv2004

посмотрел исходники, не нашел rrd-backend'a.
или у вас свой какой-то аналог, циклично же данные хранятся?
и если x/y-plotter нотация - неплохо было бы отобразить относительные метки, с опцией выбора периода.
а в целом симпотично, нравится :)

etwrq ★★★★★ ()
Последнее исправление: etwrq (всего исправлений: 2)
Ответ на: комментарий от etwrq

посмотрел исходники, не нашел rrd-backend’a. или у вас свой какой-то аналог, циклично же данные хранятся?

Данные хранятся не циклично а буфер за день. Если от пользователя то в ~/.cache/ttop, если глобально то /var/log/ttop

и если x/y-plotter нотация - неплохо было бы отобразить относительные метки, с опцией выбора периода.

Вот тут не очень понял, если история сохраняется то можно бегать кнопками [], но метка там на графике будет видна одна (по секрету - и не всегда очень точно). А зачем период - например вместо 10 минут анализировать за час?

а в целом симпотично, нравится :)

Спасибо

inv2004 ()
Ответ на: комментарий от pascal

Больше TUI, одобряю, но почему не на сях?

Писалось, по общему времени, может быть кроме самого начального разбирательства с TUI, где-то неделю, причём довольно легко и приятно.

Можно сказать что на C, в том плане что Nim генерит C-исходники, в release-mode не сильно сложные для чтения :)

inv2004 ()
Ответ на: комментарий от superuser

Снятие снапшотов системы через systemd.timers

всё понятно - ненужно

Вот тут интересно. Потому, как я сам немного удивился не обнаружив cron’а не свежем арче. Но уже завели issue - собираюсь добавить включение в crontab -e по ttop --on если он есть в системе

inv2004 ()
Ответ на: комментарий от inv2004

А зачем период - например вместо 10 минут анализировать за час?

ну на скриншоте, условно, Y-ось с отметками есть - отметки пиковых значений, - уже какая то информация.
X-ось, как я понимаю, - временная. удобно было бы знать когда эти пики были, например что-бы в логах ковырятся или кросс-сверить другие пиковые значения по графикам в те же самые периоды/моменты времени для анализа. ну и скейлинг в периодах, если они дискретные, позволяет менять плотность графиков для удобства анализа состояния системы.

etwrq ★★★★★ ()
Ответ на: комментарий от etwrq

Думаю со скейлингом - пока не испытывал потребности особой, даже по минуте кажется многовато собирать, поставил раз в 10 минут пока, что, кажется, особого скейлинга не требует.

Про пики - они вроде и так видны, ны в плане что как-то их отдельно хранить, просто вектор чисел, а там уже видно какие большие. Аналогично со сверкой, перемещаешь «бегунок», а потом можно переключать разные типы сортировок типа Cpu, Mem и так далее.

В любом случае надо подумать, но звучит немного сложновато для небольшого ascii-графика :)

inv2004 ()
Ответ на: комментарий от Im_not_a_robot

В репах нет -> не нужно

Про это я даже написал немного текста:

«Прочувствовал боль всего linux-сообщества» https://t.me/inv2004_dev_blog/66

Нo, опять же, 1) это не htop 2) если захочет достаточное количество человек - то это осуществимо. к сожалению такой процесс, что с нуля в официальную репу не прыгнуть, даже если это AUR -> community в арче

inv2004 ()
Последнее исправление: inv2004 (всего исправлений: 2)
Ответ на: комментарий от inv2004

звучит немного сложновато для небольшого ascii-графика :)

это просто я ворчу немного:) для небольшого пет-проекта программа отличная:)
если на собесах будешь показывать, будь готов что могут попросить добавить в т.ч. и то о чем я писал. графики, оси координат и подписи - это примерно 5-7 класс средней школы.
*не в обиду, о5 прост ворчу - старым стал :)

etwrq ★★★★★ ()
Последнее исправление: etwrq (всего исправлений: 1)
  1. Отпилить от systemd.
  2. Сделать нотификации отдельной утилитой.

Было бы для меня очень интересно.

Gentooshnik ★★★★ ()
Ответ на: комментарий от Gentooshnik

Отпилить от systemd.

Через крон? Скоро будет. systemd.timers вообще только чтобы крон эмулировать.

Сделать нотификации отдельной утилитой.

Нотификаций пока нету (тем более через systemd), просто в планах было в телегу что-то кидать при больших значениях

inv2004 ()
Последнее исправление: inv2004 (всего исправлений: 2)
Ответ на: комментарий от inv2004

Я могу в кратце описать как дошёл до такой жизни: на любой новый сервер я тут же ставил atop пока не приедет что-то более серьёзное типа прометея, иногда оно и не приезжало, но следить было как-то надо.

А не лучше было сделать чтобы приезжало оперативно? Честно говоря, не понимаю зачем нужен топ с локальной историей сегодня.

edo ()
Ответ на: комментарий от edo

А куда приезжало оперативно? Но в общем-то решил, что если это ок для «atop», который много раз выручал, то и тут применил аналогично.

Какого-то демона с постоянной активностью - очень не хотелось, тут всё же для чего-то лёгкого, ну и счётчики cpu, например, никуда не исчезают в промежутках интервалов

inv2004 ()
Последнее исправление: inv2004 (всего исправлений: 1)
Ответ на: комментарий от inv2004

С историческими данными исторически используется sysstat. У RH есть ещё PCP.

Но я так понимаю, тебе нужны были какие-то метрики, которых нет у этих двух?

Aceler ★★★★★ ()

zztop когда зарелизят?

Fafhrd ()
Ответ на: комментарий от Aceler

sysstat

думаю sysstat и sar полнее конечно в плане метрик. Но менее дружелюбные. Это скорее замена atop, который выручал много раз

inv2004 ()
Ответ на: комментарий от cocucka

Ты ламер, это аналог не htop, а atop. Прометеус зачем-то приплел..

По теме - непонятен выбор ЯП, если хочется подучится бери что-то более прикольнее чем отстойный Nim. Ну и если не оглядываться на atop, то можно вывод сделать более удобным (в atop он жутко неудобный).

Clayman ★★ ()
Последнее исправление: Clayman (всего исправлений: 1)

или yay -S ttop для arch;


==> Запускается build()...
  Verifying dependencies for ttop@0.3.5
    Prompt: No local packages.json found, download it from internet? [y/N]
r0mik ()
Ответ на: комментарий от xwicked

А оправдано такое количество клонов top?

Дело в том что по сути одного нормального ТОПа то и нет. Нужно iotop юзать то iftop то virt-top и т.д. а чтобы в одной утилите все поглядеть …

mx__ ★★★★★ ()

Что-то не сросрось.

root@radionet-nas:~# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.5 LTS
Release:	20.04
Codename:	focal

root@radionet-nas:~# ttop --on
systemctl check 'ttop.timer' 
inactive

systemctl --user daemon-reload 
Failed to connect to bus: No such file or directory

systemctl --user start 'ttop.timer' 
Failed to connect to bus: No such file or directory

loginctl enable-linger 
root@radionet-nas:~# ps xa|grep dbus
    622 ?        Ss     0:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
    643 ?        Ssl    0:00 /usr/sbin/thermald --systemd --dbus-enable --adaptive
root@radionet-nas:~# systemctl|grep timer
  timers.target                                                                                                    loaded active active    Timers                                                                                     
  apt-daily-upgrade.timer                                                                                          loaded active waiting   Daily apt upgrade and clean activities                                                     
  apt-daily.timer                                                                                                  loaded active waiting   Daily apt download activities                                                              
  e2scrub_all.timer                                                                                                loaded active waiting   Periodic ext4 Online Metadata Check for All Filesystems                                    
  exim4-base.timer                                                                                                 loaded active waiting   Daily exim4-base housekeeping                                                              
  fstrim.timer                                                                                                     loaded active waiting   Discard unused blocks once a week                                                          
  fwupd-refresh.timer                                                                                              loaded active waiting   Refresh fwupd metadata regularly                                                           
  logrotate.timer                                                                                                  loaded active waiting   Daily rotation of log files                                                                
  man-db.timer                                                                                                     loaded active waiting   Daily man-db regeneration                                                                  
  motd-news.timer                                                                                                  loaded active waiting   Message of the Day                                                                         
  phpsessionclean.timer                                                                                            loaded active waiting   Clean PHP session files every 30 mins                                                      
  systemd-tmpfiles-clean.timer                                                                                     loaded active waiting   Daily Cleanup of Temporary Directories                                                     
  ua-timer.timer                                                                                                   loaded active waiting   Ubuntu Advantage Timer for running repeated jobs
hbars ★★★★★ ()
Ответ на: комментарий от inv2004

просто в планах было в телегу что-то кидать при больших значениях

Отлично. Суть в том чтобы один бинарь собирал по таймерам/крону данные, другой ходил в сеть на API Телеграма.

Gentooshnik ★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.