Отладка выражений
Во многих случаях выражения вычисляются в автономной среде, что серьезно затрудняет их тестирование. Например, когда системный администратор создает выражение для триггера событий тревоги, он не может корректно проверить его в Редакторе выражений, так как у него под рукой нет экземпляров запускающего события, которое могло бы предоставить "реальные" данные. Другими словами, таблица по умолчанию не будет определена в среде вычисления, а выражение не будет выдавать правильный результат при расчете в визуальном редакторе.
Использование журнала вычислений и ошибок
Действие Просмотр событий дает доступ к журналу вычислений выражения определенного контекста, а также к журналу ошибок вычисления.
Каждое действие по вычислению выражения регистрируется как отдельное событие Вычисление. Неудачные попытки вычислить выражение записываются в журнал как события Ошибка вычисления.
Вычисление некоторых выражений не привязано к какому-либо серверному контексту. Для таких выражений описываемый способ отладки работать не будет. |
Использование функции трассировки
Язык выражений SberMobile включает в себя очень полезную функцию trace()
, которая была разработана для отладки выражения. Эта функция берет любое значение, регистрирует его (чтобы его было видно в Журнале событий) и возвращает неизменным, имея результатом любые другие побочные эффекты.
Способы просмотра значений, вводимых функцией трассировки, различаются:
Если выражение вычисляется в SberMobile Server, значения можно просматривать путем активации фильтра событий Трассировка выражения (который является частью ядра установочного пакета SberMobile)
Если выражение вычисляется в дашборде, значения можно просматривать в журнале событий.
В других случаях значения будут вводиться в стандартном инструменте журналирования (доступ к нему можно получить из консоли, файла и т.п.)
Пример: Предположим, что мы хотим создать тревогу, которая будет появляться при давлении менее 20 единиц и температуре более 50 единиц. Начальное выражение тригерра переменной будет выглядеть следующим образом:
Однако если тревога не появляется, сложно выяснить, характеризует ли выражение со значением false давление или температуру. Для осуществления легкой отладки мы можем менять данное выражение следующим образом:
После этого мы будем видеть следующий вывод в Журнале событий каждый раз, когда тревога производит проверку:
Это позволяет быстро находить текущие значения и видеть, почему настройка тревоги неправильная. Другой способ - это отследить состояние отдельных частей выражения вместо "сырых" значений метрик:
Вывод будет следующий:
|