pipeplot — интерактивная визуализация потока данных из pipe в консоли

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
Для тех, кто не хочет покидать консоль, любит её ascii-графику, появилась утилита для отрисовки графиков из pipe. Под катом анимация и примеры.

Пинг




ping ya.ru | grep --line-buffered time | sed -u -e 's#.*time=\([^ ]*\).*#\1#' | pipeplot --min 0

Можно отслеживать коронавирус через covidAPI


while true; \
    do curl -s https://coronavirus-19-api.herokuapp.com/all \
    | jq '.deaths'; \
    sleep 60; \
done \
| pipeplot --color 1 --direction left

потребуется установить jq для разбора json

Пятисотки через графит


while true; \
do \
    curl -s 'http://graphite/render?target=my_app_rps_error&format=json&from=-5min&until=now' \
    | jq -c '.[0].datapoints[-1]'; \
    sleep 5; \
done \
| sed -u s/null/0/ \
| stdbuf -oL uniq \
| stdbuf -oL jq '.[0]' \
| pipeplot

Буферизация


Многие консольные утилиты буферизируют stdout. Из-за этого последовательный pipe ломается. Некоторые утилиты поддерживают настройку буферизации: sed -u, grep --line-buffered. В другом случае можно использовать универсальный способ stdbuf -oL и unbuffer.

Доступные опции


--color COLOR — цвет колонок, число из палитры Xterm
--symbol SYMBOL — символ для отображения колонок, поддерживает котиков
--scale {all,window} — настройка автоматического масштабирования минимума и максимума, all — учитывает все данные, window — только видимые
--direction {left,right} — направление
--min MIN --max MAX — фиксирует минимум и максимум, сочетается с автоматическим масштабированием

Установка


pip install pipeplot

P.S.: Добро пожаловать на github проекта ^-^. Пишите в ПРы, или комменты, свои примеры. Самые интересные добавлю в readme!
Источник: https://habr.com/ru/post/495416/


Интересные статьи

Интересные статьи

По мере появления все более быстрых и совершенных носителей информации меняются и способы сохранения на них байта данных. Байт — это единица цифровой информации, состоящая из восьми б...
TabNet – новая высокопроизводительная каноническая архитектура глубокого обучения на основе табличных данных. TabNet использует последовательные оценки выбора функций, ко...
Казалось бы, валидация данных — это одна из базовых задач в программировании, которая встретится и в начале изучения языка вместе с "Hello world!", и в том или ином виде будет...
Инфекционные заболевания распространялись по планете вместе с людьми. Даже в современную эпоху вспышки происходят практически постоянно, хотя не каждая вспышка достигает пандемического уровня...
Хочу показать вам как с помощью нынче популярного приложения yEd, которое предназначено для построения различных диаграмм и схем, можно сделать полноценную(со всеми обозначениями) схему базы данн...