Как стать автором
Обновить

Вышел Chipmunk.v3

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.6K

Вышла новая версия программы для просмотра и анализа логов — Chipmunk v.3. Инструмент был полностью переработан с упором на производительность и переосмыслен с акцентом на простоту и удобство использования. Под капотом краткое описание нововведений и возможностей.


С момента последнего changelog на хабре прошло без малого два с половиной года. Справедливости ради, Chipmunk v.3 вышла ещё в сентябре 2022, но задержалась в альфе на год, дабы отполироваться и прийти к той производительности, которую мы хотели видеть, а не ту, что считали «приемлемой».

Наша наиболее широко представленная группа пользователей — это разработчики из мира embedded и особенно automotive, где приходится иметь дело с весьма специфичными форматами данных и, как правило, их огромным объёмом. Скажем какой-нибудь DLT (Diagnostic Log and Trace) файл размером под 10 Гб — дело в индустрии обычное и нужен инструмент, позволяющий быстро открыть и быстро анализировать.

Меж тем, я уверен, chipmunk будет весьма полезным средством и в повседневных нуждах по ряду тривиальных причин:

  • без труда читает файлы любых размеров. 1 Гб, 5Гб, да хоть 20.

  • быстро ищет по файлу как регулярки, так и простые совпадения.

  • запоминает условия поисков и связывает их не только с конкретным файлом, но и со схожими форматами.

  • умеет строить графики по регулярным выражениями и быстро по ним «бегать» без оглядки на объём данных.

  • работает с консолью/терминалом, знает что такое serialport, TCP, UPD.

  • умеет соединять данные из многих источников в одну сессию.

И это, конечно, лишь малая часть того, что делает chipmunk. Решительно не хочется вас утомлять длинным списком базовых функций и того, что появилось в v.3. Поэтому я пробегу по наиболее ярким, или, если хотите, заметным нововведениям.

Под капотом все изменилось радикально

Если в chipmunk v.2 мы лишь «примерялись» к возможностям rust и использовали его для написания небольшого модуля по работе с самыми «дорогими» задачами, то в версии нового поколения ядро полностью написано с нуля на rust. Ни electron, в который «оборачивается» ядро, ни уж тем более клиент — не отвечают больше за обработку/хранение данных — всё крутится на rust’e.

Фактически это означает, что ядро отделимо и к нему можно прикрутить по сути любой front-end — не electron’ом единым в конце концов.

Домашний экран

Теперь есть домашний экран, на котором вы получаете быстрый доступ к ранее созданным сессиям, можете настроить быстрое меню под свои нужды (буквально в один клик), а так же добавить места для быстрой навигации.

Сессия в chipmunk — это не только открытие файла, а это и консольная команда, и подключение по сети, и подключение к порту — это вообще любое ваше действие. И всё это chipmunk запоминает и отображает вам на домашнем экране или же в выпадающем списке на Ctrl/Command + P.

Кроме этого если вы храните логи в нескольких папках, вы можете добавить их в favorites places и иметь доступ к файлам также через домашний экран.

Графики

За счёт того, что все расчёты и применение «ужимающих» данные алгоритмов производятся в ядре (на территории rust), а клиент получает лишь необходимые порции данных, chipmunk стал значительно менее чувствителен к объёму данных на графиках. Конечно, gif анимация с 10 fps не может передать плавности работы рендера, поэтому настоятельно советую попробовать самостоятельно.

Как создать график?

Если вы создали условие поиска, то на графике вы увидите частоту совпадений в виде столбиков.

Для создания графика по значениям, вам нужно ввести регулярное выражение с группой (то есть обозначить искомые данные скобками), которая будет браться в качестве значения. Например, у вас в логах встречается запись вроде CPU=43,89%. Используя регулярное выражение CPU=(\d{1,},\d{1,}), вы сумеете построить график изменения CPU.

Крошки

Chipmunk v.3 обзавёлся новым режимом поиска/анализа — breadcrumbs (хлебные крошки). Суть до безобразия проста, но функция весьма полезна — chipmunk совмещает результаты поиска и основой контент файла/стрима. Таким образом вы легко можете видеть: что предшествовало ошибке (или какому-то событию) и что было после.

Совмещение потоков

Появилась возможность совмещать потоки данных в одну сессию. Например, вам ничто не мешает запустить в рамках одной сессии пару консольных команд и видеть скомбинированный вывод (естественно цветами потоки будут разграничены для удобства восприятия источника).

Равным образом вы можете совместить консольную команду и, скажем, вывод из serialport. Единственное ограничение — парсер. Нельзя соединить DLT стрим и текстовый вывод.

И раз уж я упомянул консольные команды, то само собой разумеющееся chipmunk позволять не только получать вывод, но и «бросать» данные в процесс, что справедливо и для других потоков, того же serialport.

Кроме того, мы «подвезли» и менеджер подключения к потоку, где можно изменить и парсер, и источник данных.

Фильтры, графики, пресеты

Радикально обновилось и то, как chipmunk запоминает ваши поиски и графики. Если вы открыли файл с расширением *.log и создали пару фильтров, то при открытии нового файла с таким же расширением вам будет предложены ранее использованные фильтры. Это же касается и терминальных команд и потоков — программа запоминает какие фильтры и графики вы использовали для той или иной команды.

Пожалуй — это самые заметные изменения.

К сожалению некоторыми возможностями нам пришлось пожертвовать в первую очередь из-за ограниченности ресурсов. Так в v.3 не вошли:

  • возможность мерить время между строками

  • функция merge files по временной метке

  • комментирование логов

Возвращение данных функций вопрос времени, а то насколько это время будет коротким во многом зависит и от вашей обратной связи. Напомню, что проект до последнего байта open source. Поэтому я призываю вас заглянуть на страницу github и поставить звёздочку. Два года назад вы оставили нам ~200 звёзд и появился chipmunk v.3, благодаря вашей поддержке.

Поверьте, я ничуть не принижаю степени влияния этого банального действия.

Спасибо за ваше внимание и с радостью отвечу на вопросы в комментах, если таковые появятся.

Удачи, света, тепла и логов без сообщений об ошибках!

Теги:
Хабы:
Всего голосов 9: ↑8 и ↓1+8
Комментарии10

Публикации

Истории

Работа

Rust разработчик
8 вакансий

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн