KPI
Содержание
Настройка микросервиса KPI
Перед началом работы убедитесь, что микросервис KPI установлен: Меню настройки -> Микросервисы
В случае, если микросервис KPI отсутствует в списке:
- Скачайте актуальную версию DPA: https://rundpa.com/ru/download Запустите установочный файл, отключите флаг “Использовать предыдущие параметры установки”, на шаге “Выбор компонентов”, поставьте флаг “DPA. KPI”. Обратите внимание, что для работы микросервиса требуется .NET 5.0 (ссылка)
- На шаге “DPA. KPI” пропишите экземпляр SQL-сервера и выберите новую или существующую базу данных (обратите внимание, база микросервиса и база host - разные базы!)
- После установки вернитесь в модуль “Микросервисы”, нажмите кнопку “Добавить” и заполните следующие параметры (пример настроек по умолчание приведен на снимке экрана ниже):
- Протокол (http или https)
- Адрес машины, на которой развернут микросервис, если он отличается от адреса HOST
- Порт (по умолчанию 5780)
При успешном подключении в колонке состояние видим, что микросервис успешно подключен.
KPI Базовые понятия и принципы вычисления
Перед началом настройки необходимо определить терминологию.
KPI - (Key Performance Indicator, ключевой показатель эффективности) числовой показатель, который позволяет оценить результативность и эффективность процесса
Контекст KPI - контекст вычислений, определяется набором рабочих центров, базовых и расчетных показателей, это множество значений показателей на временном интервале от момента запуска процесса вычисления отдельного KPI до текущего момента/момента завершения подсчета KPI. Понятие контекста и его запуска/перезапуска и остановки важно, так как процесс вычисления KPI может быть очень ресурсоемким
Базовые показатели представлены двумя видами показателей:
Базовый унифицированный показатель - показатели существующие на всех РЦ системы
Индикаторы- значения технологических или иных автоматически регистрируемых параметров уникальное для каждого РЦ/группы РЦ в зависимости от особенностей оборудования
Расчетный показатель - временной ряд показателей или результирующий показатель, вычисляемый, в соответствии с функцией, включающей в себя операторы, имена базовых показателей и/или имена других расчетных показателей
Список базовых показателей, актуальный для данной версии системы вы можете увидеть в окне добавления KPI, на вкладке “Базовые показатели”, пояснения, раскрывающие суть данного БП вы можете увидеть во всплывающей подсказке. Подробнее процесс создания БП описан ниже.
Полный список индикаторов, актуальных для выбранного набора РЦ, вы можете увидеть в окне добавления KPI, на вкладке “Базовые показатели”, РЦ могут иметь различный набор индикаторов и разные наименования для них, как было указано ранее. Подробнее процесс создания БП описан ниже.
Расчетные функции могут включать имена БП или РП, константы, скобки, а также математические функции, бинарные операторы и функции расчета итогов (агрегирующие функции).
Бинарные операторы и математические функции поддерживается для показателей временного ряда и результирующих показателей. Аргументом агрегирующей функции может быть только БП или РП временного ряда.
Далее приведен перечень поддерживаемых функций и операторов по категориям.
^ | возведение в степень |
* / | умножение, деление |
+ - | сложение, вычитание |
> < >= <= == != | операции сравнения (больше, меньше, больше или равно, меньше или равно, равенство, неравенство) |
& | логическое И |
| | логическое ИЛИ |
? ?? | операции с отсутствующими значениями |
Для БП типа индикатор необходимо указать конкретный индикатор для каждого РЦ, поскольку РЦ могут иметь различный набор индикаторов и разные наименования для них. При этом в дальнейших расчетах БП указывается общим именем переменной, определенном в его настройках.
Для РП необходимо определить наименование и функцию для его вычисления. Также РП, которые необходимо отображать в аналитике, нужно указать, как основные.
Формулы РП могут включать имена БП или РП, константы, бинарные операторы, скобки, математические функции, а также функции расчета итогов (агрегирующие функции).
Константы задаются в числовом виде, с точкой, в качестве разделителя дробной части. Допустима также экспоненциальная форма записи. Например: 1.3, 1.7e3 (эквивалентно 1700), 1E-3 (эквивалентно 0.001).
Имена переменных БП и РП должны начинаться с буквы (латиницы или кириллицы), могут также содержать цифры и символ _. Буквы верхнего и нижнего регистра считаются различными, поэтому, например, названия «Индикатор» и «индикатор» будут интерпретированы, как разные переменные.
РП может быть определен двумя способами: как временной ряд или как итоговый показатель. Формула РП временного ряда должна включать хотя бы один РП временного ряда, либо БП. Такие РП вычисляются по мере поступления данных в микросервис, и полученные значения сохраняются в базе данных. Для каждого РЦ сохраняется отдельный ряд РП.
Итоговый РП представляет собой одно значение, рассчитываемое для некоторого заданного интервала времени. Такой РП вычисляется непосредственно при запросе к микросервису, например, из аналитик. Формула итогового РП может содержать другие итоговые РП, а также агрегирующие функции, примененные к БП или РП временного ряда. Итоговый РП может быть получен для каждого РЦ контекста в отдельности, и как общий для всех РЦ, заданных в запросе.
Для обоих видов РП доступен одинаковый набор бинарных операторов. В таблице приведены доступные операторы, в соответствие с их математическим приоритетом.
Для расчета логических выражений в системе используется соглашение, что значения больше нуля соответствуют значению «истина», а меньше - «ложь», и наоборот, логические операции и операции сравнения возвращают 1 в качестве значения «истина» и 0 – «ложь». Некоторые примеры вычислений для логических операций и операций сравнения приведены в таблице
a | b | a | b | a & b | a < b | a <= b | a ==b | a != b |
---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 |
0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
-10 | 10 | 1 | 0 | 1 | 1 | 0 | 1 |
Для расчета логических выражений в системе используется соглашение, что значения больше нуля соответствуют значению «истина», а меньше - «ложь», и наоборот, логические операции и операции сравнения возвращают 1 в качестве значения «истина» и 0 – «ложь». Некоторые примеры вычислений для логических операций и операций сравнения приведены ниже.
a | b | a ? b | a ?? b | a + b |
---|---|---|---|---|
1 | 2 | 2 | 1 | 3 |
0 | 2 | нет значения | 0 | 2 |
нет значения | 2 | нет значения | 2 | нет значения |
1 | нет значения | нет значения | 1 | нет значения |
нет значения | нет значения | нет значения | нет значения | нет значения |
В таблице ниже приведены математические функции:
Название | Описание | Примеры |
min | минимум из нескольких значений | min(1,2,3) = 1 |
max | максимум из нескольких значений | max(1,2) =2 |
abs | значение по модулю | abs(-2) = 2
abs(1,2) – неверная формула |
round | математическое округление | round(2.5) = 3
round(2.2) = 2 round(-2.5) = -3 |
floor | округление к меньшему целому | floor (2.5) = 2
floor (2.7) = 2 floor (-2.5) = -3 |
ceil | округление к большему целому | ceil (2.3) = 3
ceil (2.7) = 3 ceil (-2.5) = -2 |
В выражениях для итоговых РП можно использовать 3 агрегирующие функции:
- sum – сумма (интеграл) значений на интервале;
- dur – длительность интервала, на котором значение известно и определено;
- avg – среднее значение на интервале, выражение avg(РП) эквивалентно выражению sum(РП)/dur(РП).
Для уменьшения избыточности хранимых данных и ускорения запросов, для агрегирующих функций sum и avg, могут быть использованы оконные функции. Окно – набор строк, в рамках которого происходит вычисление. У функции необходимо указать 2 параметра – выражение для временного ряда и период вычисления в минутах. Можно понижать размерность исходных данных, сохраняя точность запросов в пределах размера окна, поскольку значения агрегирующих функций одинаковы как для исходного ряда, так и для прореженного.
Рассмотрим пример: вычисления среднего в окне avgWin.
За каждый полный период с начала текущих суток в хранилище будет записан один интервал значений, равный среднему значению временного ряда, для которого функция рассчитывается.