Информационная панель телеметрии (Telemetry Dashboard)
Про информационную панель
Информационная панель телеметрии Qlik Sense – это проект, созданный и поддерживаемый командой Enterprise Architecture в организации Qlik’s Americas Presales. Он использует дополнительное ведение журнала, которое можно включить в Qlik Sense Enterprise за февраль 2018 г. и в более новых версиях Qlik Sense с некоторым обогащением данных с помощью вызовов API для предоставления данных о производительности на уровне визуализации для приложений Qlik. Цель инструмента – представить эти данные о производительности в действенных формах, чтобы администратор /разработчики могли точно видеть где и когда нужно сосредоточиться на повышении производительности приложений Qlik.
Что такое телеметрия в Qlik Sense Enterprise?
Телеметрия в Qlik Sense Enterprise – это по сути:
- Ведение журнала на основе пороговых данных.
- Qlik Engine запросы
(1) отличие телеметрии от традиционных журналов приложений, это то что ОШИБКИ или ПРЕДУПРЕЖДЕНИЯ в телеметрии основаны на пороговых значениях, установленных администратором.
(2) относится к тому, что Qlik Engine может обрабатывать запросы иначе, чем ожидает пользователь. Запросы движка могут относиться к очевидным вещам, таким как открытие приложения (метод OpenApp ) или перезагрузка приложения (методы DoReload или DoReloadEx ).. Менее очевидно, это то что внутри приложения Qlik каждая визуализация на листе также представляет собой отдельный запрос к Движку. В этом примере мы выделяем 8 различных запросов (метод GetLayout), которые выполняются при открытии нашего примера листа:
Когда запрос превышает установленный порог, отдельный запрос будет зарегистрирован и записан в журнал. В приведенном выше примере, если панель фильтра в верхнем левом углу превысит пороговое значение, в файл журнала будет записан запрос только для этого объекта (например, вызов GetLayout для объекта NpbzKm).
Ключевые регистрируемые фрагменты информации, при превышении запросом порогового значения, которое используется в Qlik, включают:
Поле |
Объяснение |
---|---|
Timestamp |
Время превышения порога |
Level |
Уровень нарушения (ОШИБКА или ПРЕДУПРЕЖДЕНИЕ) |
ActiveUserId |
UserId пользователя, который делал запрос |
ActiveUserDirectory |
UserDirectory пользователя, который делал запрос |
Method |
Метод запроса Engine API (например, GetLayout, OpenApp, DoReload) |
DocId |
AppID, в котором произошел запрос |
ObjectId |
ObjectId запрошенного объекта |
ObjectType |
Тип запрошенного объекта, если применимо |
ProcessTime |
Сколько времени потребовалось для выполнения этого запроса? |
NetRAM |
Сколько оперативной памяти занял запрос |
Таковы изменения уровня продукта, которые впервые были реализованы в Qlik Sense Enterprise за февраль 2018 г.
Чтобы повысить удобство использования и предоставить контекст для этих журналов, группа Enterprise Architecture Team создала проект для отображения этих данных в контексте и в приложении Qlik.
Обзор проекта
Проект по информационной панели телеметрии Qlik Sense предоставляет установщик, который устанавливает несколько вещей, которые будут использоваться для представления данных в виде расходных материалов:
- Он устанавливает скрипты NodeJS, которые собирают метаданные о приложениях.
- Он настраивает подключения к данным, используемые приложением Qlik.
- Импортирует приложение Qlik.
- Он настраивает связанные задачи, которые (а) перестраивают метаданные и (б) перезагружают приложение Qlik.
(1) необходим для построения иерархических отношений между объектами визуализации, листами, на которых находятся визуализации, и приложениями, которые содержат эти листы.
Эта иерархия позволяет пользователю информационной панели телеметрии Qlik размещать запрос в контексте. Более того, в этом контексте можно направить конкретную обратную связь к разработчику (разработчикам) этого приложения, чтобы сосредоточить свои усилия по оптимизации на проблемных визуализациях, а не на предоставлении гораздо более общей обратной связи, что «приложение работает медленно».
Поскольку проекту нужен NodeJS для построения иерархии визуализаций приложений <> листов <>, установщик настраивает задачу внешней программы (External Program Task), которая запускает скрипт NodeJS как задачу Qlik. Эта задача внешней программы связана таким образом, что ее успешное выполнение перезагружает приложение Qlik, которое зависит от выходных данных задачи внешней программы.
Установка пороговых значений
Как уже было сказано выше, эта функция Qlik Sense Enterprise требует от администратора установки пороговых значений, которые регистрируются как ОШИБКИ или ПРЕДУПРЕЖДЕНИЯ. Внесение изменений в конфигурацию описано в вики проекта. Мы расскажем, какие значения следует установить. Ниже пример обычного набора конфигураций:
ErrorPeakMemory=2147483648 WarningPeakMemory=1073741824 ErrorProcessTimeMs=60000 WarningProcessTimeMs=30000
Это означает, что любой запрос, который использует более 2 ГБ (2147483648/1024/1024/1024), будет зарегистрирован в журнале как ОШИБКА. Запросы размером более 1 ГБ будут регистрироваться как ПРЕДУПРЕЖДЕНИЕ. Аналогичным образом, любой запрос, который занимает более 60 секунд (60000/1000), будет регистрироваться как ОШИБКА, а запросы, которые занимают более 30 секунд, будут зарегистрированы как ПРЕДУПРЕЖДЕНИЕ.
Эти настройки обычно подходят для большинства сред.
Как правило, значения Error и Warning для PeakMemory и ProcessTimeMs должны иметь достаточный промежуток, чтобы покрыть устойчивый рост базовых значений. Например, при использовании ProcessTimeMs установка значения Error в 60 секунд и значения Warning в 59 секунд не обеспечит достаточной разницы между Error и Warning , чтобы определить, вызвано ли конкретное событие ошибки постоянным увеличением базовых данных (как ожидается для многих Qlik apps) или в связи с разовым действием. Обеспечение разумного интервала между значениями Warning и Error позволит администратору Qlik и разработчикам бизнес-аналитики ориентироваться в изменениях с течением времени.
Для Рабочих (Production) сред пороговые значения Warning, особенно значение ProcessTimeMs, должны быть установлены на уровне, при котором время отклика достаточно велико, чтобы по крайней мере зарегистрироваться. Пороги Error должны быть установлены на уровне, требующем относительно быстрого внимания со стороны администратора и/или разработчиков.
Использование приложения для анализа
После того, как ведение журнала телеметрии будет настроено, сервер работает в течение нескольких дней для создания исторической записи запросов, которые нарушили установленные пороговые значения, а информационная панель телеметрии была установлена и перезагружена, администратор и/или разработчики должны проверить приложение на наличие аномалий.
<больше информации будет добавлено позже>
Где взять
Скачать приложение можно здесь (исходный код).
Документация:
- Проект Qlik Sense Telemetry Dashboard
- Youtube Video - Начальная настройка
- Youtube Video - Установка
- Youtube Video - Настройка приложения
- Youtube Video - Анализ