Создание отчета о статусе устройства

AggreGate Инструментальные панели можно использовать для создания пользовательских отчетов, позволяющих получить некоторые данные в удобной для человека и печатной форме. Ваше воображение - единственный лимит для того, что может быть отображено на приборной панели, но в этой статье будет показано, как создать отчет, включающий историю событий, генерируемых определенным устройством. Мы используем виртуальное устройство, которое позволяет нам генерировать произвольные события. Мы предполагаем, что виртуальное устройство уже создано. Наше устройство называется virtual.

Наше виртуальное устройство может генерировать произвольные события, которые мы будем отображать на Инструментальной панели. Мы сгенерируем несколько событий, открыв контекстное меню устройства из Системного дерева и выбрав опцию Сгенерировать событие.

В диалоге Сгенерировать событие мы выбираем значения для ряда параметров и нажимаем кнопку OK. Мы повторяем этот процесс несколько раз, чтобы сгенерировать несколько событий.

Из Журнала событий сервера мы видим, что наше устройство сгенерировало несколько событий с временной меткой и некоторой дополнительной информацией. Сейчас мы готовы создать отчет, который будет отображать события, созданные нашим устройством.

Создание Инструментальной панели

Чтобы создать новую инструментальную панель, выберите Создать в контекстном меню Инструментальной панели в системном дереве. Если вы не знакомы с этим процессом, вам может помочь статья Создание виджета для мониторинга устройства. Назовем нашу приборную панель errorReport и откроем ее для редактирования. Открываем Палитру компонентов (1), добавляем компонент Журнал событий в первую ячейку сетки (2), изменяем размер компонента на соответствующее количество ячеек сетки (3) и, наконец, открываем окно Свойства компонента (4).

В Свойствах компонента нам нужно настроить два ключевых параметра: Режим (1), который мы установили на Список пользовательских компонентов, и События (2), открывающее дальнейшее меню.

В таблице данных События мы выберем фильтр для событий, которые мы хотим отслеживать в нашем отчете. Добавим строку (1) и нажмём на параметры в поле “Маска контекста”(2),

мы выбираем устройство, которое хотим отслеживать. Обратите внимание, что контекстный путь выбранного устройства показан в нижней части окна.

Возврат к диалогу События показывает, что в раскрывающемся поле События подгрузились возможные события, которые выбранное устройство может сгенирировать. Мы выбираем Событие виртуального устройства №1 (event1) и сохраняем изменения, нажав кнопку OK.

Сейчас, когда мы добавили фильтр для отлова нужных событий, мы сохраняем (1) изменения на нашей панели и открываем предпросмотр панели (2).

При выборе фильтра "История" отображаются записи прошлых событий, которые мы можем легко фильтровать, производить поиск, экспортировать и сортировать.

Диаграммы событий с использованием выражений и таблиц данных

Хотя компонент Журнал событий очень удобен для построения быстрых диаграмм, бывают случаи, когда мы хотим воспользоваться языком выражений AggreGate для сбора данных с нескольких устройств в определенном формате. Чтобы отобразить эту функцию, вам понадобится второе виртуальное устройство для генерации событий. Второе устройство назовём virtual2.

Создание Инструментальной панели

Мы следуем тому же процессу, который был описан выше для создания приборной панели, но вместо компонента Журнала событий мы используем компонент Data Table . Мы будем собирать события, генерируемые двумя виртуальными устройствами, в виде таблицы данных и отправим ее в наш компонент.

Создание привязок

Создав дополнительное виртуальное устройство и добавив компонент Data Table, нам нужно заполнить его соответствующими данными о событиях. Для этого мы создадим одну или несколько привязок данных. Перейдите к Дереву компонентов (1) и выберите корневой компонент (2), чтобы открыть Конфигурацию корневого компонента. Откройте вкладку Привязки (3) и откройте таблицу данных Привязки (4).

В меню Привязки добавьте строку и выберите Цель (1), куда будут отправлены данные, а затем определите Выражение расширенного поиска для извлечения и форматирования данных (2).

Выбор цели привязки

В данном случае цель проста: мы хотим отправить сведенья в компонент Data Table нашей Инструментальной панели. В меню Выбрать цель мы выбираем вкладку Свойства (1), открываем компонент Data Table и выбираем переменную Таблица с данными (2). Текущая переменная содержит данные для нашего компонента. Обратите внимание, что текстовый путь к этому конкретному свойству отображается в нижней части окна. Сохраняем и закрываем окно, нажав OK.

Создание выражения для извлечения событий

Мы хотим перехватить события "Событие виртуального устройства №1" любого из наших виртуальных устройств. Текущее выражение построено с использованием следующих элементов:

  • Путь к устройству или Маска контекста устройства: Текущий контекстный путь, ведущий к конкретному устройству, или контекстная маска, ведущая к ряду устройств, для которых мы хотим извлечь события. В нашем случае мы хотим получить события со всех устройств, поэтому используем маску контекста "users.admin.devices.*".

  • Имя события: событие, генерируемое нашими виртуальными устройствами, - "event1".

  • Функция Get events: функция {events:get(путь к контексту,название события)} возвращает таблицу данных о событиях на основе контекстного пути или маски и имени события.

  • Функция Subtable: функция subtable(таблица,имя поля [,имя поля]) позволяет выбрать определенные поля из таблицы данных и выдает нам новую таблицу, содержащую только нужные строки.

Соединив эти элементы вместе, мы получим следующее выражение:

subtable( {events:get( "users.admin.devices.virtual", "event1" )}, "eCreationtime", "eLeve

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

В окне Конструктора выражений мы можем выбрать опцию Вычислить выражение, чтобы проверить, что наше выражение генерирует желаемый результат.

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

Мы нажимаем OK, чтобы сохранить выражение и закрыть конструктор.

Выбор параметра активации привязки

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

Просмотр отчета о событиях

Как описано выше, мы сохраняем нашу инструментальную панель и открываем её предпросмотр. Мы видим, что в нашем отчете отображаются события с обоих виртуальных устройств, и мы можем экспортировать отчет в несколько форматов.