AnyLogic автоматически записывает всю основную статистику выполнения модели в журнал выполнения модели. Пока модель запущена, вся информация об агентах, их параметрах, движении, событиях, сообщениях, диаграммах состояний и процессов, использовании процессов, и т.д. записывается в журнал исполнения модели. Описание всех стандартных журналов здесь.
Чтобы модель записывала информацию в журнал, нужно включить запись в журнал.
Настраиваем модель для записи информации в журнал
- В панели Проекты щелкните по элементу модели База данных.
- В панели Свойства разверните пункт Журнал и установите флажок напротив пункта Записывать в журнал информацию о выполнении модели.
AnyLogic позволяет пользователю просматривать журналы в виде обычной таблицы, используя встроенный редактор таблиц базы данных.
Как просмотреть журнал
- Остановите выполнение модели и закройте окно модели. Возможно, запись информации и обновление дерева модели в панели Проекты займет определенное время.
- В панели Проекты разверните ветвь База Данных.
- Разверните ветвь Журнал в дереве модели. Вы увидите список журналов в ветви Журнал.
- Сделайте двойной щелчок по журналу, чтобы просмотреть его записи. Содержимое журнала будет показано в виде таблицы в редакторе таблиц баз данных. Журналы 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 запрос.
Как создать собственный журнал на основе предопределенного журнала
- Щелкните по журналу в дереве панели Проекты, чтобы открыть его свойства.
- В Свойствах щелкните по ссылке Создать редактируемую копию этого представления.
- В панели Проекты вы увидите новый пункт базы данных. Он будет размещен в разделе База данных, а не Журнал (в котором располагаются только предопределенные и не редактируемые представления).
- SQL запрос этого представления можно редактировать, поэтому вы можете открыть свойства нового представления и настроить его запрос в поле Задание представления.
Журнал находится в папке модели, в подпапке database, которая содержит все данные для встроенной базы данных модели.
В определенных случаях может возникнуть необходимость удаления журнала. К примеру, вы распространяете вашу модель путем копирования папки модели и хотите оптимизировать размер папки. Не стоит удалять файлы через файл-менеджер, потому что вы удалите все данные из базы данных модели. Чтобы удалить только журналы выполнения модели, следуйте инструкции ниже:
Как удалить все журналы выполнения модели
- В панели Проекты щелкните правой кнопкой мыши по ветви База данных и выберите из контекстного меню пункт Удалить журналы.
Вы можете удалить журналы программно во время выполнения модели с помощью функции deleteExistingLogObjects(java.sql.Connection connection).
Эта функция задана в классе базы данных модели ModelDatabase. Она удаляет данные всех журналов выполнения модели (если сбор данных в журналы включен). В качестве аргумента функции нужно передать соединение с базой данных. Ниже приведен пример кода, который удаляет данные из журналов модели. Поскольку функция может выбросить исключение типа java.sql.SQLException, то вам нужно обработать такой случай с помощью операторов try — catch:
try
{
getEngine().getModelDatabase().deleteExistingLogObjects(getDatabaseConnection());
}
catch (SQLException e)
{
error("При удалении данных из журналов выполнения модели произошла ошибка: " + e);
};
При экспорте модели в AnyLogic Cloud или отдельное Java-приложение журналы модели автоматически удаляются.
-
Как мы можем улучшить эту статью?
-