2017-02-14 11 views
2

Я занимаюсь разработкой инструмента для визуализации журналов Java. В частности, эти журналы генерируются путем печати на консоль всякий раз, когда вызывается метод и всякий раз, когда он возвращается. Эти операторы журналов вводятся во весь исходный код ОС Android, используя обработку байт-кода. До сих пор мы смогли измерить ОС Android и генерировать эти операторы журнала. Поля, содержащиеся в этих операторах журнала, это: процесс, вызывающий метод, подпись метода, типы аргументов, тип возврата и отметка времени.

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

Мои вопросы,

  1. Что бы эффективный способ визуализации и навигации эти иерархические заявления журнала в огромном файле журнала, чтобы получить хороший обзор на высоком уровне? Диаграммы последовательности полезны для детального просмотра, но не подходят для огромной трассировки вызовов.
  2. Есть ли на рынке существующие инструменты, имеющие аналогичную функциональность? Я просмотрел инструменты визуализации журнала, но ни одна из них не содержит визуализацию на высоком уровне.
  3. Как разработчик приложения, оснащенный инструментальной виртуальной машиной, которая генерирует оператор журнала для каждого вызываемого метода и кто может запускать приложение на указанной виртуальной машине Android, какая информация вам полезна?
  4. Любые другие предложения?


Заранее спасибо.

Редактировать: Я добавил несколько дополнительных сведений об иерархическом характере операторов журнала.

ответ

0

Я считаю, что диаграмма, наиболее близкая к тому, что вы описываете, представляет собой диаграмму последовательности. Раньше был плагин для eclipse, который будет отслеживать ваш исходный код и создавать диаграмму последовательности всех вызовов/возврата/выбора времени и т. Д.

Вот описание того, как работают схемы и как создать их вручную:

http://agilemodeling.com/artifacts/sequenceDiagram.htm

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

Просто с быстрым запроса - это в затмение рынке:

https://marketplace.eclipse.org/content/objectaid-uml-explorer#group-metrics-tab

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

+0

Спасибо за информацию. Как я уже упоминал, диаграмма последовательности - отличный способ взглянуть на поток на детальном уровне, и я бы использовал что-то очень похожее в подробном представлении моего инструмента. Моя основная проблема заключается в том, что когда трассировка вызовов огромна, навигационная диаграмма последовательности становится очень громоздкой. Я ищу, чтобы найти представления/визуализацию, которые имели бы смысл при просмотре информации на очень высоком уровне. – Omer

+0

@Omer Извините, я не должен был читать, что вы знали о диаграммах последовательности. Тот, с которым я работал (чрезвычайно большой сгенерированный), требовал некоторого внимания, чтобы удалить повторяющиеся детали в подграфу; автоматизация этого может сделать его управляемым. Возможно, вы сможете «увеличить» диаграмму последовательности, обращая внимание только на узлы в пределах определенного количества вызовов вниз от интересующего вас узла. Я не могу найти лучшего инструмента для обработки информации, которую вы собираете. –

0

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

Одним из эффективных способов является обработка данных в конвейерах для большой информации о данных, поскольку эти операторы журналов являются журналами сервера с использованием Apache sparks, splunk или Cisco Mars с интеграцией в решениях SIEM для обработки журналов в режиме реального времени является одним из наиболее эффективных способов обработки журнальных файлов сервера.

HPE Security ArcSight Data Platform также может предоставлять высокопроизводительное и экономичное решение, которое объединяет большой сбор данных, отчетность и анализ данных предприятия.

Clock View и PeekKernelFlows используют журнал NetFloW для мониторинга больших IP-адресов в течение длительного времени. Кроме того, инструмент, называемый средством визуализации расширенного журнала ELVIS, может коррелировать процесс журналов сервера и предоставлять сводный обзор представления важных данных.

Я настоятельно рекомендую вам использовать простую структуру журнала ex. FTP или IIS-сервера выбранных полей и визуализировать вывод с использованием модулей D3.js для статической и интерактивной визуализации, в частности, с помощью Parallel Coordinates.

+0

Спасибо за информацию. Параллельные координаты и другие примеры на D3.js кажутся мне несколько важными. – Omer

+0

@ Омер, что было бы действительно полезно, чтобы связать точки и заполнить журналы с помощью механизма корреляции – Hashes