Создание системы сравнения результатов мониторинга xRootD в Dashboard и Monalisa. xRootD – это один из широко используемых протоколов передачи данных в WLCG. Существуют две системы его мониторинга: на основе Monalisa и разработанная в Dashbord. Они основаны на получении сырой информации из UDP-пакетов, которые постоянно создаются xRootD серверами. Затем информация агрегируется и выводится в виде графиков, гистограмм и таблиц на соответствующих веб-страницах. Эта информация позволяет администраторам GRID-сайтов следить за интенсивностью потока информации, проходящего по протоколу xRootD. Также эта информация даёт представление о вкладе каждого сайта в процесс обработки данных LHC. Важной задачей в процессе создания систем мониторинга является валидация результатов. При мониторинге больших систем с наличием множества метрик постоянная валидация является гарантией корректности результатов. В случае с системами мониторинга Dashboard и Monalisa абсолютная точность не требуется, и поэтому погрешность порядка 1% может быть допустима. Чтобы удостовериться в корректности результатов мониторинга системы Dashboard, достаточно сравнить её результаты с результатами системы Monalisa, которая разрабатывается другой группой и имеет архитектуру, существенно отличающуюся от Dashboard. Чтобы создать инструмент сравнения результатов мониторинга двух систем, требуется агрегировать по именам сайтов информацию о количестве переданных байтов и предоставить в удобной для пользователя форме. При создании подобной системы следует учитывать некоторые особенности системы Monalisa: 1. Monalisa, в отличии от Dashboard, не предоставляет REST-интерфейса для получения данных в формате JSON или XML другими приложениями. Единственное место, в котором отображается результат её работы — это HTML страница. 2. В Monalisa детализированные данные (2-х минутные отрезки) доступны только в течение 2-х последних месяцев. Затем данные агрегируются в одночасовые отрезки. 3. В силу особенности веб-страницы Monalisa, при запросе данных мониторинга за определённый час система может выдавать не целый час, а только его окончание. Поэтому необходимо создавать запрос с запасом. С учётом всех особенностей вырисовываются требования к системе сравнения: 1. Система должна постоянно собирать и хранить агрегированные данные из Monalisa. Для Dashbord такие меры не требуются из-за удобного REST интерфейса. 2. Для сбора информации необходимо производить синтаксический анализ («parsing») исходного HTML-кода веб-страницы Monalisa. 3. Необходим некий интерфейс, взаимодействуя с которым администраторы и разработчики могут следить за качеством мониторинга. Чтобы решить поставленную задачу, потребовалось создать небольшую систему, которая состоит из коллектора, базы данных, веб-сервера и веб-интерфейса. Коллектор, написанный на Python, каждый час считывает HTML код с сайта системы Monalisa и получает информацию о количестве переданных сайтами байт. Эту информацию коллектор сохраняет в базе данных MySQL. С этого момента пользователь может открыть вебинтерфейс и выбрать период сравнения результатов мониторинга. Данные системы Monalisa попадут на веб-интерфейс из базы данных MySQL. Данные Dashboard попадут на вебстраницу непосредственно из системы Dashboard через REST-интерфейс. В качестве вебфреймворка, на уровне которого происходит суммирование и агрегация, был выбран Django из-за своей простоты и известности другим программистам, которые смогут позже осуществлять его поддержку. Система сравнения результатов мониторинга Dashboard и Monalisa является важным инструментом, призванным помочь администраторам и разработчикам обнаруживать незначительные проблемы мониторинга, которые не очевидны при визуальном сравнительном анализе результатов. Ниже представлены схема системы сравнения, веб-интерфейс к системе и пример полученного результата: Рис.1. Схема работы системы сравнения результатов мониторинга Рис.2. Главная страница системы. Пользователь выбирает, какой эксперимент его интересует. Рис.3. Результат сравнения показан в таблице. Стоит обратить внимание на то, как устроен интерфейс. В верхней части экрана находятся два поля для ввода даты и времени: с какого и по какое время сравнивать. Результат сравнения — это таблица с пятью столбцами, по которым можно проводить сортировку: имя сайта в Dashboard, имя сайта в Monalisa, количество гигабайт, переданных сайтом по версии Dashboard, количество гигабайт, переданных сайтом по версии Monalisa, и отношение результатов (Ration). На рисунке можно заметить, что не все имена сайтов полностью соответствуют в обоих системах мониторинга. Это известная проблема определения имени сайтов в WLCG. Чтобы поднять качество сравнения, было необходимо поставить в соответствие те сайты, которые имеют разные названия в разных системах. Однако и это полностью не решает проблему, в результате остаются имена сайтов, для которых информация присутствует только в одной из систем. Чтобы как-то выделить сайты информация по которым совпадает в обоих системах моинторинга было создано дополнительное поле: Ratio. В нём отображается число от -1 до 1. -1(минус один) значит, что Dashboard не зафиксировал ни одной передачи, в то время как Monalisa зафиксисровала какое-то количество. +1(один) значит наоборот. 0(ноль) означает что результаты мониторинга в обоих системах полностью сошлись. Ratio вычисляется по формуле: (DB-ML)/MAX(DB,ML), где DB — количество переданных гигабайт по версии Dashboard, ML — количество переданных гигабайт по версии Monalisa, а MAX — это функция выбора максимального из значений. В самой нижней строке таблицы присутствует итоговая сумма. Цвет помогает пользователю сразу оценить количество и серьёзность несоответствий. Зелёный означает, что абсолютное значение Ratio меньше либо равно 0.1(одной десятой). Оранжевый означает, что абсолютное значение Ratio больше 0.1 но меньше либо равно 0.2(двум десятым). Красный означает, что абсолютно значение Ratio больше 0.2(двух десятых). Серым окрашиваются те строки, в которых присутствуют результаты только одной из систем мониторинга.