Руководство пользователя к инструменту визуального анализа трассы системных событий.
Приложение TraceKev является вспомогательным инструментом, предназначенным для использования в процессе исследования и анализа трасс системных событий. Поддерживаются файлы трасс (*.kev
), полученные с систем под управлением ЗОСРВ "Нейтрино" той же редакции, что и Комплект разработчика, в состав которого входит исполняемый файл приложения ($KPDA_HOST/usr/bin/tracekev
). Открытие файлов трасс, сформированных в ЗОСРВ "Нейтрино" других редакций, не гарантируется.
TraceKev позволяет:
Перечень функций, планируемых к реализации:
При работе программ, драйверов устройств и других компонентов системы могут возникать ошибки, которые бывает сложно отследить стандартными средствами диагностики (например, с помощью отладчика, журнальных файлов (log) и т.д.). В таких случаях может помочь инструмент для визуального анализа системных трасс, т.к. с помощью трассировки можно зафиксировать процесс выполнения исследуемого приложения и его взаимодействие с другими компонентами системы (процессами, оборудованием).
Инструмент TraceKev предназначен для помощи в решении следующих задач:
TraceKev может быть запущен из командной строки (терминала) с помощью команды:
tracekev
![]() | Так как инструмент имеет графический интерфейс, для его функционирования необходимо полноценное графическое окружение рабочего стола (KDE, GNOME, Xfce и т.п.). |
При необходимости при запуске можно указать дополнительные параметры запуска.
Инструмент TraceKev предназначен для анализа системных трасс, предварительно собранных на узлах, работающих под управлением ЗОСРВ «Нейтрино». Сбор трасс осуществляется с использованием утилиты tracelogger.
После сбора трассы системных событий (файл с расширением *.kev) её необходимо скопировать на инструментальную машину, после чего создать новый проект.
Перед началом работы с инструментом необходимо собрать трассу событий с целевой системы под управлением ЗОСРВ "Нейтрино".
Сбор трассы событий
Для того чтобы собрать трассу событий, необходимо:
После открытия TraceKev у Вас есть возможность создать новый проект или открыть уже созданный. Все это можно сделать в приветственном окне программы.
Создание проекта
Более подробная информация о создании проектов содержится в разделе Создание нового проекта.
Открытие проекта
После открытия проекта и загрузки файла системной трассы Вы можете начать изучение и использование инструментов анализа, доступных в программе. Интерфейс программы разделен на несколько ключевых зон, каждая из которых предназначена для решения определенных задач.
Таблица событий (в нижней части окна)
Таблица событий — один из основных инструментов, используемых в процессе анализа системных трасс. Она отображает список всех зарегистрированных событий с подробной информацией о каждом из них.
Панель инструментов (в левой части окна)
Панель инструментов представлена в виде древовидного списка и предоставляет доступ к различным инструментам и настройкам программы:
Рабочая область (основная часть окна)
Рабочая область предназначена для отображения всех открытых инструментов; каждый инструмент представлен в виде отдельной вкладки.
Таймлайн (Timeline)
По умолчанию в рабочей области открывается инструмент "Таймлайн" ("Timeline"). Это один из основных инструментов программы, предназначенный для визуального анализа системных трасс.
Основные возможности инструмента Таймлайн:
Эти инструменты позволяют анализировать системные трассы, выявлять узкие места и аномалии в работе процессов, что значительно упрощает диагностику и устранение проблем.
После запуска TraceKev программа открывает экран приветствия. В этом окне Вы можете ознакомиться с ранее отрываемыми проектами. По умолчанию проекты сортируются по дате последней работы с проектом; также существует возможность отсортировать проекты по их названию. Вы можете начать вводить текст, чтобы найти проект, дважды нажать мышью, чтобы открыть его, или удалить любой проект из списка с помощью кнопки в виде крестика напротив названия проекта.
Также можно создать новый проект, нажав на кнопку Новый проект... (New project...) или открыть уже существующий проект, нажав на кнопку Открыть проект... (Open project...).
Для получений сведений о версии программы и ее ревизии нажмите на кнопку О программе... (About...). Информация из открывшегося диалогового окна может быть использована при обращении в техническую поддержку.
После создания нового проекта или открытия уже существующего программа открывает Основной экран.
Слева располагается Панель инструментов (Project Tree) , открыть/скрыть которую можно нажатием левой кнопки мыши на иконку
Снизу располагается Таблица событий (Event Log), открыть/скрыть которую можно нажатием левой кнопки мыши на иконку
Два данных элемента можно переносить на любую из четырех сторон основного экрана, а также выносить в отдельные окна ("отцеплять" от основного окна).
Панель инструментов (Project Tree) содержит в себе дерево инструментов для анализа системных трасс:
Открытие вкладки с соответствующим инструментом производится двойным нажатием левой кнопки мыши по элементу дерева в Панели инструментов.
Сверху располагается Панель меню для взаимодействия с проектом.
Меню Файл (File) содержит в себе следующие элементы:
Меню Инструменты (Tools) содержит в себе следующие элементы:
Меню Помощь содержит в себе следующие элементы:
В правом нижнем углу Основного окна располагается элемент выбора формата отображения времени.
Отображение времени в формате Абсолютное (Absolute).
Отображение времени в формате Циклы (Cycles).
Отображение времени в формате Относительное (Relative).
При выборе области на Таймлайне появляются значения временных меток начала и конца выделенной области, а также разница между ними (размер выделенного фрагмента) в выбранном формате.
Создать новый проект можно как в приветственном окне, так и в уже открытом проекте на основном экране.
После каждого запуска приложения отображается приветственное окно.
Для создания нового проекта нажмите на кнопку Новый проект... (New project...) в правом верхнем углу. После этого откроется диалоговое окно, и Вы можете перейти к шагу Расположение проекта.
Если Вы работаете в уже существующем проекте, создайте новый проект следующим образом: откройте меню Файл (File) | Новый проект... (New project...). После этого откроется диалоговое окно, и Вы можете перейти к следующему Расположение проекта.
В открывшемся диалоговом окне заполните следующие поля:
Под полем отображается путь к каталогу, где будет создан проект. Если указанное имя проекта совпадает с уже существующим каталогом, Вы получите сообщение об ошибке.
Если выбран неверный файл, будет выведено сообщение об ошибке.
Справа от полей находится кнопка для открытия диалогового окна выбора каталога или файла
По умолчанию, при выборе файла трассы, тип указан как "Файлы трассы (*.kev) (Kev files (*.kev))". Если у вашего файла другое расширение, измените тип отображаемых файлов на "Все (*.*) (All (*.*))".
После заполнения всех полей и при отсутствии ошибок нажмите кнопку Далее (Next).
При создании нового проекта можно импортировать настройки из существующего проекта. Для этого заполните поле Расположение проекта для импорта (Import Project Location), указав путь к уже созданному проекту.
Импортируются следующие настройки:
Если Вы не хотите импортировать настройки, оставьте поле Расположение проекта для импорта (Import Project Location) пустым.
После этого нажмите кнопку Создать (Create). При отсутствии ошибок в процессе создания проекта откроется основной экран приложения.
Приветственное окно содержит список последних открытых проектов. Для открытия проекта дважды нажмите на элемент с требуемым проектом в списке.
Если Вы физически удалите, переименуете или переместите каталог с проектом на файловой системе, то соотвествующая запись будет удалена из списка. Также Вы можете самостоятельно удалить проект из списка недавних проектов, нажав на кнопку
Открытие каталога проекта
Если у Вас уже есть ранее созданный проект, но он не отображается в списке недавних проектов, то Вы можете открыть каталог с проектом.
Более подробную информацию об экране приветствия см. в разделе Экран приветствия.
Открытие недавних проектов
Проекты, с которыми Вы работали недавно, отображаются меню приложения Файл (File) | Недавние проекты (Recent Projects). Проект с которым Вы работаете в данный момент помечается в списке звёздочкой ("*").
Открытие каталога проекта
Если у Вас уже есть ранее созданный проект, но он не отображается в списке недавних проектов, то Вы можете открыть каталог с проектом.
Более подробную информацию об основном экране см. в разделе Основной экран.
Открытие проекта
После выбора требуемого проекта появится диалоговое окно для уточнения режима открытия проекта:
После открытия проекта, у Вас откроется проект в основном окне приложения со всеми последними открытыми инструментами.
Если файл трассы достаточно большой, может появиться всплывающее окно с информацией о загрузке данных.
Подробную информацию о работе с большими файлами см. в разделе Открытие больших файлов.
Если Вам нужно закрыть только один проект, Вы можете либо закрыть окно проекта, либо выбрать Файл (File) | Закрыть проект (Close Project) в главном меню.
Если Вы работаете с несколькими проектами, выполните следующие действия, чтобы закрыть сразу несколько проектов:
Загрузка и начальная обработка файлов трасс может занимать продолжительное время (до нескольких минут - в зависимости от размера файлов, их содержимого и характеристик инструментальной системы). В процессе загрузки будет отображаться Окно загрузки с информацией о состоянии процесса загрузки.
В некоторых случаях ресурсов инструментальной системы может оказаться недостаточно для обработки файла трассы целиком (т.е. трасса не сможет быть полностью загружена в оперативную память). В таком случае она может быть разбита на несколько т.н. страниц. При этом в нижней части основного экрана появится соответствующий элемент - Список страниц.
Для перемещения между страницами нажимайте на стрелочки Вперед
и Назад
Также имеется возможность при необходимости самостоятельно ввести номер страницы.
Важно помнить, что при работе с фильтрами или поиском в таблице событий будут отображаться только события, которые соответствуют текущей странице. Соответственно, в некоторых случаях придется перемещаться между страницами (т.е. переключать активную страницу в нижнем правом углу экрана). Аналогично, в инструменте Таймлайн отображается не весь временной диапазон, а только тот, который соответствует текущей странице.
При сборе трассы с помощью tracelogger в заголовок файла трассы включается cистемная информация, которая может быть полезна при анализе трассы.
Общая информация
Параметр | Значение |
---|---|
Date | Время сбора трассы |
Boot Date | Время запуска системы |
Cycles Per Second | Количество тактов процессора в секунду (частота процессора) |
Cpu Count | Количество доступных процессоров (ядер) |
System Name | Название операционной системы |
Node Name | Имя узла (обычно это hostname) |
System Release | Версия выпуска операционной системы |
System Version | Версия системы, включая дату и время сборки |
Machine | Архитектура процессора |
Некоторые файлы трассы могут содержать системную страницу; в этом случае она также будет включена в заголовок файла трассы.
Таймлайн (Timeline) — ключевой инструмент для анализа системных трасс. Он позволяет отслеживать состояние каждого процесса, потока или прерывания (далее "процесс"), зафиксированное в процессе сбора трассы.
Элементы управления
Увеличить выделенный фрагмент (Zoom to Selection): Приближает таймлайн к выделенному фрагменту. Активируется при наличии выделенного фрагмента на таймлайне.
Приблизить (Zoom ): Позволяет приблизить отображение.
Отдалить (Zoom Out): Отдаляет отображение.
Отдалить максимально (Zoom to Fit): Показывает весь таймлайн.
Легенда (Legend): Показывает или скрывает легенду цветов таймлайна.
Выделение и синхронизация
Управление клавиатурой
Легенда
Для отображения цветов и их значений используйте Легенду (Legend) (Ctrl+L).
Всплывающие подсказки
Таблица событий отображает все зарегистрированные системные события, зафиксированные на момент сбора трассы.
Столбец | Описание |
---|---|
Временная метка (Timestamp) | Время, когда произошло событие, в выбранном формате отображения |
CPU_ID | Идентификатор процессора, на котором произошло событие |
Источник события (Owner) | Процесс, поток или прерывание, в рамках которого зафиксировано событие |
Тип (Type) | Тип события |
Параметры (Params) | Данные, связанные с событием |
Синхронизация с таймлайном
Таблица событий синхронизирована с Таймлайном. При выделении событий в таблице автоматически выделяется соответствующий временной отрезок на таймлайне. В статус-баре отображается текущий выбранный временной диапазон.
Копирование данных
Для копирования данных из таблицы:
![]() | Время из столбца Временная метка (Timestamp) всегда копируется в формате циклов. Это может быть полезно при работе с Фильтром событий (Event Filter) или Поиском событий (Event Search). |
Этот язык предназначен для описания выражений, включающих числа, строки, булевы значения, переменные, арифметические, логические и сравнительные операции. Ниже подробно описаны правила использования синтаксиса.
Лексика
Типы токенов
123
, 42
, 0
.
"hello"
, "world"
, "123"
.
true
, false
.
timestamp
, event_type
.
Символы
(
: Открывающая скобка. Используется для группировки выражений. )
: Закрывающая скобка. Закрывает группу выражений. Операторы
Арифметические операторы используются для выполнения базовых математических операций. Работает только с числами.
Оператор | Описание | Пример | Результат |
---|---|---|---|
+ | Сложение | 1 + 2 | 3 |
- | Вычитание | 5 - 3 | 2 |
* | Умножение | 4 * 2 | 8 |
/ | Деление | 8 / 2 | 4 |
Операторы сравнения используются для проверки отношений между двумя значениями.
Оператор | Описание | Пример | Результат |
---|---|---|---|
< | Меньше | 2 < 3 | true |
<= | Меньше или равно | 2 <= 2 | true |
> | Больше | 5 > 1 | true |
>= | Больше или равн | 5 >= 5 | true |
== | Равно | 10 == 10 , "foo" == "foo" | true |
!= | Не равно | 10 != 5 , "foo" != "bar" | true |
in | Проверка подстроки | "lo" in "hello" | true |
![]() | Ограничение: Оператор in работает только со строками. |
Логические операторы используются для комбинирования булевых значений.
Оператор | Описание | Пример | Результат |
---|---|---|---|
&& | Логическое И | true && false | true |
|| | Логическое ИЛИ | true || false | true |
! | Логическое НЕ | !true | true |
Правила синтаксиса
Выражение может содержать числа, строки, булевы значения, переменные, а также операции. Скобки используются для управления порядком вычислений.
(1 + 2) * 3
"hello" in "hello world"
Арифметические выражения
Поддерживаются операции сложения, вычитания, умножения и деления.
5 + 2 * 3
11
(сначала умножение, затем сложение). Сравнительные выражения
Используются для проверки отношений между значениями.
x > 10 && x < 20
true
, если x
находится в диапазоне от 10
до 20
. Логические выражения
Позволяют комбинировать несколько булевых выражений с использованием логических операторов.
true && (false || !false)
true
. Строковые выражения
Используются для работы с текстом. Оператор in
проверяет наличие подстроки в строке.
"cat" in "concatenate"
true
. Переменные
Переменные могут использоваться для хранения и сравнения значений. В нашем случае будут использоваться переменные из системных событий. В поиске или фильтре Вы можете использовать только:
myVar == 42
Примеры выражений
(10 + 5) * 2
Результат: 30
.
true || false && !true
Результат: true
.
x >= 5 && x <= 10
Результат: true
(если x
находится между 5
и 10
).
"hello" in "hello world"
Результат: true
.
Инструмент Поиск событий (Event Search) выполняет поиск событий и включает следующие элементы взаимодействия:
Выражение для поиска можно ввести вручную, следуя правилам синтаксиса выражений.
Типы фильтров поиска
Существует три типа фильтров поиска:
Добавление фильтров поиска
Для добавления фильтра поиска нажмите кнопку Добавить (Add), после чего откроется окно добавления фильтра. В этом окне необходимо выбрать тип фильтра.
Добавление поиска по timestamp
Если выбран тип timestamp, укажите левую и (опционально) правую границы временной метки события.
Вы можете переключить формат отображения времени. Это не влияет на вводимые значения. Подробнее о форматах времени читайте здесь.
Добавление поиска по cpu_id
Если выбран тип cpu_id, укажите номер процессора, на котором произошло событие.
Добавление поиска по event_type
Если выбран тип event_type, укажите тип события.
thread
, чтобы найти события, содержащие это слово в названии, такие как thread_create
, thread_running
и др. Редактирование фильтров поиска
Для изменения фильтров поиска выполните одно из следующих действий:
Откроется окно редактирования, где Вы можете:
Выключение или включение всех фильтров так же доступно и через флажки (Checkbox) в столбце Включён (Enabled).
Удаление фильтров поиска
Для удаления фильтра выберите его в Списке фильтров поиска и нажмите кнопку Удалить (Remove).
Генерация выражения поиска
После добавления фильтров поиска необходимо сгенерировать выражение.
Выражение можно отредактировать вручную, соблюдая правила синтаксиса выражений.
Пустое поле означает, что фильтру соответствует любое событие.
Некорректное выражение выделяется красным, а в статус-баре отображается сообщение об ошибке. Проверьте соответствие выражения правилам синтаксиса.
Поиск по выражению
Для выполнения поиска используйте кнопки Найти предыдущее (Search prev) и Найти следующее (Search next). В Таблице событий (Event Log) будет выделено событие, соответствующее выражению.
Если ни одно событие не соответствует выражению, в статус-баре появится уведомление. Если поиск достигнет последнего события, он начнётся с начала.
Инструмент Фильтр событий (Frame Filter) выполняет фильтрацию событий и включает следующие элементы взаимодействия:
Выражение для фильтрации можно ввести вручную, следуя правилам синтаксиса выражений.
Типы фильтров
Существует три типа фильтров:
Добавление фильтров
Для добавления фильтра нажмите кнопку Добавить (Add), после чего откроется окно добавления фильтра. В этом окне необходимо выбрать тип фильтра.
Добавление фильтра по timestamp
Если выбран тип timestamp, укажите левую и (опционально) правую границы временной метки события.
Вы можете переключить формат отображения времени. Это не влияет на вводимые значения. Подробнее о форматах времени читайте здесь.
Добавление фильтра по cpu_id
Если выбран тип cpu_id, укажите номер процессора, на котором произошло событие.
Добавление фильтра по event_type
Если выбран тип event_type, укажите тип события.
thread
, чтобы отфильтровать события, содержащие это слово в названии, такие как thread_create
, thread_running
и др. Редактирование фильтров
Для изменения фильтров выполните одно из следующих действий:
Откроется окно редактирования, где Вы можете:
Выключение или включение всех фильтров так же доступно и через флажки (Checkbox) в столбце Включён (Enabled).
Удаление фильтров
Для удаления фильтра выберите его в Списке фильтров и нажмите кнопку Удалить (Remove).
Генерация выражения
После добавления фильтров можно сгенерировать выражение.
Выражение можно отредактировать вручную, соблюдая правила синтаксиса выражений.
Пустое поле означает, что фильтру соответствует любое событие.
Некорректное выражение выделяется красным, а в статус-баре отображается сообщение об ошибке. Проверьте соответствие выражения правилам синтаксиса.
Фильтрация по выражению
Для выполнения фильтрации используйте кнопку Применить (Apply). Таблица событий (Event Log) будет отфильтрована, в соответствие с выражением.
Чтобы снова показать все события, нажмите кнопку Очистить (Clear) и примените фильтр снова, нажав кнопку Применить (Apply).
Фильтр источников (Owner Filter) — это инструмент, который позволяет фильтровать события по их источникам (процессы, потоки, прерывания). Он включает следующие элементы управления:
Дерево источников
Дерево источников представляет собой перечень всех процессов, потоков и прерываний, зафиксированных в системной трассе.
Каждый источник сопровождается флажком (Checkbox), который позволяет включать или исключать его из фильтрации. Если флажок активен, соответствующий источник будет добавлен в фильтр. События, относящиеся к этому источнику, отобразятся в Таблице событий (Event Log) и на Таймлайне (Timeline).
Применение фильтра
После настройки фильтрации нажмите кнопку Применить (Apply), чтобы обновить отображение событий в соответствии с выбранными источниками.
Основной экран
Ctrl+P Открытие Панели инструментов
Ctrl+E Открытие Таблицы событий
Таймлайн
Ctrl+Down Увеличить выделенный на таймлайне фрагмент. Если выделенный фрагмент отсутствует, данный элемент управления становится неактивным.
Ctrl++ Увеличить масштаб отображения.
Ctrl+- Уменьшить масштаб отображения.
Ctrl+Up Максимально уменьшить масштаб отображения.
Ctrl+L Включить/выключить отображение легенды.
Изменить настройки приложения можно как в приветственном окне, так и в уже открытом проекте на основном экране.
Для перехода в настройки нажмите на кнопку
в правом верхнем углу, после чего откроется окно настроек.
Если Вы работаете в проекте, Вы можете открыть окно настроек в меню приложения Инструменты (Tools) | Настройки... (Settings...), после чего откроется окно настроек.
В открывшемся окне Вы можете изменить следующие настройки:
Язык (Language)
На данный момент поддерживается русский и английский языки.
После изменения языка нажмите кнопку и применения настроек, Вам потребуется перезагрузить приложение, чтобы изменения вступили в силу. Об этом будет сказано в открывшемся диалоговом окне.
Цветовая тема приложения (Theme)
Если Вам нужна другая цветовая тема, Вы можете ее изменить.
Другие настройки
Настройка "Скрыть имя родительского процесса (Hide parent process name)" убирает имя родительского процесса в именах процессов. Например, имя процесса bin/sh->./server
станет ./server
. Так же и в Таблице событий (Event Log) в столбце "Источник события (Owner)" строка bin/sh->./server->Thread 1
станет ./server->Thread 1
.
Настройка "Скрыть путь к исполняемому файлу (Hide path to executable)" скрывает полный путь к исполняемому файлу, оставляя только его имя. Например, значение bin/sh->./server
будет отображаться как sh->server
. Также будут затронуты поля в Таблице событий (Event Log) в столбце "Источник события (Owner)".
При запуске TraceKev можно передать опциональные аргументы:
Опции | Описание |
---|---|
-h, –help | показать справку и выйти из программы. Покажет все возможные опции, которые можно указать при запуске программы. |
-v, –version | показать версию программы и выйти из программы. Может быть полезно при обращении в поддержку. |
–profile-path <аргумент> | указать каталог настроек и логов приложения. По умолчанию используется <домашний_каталог_пользователя>/.tracekev . |
–logging <on/off> | включить/выключить логирование в файл. По умолчанию включено и располагается в <домашний_каталог_пользователя>/.tracekev/logs/*.log . |
–output <on/off> | включить/выключить логирование в поток вывода. По умолчанию выключено. |
–save-days <количество> | Установить количество дней, в течение файл логирования будет храниться в ката (значение по умолчанию - 30 дней). |
Если опция предполагает обязательный аргумент, то его можно указать через пробел или символ '='.
Примеры:
Вывод справки:
tracekev -h
Вывод версии и ревизии:
tracekev --version
Задание количества дней хранения логов:
tracekev --save-days=50
Включение логирования в поток вывода и выключение логирования в файл:
tracekev --logging off --output=on
В случае возникновения неполадок в процессе работы инструмента TraceKev (неработоспособность или некорректное поведение заявленных функций, «падение» главного процесса и т.д.), а также по другим вопросам, связанным с TraceKev (включая пожелания, предложения, запросы на реализацию дополнительных функций), Вы можете обращаться по адресу технической поддержки.
При обращении необходимо указать:
devkit_id.txt
из каталога установки КР);
Предыдущий раздел: TraceKev - инструмент просмотра и анализа системных событий