AnyLogic
Развернуть
Размер шрифта

Журнал выполнения модели

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

Запись информации в журнал поддерживается только для простого эксперимента.

Чтобы модель записывала информацию в журнал, нужно включить запись в журнал.

Журнал использования ресурсов resource_pool_utilization_log

Как включить запись данных в журнал

Настраиваем модель для записи информации в журнал

  1. В панели Проекты щелкните по элементу модели  База данных.
  2. В панели Свойства разверните пункт Журнал и установите флажок напротив пункта Записывать в журнал информацию о выполнении модели.

Как просмотреть журнал выполнения модели

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

Как просмотреть журнал

  1. Остановите выполнение модели и закройте окно модели. Возможно, запись информации и обновление дерева модели в панели Проекты займет определенное время.
  2. В панели Проекты разверните ветвь База Данных.
  3. Разверните ветвь Журнал в дереве модели. Вы увидите список журналов в ветви Журнал.

  4. Сделайте двойной щелчок по журналу, чтобы просмотреть его записи. Содержимое журнала будет показано в виде таблицы в редакторе таблиц баз данных. Журналы AnyLogic доступны только в режиме чтения. Вы не можете редактировать данные журнала.

Журнал данных о времени, которое агенты провели в блоках диаграммы процессов flowchart_stats_time_in_state_log

Описание журналов AnyLogic

Имя журнала Описание
agent_messages_log Журнал всех сообщений, отосланных агентами.
agent_movement_log Журнал с информацией обо всех передвижениях агентов в модели. Каждая запись содержит тип агента, его имя, скорость передвижения (в метрах в секунду), время начала и конца движения. Каждая запись соответствует одному перемещению агента, в том случае если оно было инициировано либо блоком MoveTo, либо одной из функций moveTo(). Также в журнал собирается информация о движении поездов, инициированном блоком TrainMoveTo, а также о движении пешеходов. Статистика по движению автомобилей, инициированном блоком CarMoveTo, в текущей версии продукта не собирается.
agent_movement_stats_log Журнал содержит общую статистику движения по каждому передвигавшемуся в модели агенту. Каждая запись содержит тип агента, его имя, общее пройденное расстояние (в метрах), время, за которое было пройдено общее расстояние и средняя скорость (в метрах в секунду). В журнале отображаются данные о движении, если оно было инициировано либо блоком MoveTo, либо одной из функций moveTo(). Также в журнал собирается информация о движении поездов, инициированном блоком TrainMoveTo, а также о движении пешеходов. Статистика по движению автомобилей, инициированном блоком CarMoveTo, в текущей версии продукта не собирается.
agent_parameters_log Содержит начальные значения параметров всех агентов модели.

agent_statechart_states_log Журнал переходов агента в диаграмме состояний. Каждая запись содержит тип агента, его имя, имя диаграммы состояний, состояние агента в определенное время, даты, в которые агент совершает переход в определенное состояние или из него.
agent_statechart_stats_log Журнал содержит статистику переходов агента в диаграмме состояний. Каждая запись содержит тип агента, его имя, имя диаграммы состояний, состояние агента, среднее и общее время (в секундах), проведенное агентом в том или ином состоянии, а также количество переходов в каждое состояние.
agent_type_statechart_states_log Журнал содержит статистику переходов по типу агента в диаграмме состояний. Каждая запись содержит тип агента, его имя, имя диаграммы состояний, состояние агента, а также среднее, общее, минимальное и максимальное время (в секундах), проведенное агентом в том или ином состоянии.
agents_log [для продвинутых пользователей] Таблица содержит времена создания (и опционально времена уничтожения) всех агентов.
datasets_log Данные всех наборов данных и диаграмм собранных во время выполнения модели. Запись данных производится только для набора данных, у которого флажком отмечено Записать в базу данных. Обращаем ваше внимание на ограничение количества последних измерений, которые могут содержать наборы данных и диаграммы (определяется параметром Хранить до ... последних измерений), поэтому, указав ограничение вы можете получить только последнюю часть данных.
events_log Журнал содержит информацию о всех случаях срабатывания событий и динамических событий в модели.
flowchart_entries_log Содержит информацию о времени, когда агенты и ресурсы попадают в блоки диаграммы.
flowchart_process_states_log Статистика показывает время, которое агенты провели в разных состояниях в блоках диаграммы процессов: время ожидания (activity_type: WAIT), время выполнения задачи (activity_type: WORK), и так далее.
flowchart_stats_time_in_state_log Общие данные о времени, которое агенты провели в блоках диаграммы процессов. Внутри блоков агент может быть занят несколькими альтернативными действиями. К примеру, в блоке Service агент может обслуживаться или находиться в состоянии ожидания. В журнале вы увидите записи для каждого типа действия, одна запись для времени ожидания (activity_type: WAIT) и вторая для времени обслуживания (activity_type: WORK). Каждая запись содержит агрегированные данные по всем агентам, которые прошли через блок: минимальное, максимальное, общее время операции в секундах и общее количество обслуженных агентов. Из следующего журнала вы можете увидеть, к примеру, что время задержки блока delayAuditKey фиксированное (180 секунд), среднее время ожидания printBill операции составляет 36,32 секунд, 25 счетов было обработано в блоке fixBillingErrors, и так далее.

fluid_rates_log Журнал содержит информацию о скорости потоков вещества. Таблица содержит записи о типах блоков, их именах, портах, общем объеме вещества, прошедшем через конкретный порт, а также минимум, максимум и среднюю скорость вещества.
fluid_storages_log Журнал содержит информацию о типах блоков, минимальном, максимальном и среднем объеме вещества (в кубических метрах), которое содержал каждый тип блока.
fluid_units_log Журнал содержит информацию о типах блоков, объеме жидкости и единицах измерения скорости, используемых в том или ином типе блока.
fluid_utilization_log Журнал содержит информацию о типах блоков, именах блоков и коэффициенте загруженности блоков.
histograms_log Данные из всех объектов данные гистограммы, собранные во время выполнения модели. Данные записываются только для Данных Гистограммы, которые отмечены флажком Записывать лог в базу данных.

library_block_parameters_log Содержит начальные данные параметров всех блоков диаграммы процессов в модели.
library_blocks_log [для продвинутых пользователей] Таблица содержит записи о времени, когда были созданы блоки диаграммы процессов.
resource_pool_task_stats_log Содержит типы ресурсов блока ResourcePool, имя этого блока, имя выполняемой задачи, среднее и общее время (в секундах), в течение которого выполнялась задача, а также итоговое количество выполненных задач.
resource_pool_utilization_log Содержит информацию о загруженности блока. Каждая запись содержит имя блока, коэффициент его загруженности и количество ресурсов в блоке.
resource_unit_states_log Содержит информацию о состояниях ресурсов.
resource_unit_task_stats_log Журнал содержит данные о задачах ресурсов блока. Таблица содержит записи о типах ресурсов блока ResourcePool, имя этого блока, ID ресурса, имя выполняемой задачи, среднее и общее время (в секундах), в течение которого выполнялась задача, а также итоговое количество выполненных задач.
resource_unit_utilization_log Содержит информацию о загруженности ресурса блока. Таблица содержит записи о типах ресурсов блока ResourcePool, имя этого блока, имя популяции, в которой состоит ресурс, индекс и ID ресурса в этой популяции, а также коэффициент загруженности ресурса.
statechart_transitions_log Содержит информацию о моментах срабатывания переходов диаграммы состояний. Вы можете записывать информацию для отмеченных диаграмм состояний. Чтобы включить запись информации для диаграммы состояний, установите флажок напротив пункта Записывать лог в базу данных в свойствах элемента Начала диаграммы состояний.

statistics_log Данные из всех элементов статистики, собранные во время выполнения модели. Данные записываются только для Статистики, в свойствах которой выбрана опция Записывать лог в базу данных.
trace_log Содержит вывод всего текста, который пользователь получает вызовом функции traceToDB().

Каждый такой журнал требует сбора необработанных данных. В дереве элементов панели Проекты вы можете их увидеть в ветви Необработанные данные, которая находится в ветке элемента базы данных Журнал. Чем больше журналов вам нужно, тем больше соответствующих необработанных данных будет собрано.

Как создать свой собственный журнал

Каждый журнал на самом деле является представлением базы данных AnyLogic. Если вы хотите создать похожий журнал, вы можете создать копию предопределенного журнала AnyLogic и отредактировать его SQL запрос.

Как создать собственный журнал на основе предопределенного журнала

  1. Щелкните по журналу в дереве панели Проекты, чтобы открыть его свойства.

  2. В Свойствах щелкните по ссылке Создать редактируемую копию этого представления.
  3. В панели Проекты вы увидите новый пункт базы данных. Он будет размещен в разделе База данных, а не Журнал (в котором располагаются только предопределенные и не редактируемые представления).

  4. SQL запрос этого представления можно редактировать, поэтому вы можете открыть свойства нового представления и настроить его запрос в поле Задание представления.

Удаление журнала

Журнал находится в папке модели, в подпапке database, которая содержит все данные для встроенной базы данных модели.

В определенных случаях может возникнуть необходимость удаления журнала. К примеру, вы распространяете вашу модель путем копирования папки модели и хотите оптимизировать размер папки. Не стоит удалять файлы через файл-менеджер, потому что вы удалите все данные из базы данных модели. Чтобы удалить только журналы выполнения модели, следуйте инструкции ниже:

Как удалить все журналы выполнения модели

  1. В панели Проекты щелкните правой кнопкой мыши по ветви База данных и выберите из контекстного меню пункт Удалить журналы.

Программное удаление журналов

Вы можете удалить журналы программно во время выполнения модели с помощью функции deleteExistingLogObjects(java.sql.Connection connection).

Эта функция задана в классе базы данных модели ModelDatabase. Она удаляет данные всех журналов выполнения модели (если сбор данных в журналы включен). В качестве аргумента функции нужно передать соединение с базой данных. Ниже приведен пример кода, который удаляет данные из журналов модели. Поскольку функция может выбросить исключение типа java.sql.SQLException, то вам нужно обработать такой случай с помощью операторов try — catch:

try 
{
  getEngine().getModelDatabase().deleteExistingLogObjects(getDatabaseConnection());
}
catch (SQLException e)
{
  error("При удалении данных из журналов выполнения модели произошла ошибка: " + e);
};

Экспорт журнала

При экспорте модели в AnyLogic Cloud или отдельное Java-приложение журналы модели автоматически удаляются.

Как мы можем улучшить эту статью?