Научная статья на тему 'Шаблоны в модуле визуализации web-интерфейса системы мониторинга BotikMon'

Шаблоны в модуле визуализации web-интерфейса системы мониторинга BotikMon Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
125
10
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВИЗУАЛИЗАЦИЯ ДАННЫХ / DATA VIZUALIZATION / GRAPH / СИСТЕМА МОНИТОРИНГА / MONITORING SYSTEM / ШАБЛОН / TEMPLATE / ГРАФИК

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Стоцкий Максим Викторович, Шевчук Юрий Владимирович

Статья посвящена системе мониторинга BotikMon, разработанной в ИПС им.~А.~К.~Айламазяна РАН. Система предназначена для архивации и визуализации информации, полученной от большого числа датчиков. В данной статье рассматривается вопрос разработки структур данных для страниц «избранное» в графическом интерфейсе пользователя системы BotikMon. Страницы «избранное» дают возможность сводить на одну страницу выбранные оператором данные и настраивать режимы отображения для них. Предлагается подход, основанный на использовании объектов\=/шаблонов, для которых поддерживается механизм наследования.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Visualization templates in the BotikMon monitoring system

The article is about the BotikMon monitoring system developed by A.K.~Ailamazyan Program Systems Institute of RAS\@. The system is intended for archival and visualization of data from large number of sources. The visualization subsystem of BotikMon offers so called ``selected pages'' that show combined data graphs highly configurable by the user. The article focuses on the means developed to facilitate this configuration based on template hierarchy related by inheritance. (\emph{in Russian}).

Текст научной работы на тему «Шаблоны в модуле визуализации web-интерфейса системы мониторинга BotikMon»

УДК 004.055

М. В. Стоцкий, Ю. В. Шевчук

Шаблоны в модуле визуализации web-интерфейса системы мониторинга BotikMon

Аннотация. Статья посвящена системе мониторинга BotikMon, разработанной в ИПС им. А. К. Айламазяна РАН. Система предназначена для архивации и визуализации информации, полученной от большого числа датчиков. В данной статье рассматривается вопрос разработки структур данных для страниц «избранное» в графическом интерфейсе пользователя системы BotikMon. Страницы «избранное» дают возможность сводить на одну страницу выбранные оператором данные и настраивать режимы отображения для них. Предлагается подход, основанный на использовании объектов-шаблонов, для которых поддерживается механизм наследования.

Ключевые слова и фразы: система мониторинга, визуализация данных, график, шаблон.

Разработанная в ИПС им. А. К. Айламазяна РАН система мониторинга ВойкМоп предназначена для мониторинга систем с большим числом источников данных, например суперкомпьютеров или объектов телекоммуникационной инфраструктуры. В настоящее время система эксплуатируется в компьютерной сети «Ботик» г. Переслав-ля-Залесского, работает на рядовом персональном компьютере и контролирует около 200 000 параметров активного сетевого оборудования.

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

Интерфейс системы мониторинга ВойкМоп предоставляет простую базовую возможность, при использовании которой оператор может найти необходимый параметр и построить график для одного

Результаты, представленные в статье, получены в рамках Программы фундаментальных исследований ОНИТ РАН.

© М. В. Стоцкий, Ю. В. Шевчук, 2014

© Институт программных систем имени А. К. Айламазяна РАН, 2014 © Программные системы: теория и приложения, 2014

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

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

Для решения этих проблем в интерфейсе системы мониторинга ВойкМоп был предложен механизм «избранное», который позволяет собирать на одной странице выбранные оператором данные, сводить несколько параметров на один график, а также отображать несколько графиков одновременно.

Современные системы мониторинга реализуют различные методы визуализации данных. Во многих из них реализован похожий механизм избранных. Но в изученных самых популярных системах мониторинга возможности механизма избранного недостаточно богаты, чтобы легко подготовить множество однотипных страниц с графиками, отображающими интересующую информацию. Некоторые сетевые системы мониторинга в качестве основной функциональности ограничиваются возможностью просмотра статуса и истории изменения статусов в виде логов [1]. Как правило, в системах мониторинга реализуют простой подход формирования обзорных страниц (избранное) [2-5], который в этой статье описан как подход «Избранное-гра-фик-линия».

1. Избранное-график-линия

Механизм «избранное» должен позволять сформировать страницу, на которой может отображаться одновременно несколько графиков, а на каждом графике может быть нарисовано несколько линий. Введем понятия «Избранное», «График» и «Линия» и отобразим их свойства и отношения в виде диаграммы (рис. 1).

т

Рис. 1. Первое приближение

Каждый объект среди свойств содержит уникальный идентификатор. Объект «Избранное» состоит из имени и описания. Каждый объект «График» — это имя, описание, ширина и высота графика, цвета фона и сетки (обрамления). Каждый график приписан к некому избранному посредством поля favorite_id, таким образом одно избранное может содержать несколько графиков (связь «один ко многим»). Каждый объект «Линия» — это имя параметра в системе мониторинга BotikMon, имя функция консолидации, цвет, флаг привязки к правой оси, флаг заполнения области под линией, толщина линии. Между линией и графиком также определена связь «один ко многим» посредством поля graph_id.

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

приходится наблюдать за группой однотипных объектов. К примеру, оператору требуется следить за набором из N (N > 0) однотипных объектов, каждый из которых имеет М одинаковых параметров, которые должны быть отображены на К (К > 0) графиках. Причем М ^ К, т.к. графики без линий не имеют практического смысла.

Чтобы наглядно сравнить действия оператора при формировании страницы избранного, определим стоимость операций в абстрактных единицах, которые будем обозначать буквой v:

• Создание объекта требует от оператора одну v.

• Заполнение или изменение полей объекта — 1v.

• Копирование объекта с изменением связи — 1v.

Итак, создание и заполнение полей N объектов «Избранное» потребует 2N(у), создание К объектов «График» для каждого избранного

2NK (v).

Затем создание М объектов «Линия» для графиков

2NM (v).

Итого получаем:

2N + 2NK + 2NM (v), 2N (К + М +1)(v).

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

2. Шаблоны

Для решения этой проблемы в BotikMon было введено понятие «Шаблон», которое заменило собой «График». Также вводится понятие «Переменная» (рис.2).

С шаблоном может быть связано несколько переменных, каждая из которых является парой — имя и значение. При определении шаблонов допускается, что различные поля объекта «Шаблон» и объектов «Линия», связанных с шаблоном, могут содержать места для вставки значений переменных. При обработке шаблона места для вставки переменных заменяются на значения связанных с шаблоном переменных.

Предположим, что определен шаблон Т, с которым связна линия со значением поля param

Рис.2. Шаблоны

[% server %]/cpu_temp.

Если с шаблоном Т связана переменная с именем server и значением, например, example.com, то при отображение шаблона в виде графика отобразится история изменения параметра

example.com/cpu_temp.

Вернемся к описанной выше задаче о N объектах с М параметрами на К графиках.

Снова необходимо создать N объектов «Избранное». На это потребуется 2 N (у). Затем для одного из избранного создать К шаблонов, на которые потребуется 2К(v). Далее для шаблонов необходимо определить линии, которые в поле param будут содержать место для подстановки значения переменной server

2М (v).

Не забудем создать объект «Переменная» с именем server для каждого шаблона, на которые потребуется еще 2К(v). Затем, так как

шаблоны будут идентичны для каждого из N объектов, просто N — 1 раз скопируем созданные объекты (К шаблонов, М линий и К переменных)

(К + М + К )(N — 1)(v). Изменение значения переменных с именем server в шаблонах

К (N — 1)(v).

Итого:

2N + 2К + 2М + 2К + (К + М + К )(N — 1) + К (N — 1)(v), N (2 +Ж + М) + К + М (v).

С использованием шаблонов теперь можно единожды создать несколько шаблонов для одной страницы избранного, а затем просто их скопировать столько раз сколько имеется страниц избранного, определяя лишь объекты «Переменная» для каждого шаблона. Но меньше ли операций займет подготовка страниц избранного с использованием нового подхода с использованием шаблонов? Рассмотрим неравенство

N(2 +Ж + М) + К + М < 2N(1 + К + М).

Левая часть неравенства представляет формула для расчета числа операций для подхода с шаблонами, а правая часть — «Избранное-график-линия».

2N + Ж К + MN + К + М < 2N + 2NK + 2MN, NK + К + М < MN, М (N — 1)

К <

N + 1

Если N, М и К удовлетворяют этому неравенству, то подход с шаблонами оправдан для подготовки страниц избранного, иначе лучше использовать первый простой подход. Неравенство показывает, что при большем количестве объектов «Избранное» имеет смысл пользоваться шаблонами. Это интуитивно понятно, если рассмотреть создание только одной страницы избранного. При создании одной страницы избранного помимо объектов «Линия» и «Шаблон» добавляются объекты «Переменная», которых нет в подходе «Избранное-график-линия», а создание дополнительных объектов добавляет лишних операций.

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

3. Наследование шаблонов

Чтобы решить проблему однотипных объектов, разработчики системы мониторинга BotikMon пришли к идее наследования шаблонов. Помимо того, что объект «Шаблон» связан с объектом «Избранное», он может быть также связан с другим шаблоном. При наследовании шаблон-потомок наследует все линии и переменные, которые связаны с шаблоном-родителем. Кроме этого шаблон-потомок может переопределить переменные шаблона-родителя. Изображение объектов и связей между сущностями очень похоже на предыдущий рисунок, добавляется лишь связь объекта «Шаблон» с самим собой (рис.3). Эта связь означает, что один объект «Шаблон» может ссылаться на другой объект «Шаблон», при этом первый шаблон является потомком, а второй родителем в отношении наследования.

Теперь шаблоны могут образовывать целые родословные древа. Если оператор запросил страницу избранного, то шаги формирования страницы будут следующими:

(1) поиск избранного F;

(2) поиск всех шаблонов Ts, связанных с избранным F;

(3) для каждого шаблона Т из Ts...

(a) инициализировать набор переменных TVS переменными, связанными с шаблоном Т;

(b) инициализировать набор линий Ls линиями, связанными с шаблоном Т;

(c) Тс присвоить Т;

(d) пока определен родитель Тр шаблона Тс...

(i) добавить переменные в набор TVS, которые связаны с шаблоном Тр, и которых еще нет в наборе TVS;

(ii) добавить все линии в набор Ls, которые связаны с шаблоном Тр;

(iii) Тс присвоить Тр.

(e) применить вставку переменных из набора TVS к шаблону Т и ко всем линиям из набора Ls;

(f) шаблон Т с набором линий Ls отобразить в виде графика.

Избранное

id INT

name VARCHAR(128) description VARCHAR(1024)

=F

1 A

Переменная

id INT

name VARCHAR(128) value VARCHAR(512) templatejd INT

Y

Шаблон

id INT

name VARCHAR(128) description VARCHAR(1024) width INT height INT

gridcolor VARCHAR(6) bgcolor VARCHAR(6) favorltejd INT parentjd INT

-H---,

H--

i---К

H-—,

_J

Линия

id INT

param VARCHAR(256)

consolidation VARCHAR(30)

color VARCHAR(6)

yaxis BOOL

fill BOOL

width INT

graphjd INT

Рис. 3. Наследование шаблонов

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Итак, механизм наследования помогает решить проблему наблюдения за однотипными объектами. Теперь чтобы создать набор избранных страниц для N одинаковых объектов, надо создать избранные, затратив 2 N (у). Для одного из избранных создать шаблоны — 2 К (у), М линий для шаблонов — 2 М (v), одна переменная для каждого шаблона — 2К(v). Для еще одного избранного создать К шаблонов, которые будут потомками от первых К шаблонов — 2К(v), для каждого потомка определяем переменную server — еще 2К(v). И наконец копирование шаблонов потомков и их переменных для оставшихся избранных потребует 2К(N — 2)(и), а также изменение

значение переменных с именем server — К(N — 2)(v). Итого:

2N + 2К + 2М + 2К + 2К + 2К + 2К (N — 2) + К (N — 2)(v), 2N + 8К + 2М + 2KN — 4К + KN — 2К (v), 2N + 2К + 2М + 3KN (v), 2(N + К + М) + 3KN (v).

Снова встает вопрос об эффективности данного подхода. И снова сравним подход с использованием наследования с предыдущим подходом, при котором используются только шаблоны:

2(N + К + М) + 3KN < N(2 + 3К + М) + К + М, 2N + 2К + 2М + 3KN < 2N + 3KN + MN + К + М, К + М < MN, К < М(N — 1).

Так как К > 0, М ^ К и N > 0, то неравенство верно когда

N > 2.

Конечно подход с использование шаблонов и наследования дает преимущества при создании нескольких однотипных страниц избранного. При этом получается, что при изменении одной линии в родительском шаблоне изменения «автоматически» произойдут и во всех остальных шаблонах, которые являются его производными.

4. Наследование избранных

Встает резонный вопрос о том, почему наследовать можно только шаблоны? Что если можно было бы наследовать не только шаблоны, но и сами объекты избранного?

У избранных появляется связь с другими объектами избранного, подобно связи между объектами-шаблонами из предыдущего раздела статьи. А также объекты-переменные могут теперь быть связаны не только с объектами-шаблонами, но и с избранными (рис.4).

Для простоты на схеме связь переменных с избранными и шаблонами осуществляется при помощи двух отдельных полей, что на

Рис. 4. Наследование избранных

практике неприемлемо. При реализации данного подхода следует использовать так называемую «общую связь», когда связь между объектами описывается парой полей: идентификатор связанного объекта и идентификатор типа объекта. В этом случае переменная может быть связана только с одним объектом (шаблон или избранное) в один момент времени. Но эта тема выходит за рамки данной статьи.

При использовании наследования избранных алгоритм отображения страницы избранного немного усложнится:

(1) поиск избранного Р;

(2) инициализировать набор переменных РУ8 переменными, связанными с избранным Р;

(3) инициализировать набор шаблонов Т3 шаблонами, связанными с избранным Р;

(4) Рс присвоить Р;

(5) пока определен родитель Fp шаблона Fc...

(a) добавить переменные в набор FVS, которые связаны с избранным Fp, и которых еще нет в наборе FVS;

(b) добавить все шаблоны в набор Ts, которые связаны с избранным Fp;

(c) Fc присвоить Fp.

Результатом первого этапа подготовки избранного будет набор шаблонов Ts и набор переменных FVS. Процесс построения графиков очень похож на шаги из прошлого раздела, но немного изменится и будет следующим:

(1) для каждого шаблона Т из Ts...

(a) инициализировать набор переменных TVS переменными связанными с шаблоном Т;

(b) добавить переменные в набор TVS из набора FVS, которых еще нет в наборе TVS;

(c) инициализировать набор линий Ls линиями, связанными с шаблоном Т;

(d) Тс присвоить Т;

(e) пока определен родитель Тр шаблона Тс...

(i) добавить переменные в набор TVS, которые связаны с шаблоном Тр, и которых еще нет в наборе TVS;

(ii) добавить все линии в набор Ls, которые связаны с шаблоном Тр;

(iii) Тс присвоить Тр.

(f) применить вставку переменных из набора TVS к шаблону Т и ко всем линиям из набора Ls;

(g) шаблон Т с набором линий Ls отобразить в виде графика.

Таким образом наследование можно использовать и на более высоком уровне — на уровне избранных. Становится возможным наследовать и шаблоны между избранными, и линии между шаблонами. Это также позволяет не только определять переменные на уровне шаблонов, но и для группы шаблонов в пределах избранного.

И снова рассмотрим задачу подготовки N избранных с К графиками и М линиями. Теперь для начала необходимо создать один объект «Избранное» (2v) и одну переменную, привязанную к этому избранному (2v). Затем потратить 2Kv на К шаблонов. Заметим, что переменные для шаблонов теперь создавать нет необходимости, так как создана одна переменная на уровне избранного. Далее определе-

ние объектов линий с привязкой к шаблонам потребует 2Ми операций. Остальные N — 1 избранные создаются и наследуются от первого. Для этого потребуется 2(Ж — 1)(^). Плюс создание для каждого избранного переменной, значение которой будет переопределять значение переменной избранного родителя, а это еще 2(Ж — 1)(^). Итого:

2+2+2^ + 2М + 2(Ж — 1) + 2(Ж — 1)(^), AN + 2М + 2К (и).

На первый взгляд кажется, что для описанной задачи подход с наследованием избранных самый эффективный с точки зрения количества действий на подготовку страниц избранных. Но так ли это?

4М + 2М + 2К < 2(К + К + М) + 3КК, 2К < 3КК,

т.к. N > 0, то

2 < 3К.

То есть наследование избранных всегда будет эффективнее для рассмотренной задачи, чем подход с использованием наследования шаблонов, так как К > 0. И почти всегда эффективнее других рассмотренных подходов.

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

5. Заключение

Начиная с простого и очевидного подхода «Избранное-график-линия», мы достигли более сложной структуры представления страниц «Избранное» в системе. При этом получилось так, что каждый новый подход обратно совместим с предыдущим. Это означает, что если оператор освоил простой подход, когда линия связана с графиком, а график с избранным, он может использовать его при работе с избранными, не задумываясь о шаблонах и наследовании, пока не ощутит потребность в них. Другими словами, от оператора не требуется сразу понимание всех тонкостей структур данных интерфейса, а обучение может проходить поэтапно от простого к сложному.

Для наглядности рассмотрим пример из жизни. Допустим, что оператору системы мониторинга необходимо наблюдать за 1000 коммутаторов Ethernet (N = 1000). У каждого коммутатора имеется 19 портов, про каждый из которых известно о 30 параметрах. Всего 570 линий (М = 570) на 30 графиках (К = 30).

Подход «Избранное-график-линия»:

2 * 1000 * (30 + 570 + 1) = 1202000V.

Использование шаблонов:

1000 * (2 + 3 * 30 + 570) + 30 + 570 = №2600v.

Использование наследования шаблонов:

2 * (1000 + 30 + 570) + 3 * 30 * 570 = 54500v.

Использование наследования избранных:

4 * 1000 + 2 * 570 + 2 * 30 = 5200v.

80.000 M per second

60.000 M per second

40.000 M pei second

20.000 M pei second

0 per second

OdilfL'' ih

£\ f,

Я > i

04:00:00 01 Apr

08:00:00 01 Apr

12:00:00 01 Apr

16:00:00 01 Apr

20:00:00 01 Apr

00:00:00 02 Apr

04:00:00 02 Apr

08:00:00 02 Apr

12:00:00 02 Apr

Рис. 5. Пример графика

Рассмотренный подход в настоящее время реализован в системе мониторинга BotikMon (рис. 5). В Web-интерфейсе системы BotikMon реализованы механизмы просмотра и редактирования страниц «избранного», шаблонов и линий. В дальнейшем планируется сделать интерфейс более удобным и привлекательным, чтобы еще больше упростить работу оператора системы.

Список литературы

[1] Icinga: Open Source Monitoring, 2014, URL http://www.icinga.org/. ^64

[2] M.L. Massie, B.N. Chun, D. E. Culler. The ganglia distributed monitoring system: design, implementation, and experience // Parallel Computing, 2004. Vol. 30, no. 7, p. 817-840. f64

[3] Nagios - The Industry Standard in IT Infrastructure Monitoring, 2014. ^64

[4] Opsview / Enterprise IT Monitoring for Networks, Applications, Virtual Servers and the Cloud, 2014, URL http://www.opsview.com/. f64

[5] Zabbix — An Enterprise-Class Open Source Distributed Monitoring Solution, 2014, URL http://www.zabbix.com/. f64

Рекомендовал к публикации д.ф.-м.н. С. В. Знаменский

Об авторах:

Максим Викторович Стоцкий

Инженер ИПС им. А. К. Айламазяна РАН. Мониторинг и управление, web-программирование интерфейса пользователя

e-mail: ms@pereslavl.ru

Юрий Владимирович ШШевчук

Зав. лабораторией телекоммуникаций ИПС им. А. К. Айламазяна РАН, к.т.н. Сенсорные сети, мониторинг и управление территориально распределенными объектами e-mail: shevchuk@botik.ru

Образец ссылки на эту публикацию:

М. В. Стоцкий, Ю. В. Шевчук. Шаблоны в модуле визуализации web-интерфейса системы мониторинга BotikMon // Программные системы: теория и приложения: электрон. научн. журн. 2014. T. 5, № 2(20), с. 63-76.

URL: http://psta.psiras.ru/read/psta2014_2_63-76.pdf

Max Stotsky, Yury Shevchuk. Visualization templates in the BotikMon monitoring system.

Abstract. The article is about the BotikMon monitoring system developed by A.K. Ailamazyan Program Systems Institute of RAS. The system is intended for archival and visualization of data from large number of sources. The visualization subsystem of BotikMon offers so called "selected pages" that show combined data graphs highly configurable by the user. The article focuses on the means developed to facilitate this configuration based on template hierarchy related by inheritance. (in Russian).

Key Words and Phrases: monitoring system, data vizualization, graph, template.

i Надоели баннеры? Вы всегда можете отключить рекламу.