Предположим, у меня есть тонна (непрерывный поток) запросов для обработки, и каждый запрос имеет несколько этапов. Например: «подключение к источнику данных», «чтение данных из источника данных», «проверка данных», «обработка данных», «подключение к приемнику данных», «запись результата в приемник данных».
Какие методы визуализации или даже инструменты хорошо подходят для визуализации поведения такой системы?
Я бы хотел видеть, какие этапы занимают много времени, и как этапы разных запросов выровнены относительно друг друга (например, чтобы увидеть, что источник данных реагирует дольше, когда к ним обращается слишком много). много запросов одновременно).
Если бы было всего несколько десятков запросов, я бы согласился с несколькими десятками отдельных цветных шкал времени, но для нескольких тысяч, которые не подходят. Я думаю, что могу обойтись без N цветных временных шкал, где N - это «коэффициент параллелизма», но 1) возможно, есть что-то лучше, 2) возможно, существуют инструменты для этого?
P.S. Бесстыдный плагин: как только я найду лучший способ визуализации, я добавлю его в свой изящный инструмент под названием timeplot ;)
P.P.S. Еще один бесстыдный плагин: я решил написать отдельный инструмент: splot . Вот что он может сделать, основываясь на тривиально простом журнале и на одной строке в awk:
Показывает 160 ядер кластера, выполняющих задачи, переданные им RabbitMQ. Синий - это «выборка данных», оранжевый - «вычисления», белый - «ничего не делать». Из этой диаграммы сразу становятся очевидными некоторые проблемы, которые очень трудно найти, просто взглянув на журналы.