Индикаторы
Индикатор – это правило создания счетчика времени, определяющее условия запуска, паузы, сброса и завершения этого счетчика. Индикатор также определяет срок для объявления соглашения превышенным и содержит временны́е условия реализации типа обязательства.
Когда индикатор запускается, система автоматически создает индикацию – счетчик времени, который отслеживает текущее время и временны́е точки обязательства по целевому обязательству.
Начиная с версии 1.29.0 перед обработкой индикаторов производится их фильтрация. Подробнее см. Предварительная фильтрация индикаторов.
В зависимости от потребностей бизнеса можно создать различные типы индикаторов:
-
Стандартный – индикатор создает индикацию, которая запускается и завершается, когда выполняются заданные условия, или отменяется.
Например, время начала – это момент, когда статус задачи меняется на Назначено.
-
Ретроспективный – индикатор создает индикацию, которая определяет время запуска или превышения на основе полей типа Date/Time, заданных вручную. Индикации создаются для записей, удовлетворяющих заданным условиям.
Например, индикация создается, когда статус задачи меняется на Назначено, но при этом, время начала – это значение поля Открыто в.
Создание индикатора
Требуемая роль: service_level_manager
Чтобы создать новый индикатор, выполните следующие шаги:
- Перейдите в Управление индикациями → Индикаторы.
- Нажмите Создать и заполните форму.
- Нажмите Сохранить или Сохранить и выйти, чтобы применить изменения.
Поля формы Индикаторы
| Поле | Обязательно | Описание |
|---|---|---|
| Наименование | Да | Укажите имя индикатора. При создании индикаторов для одной и той же таблицы задавайте им разные имена. |
| Таблица | Да | Укажите таблицу, к которой будут применяться условия индикатора. После сохранения формы поле становится доступным только для чтения. |
| Соглашение | Нет | Укажите соглашение, относящееся к этому индикатору и содержащее метрики отслеживания. |
| Время запуска индикации | Да | Выберите один из трех вариантов:
|
| Поле времени запуска | Да | Поле появляется, если в поле Время запуска индикации выбрана опция Определяется полем. Выберите колонку типа Date/Time таблицы, для записей которой должны рассчитываться индикации. Из этой колонки индикация извлекает значение времени начала. Ретроспективная индикация подсчитывает значение, актуальное на момент создания индикатора. При изменении значения индикации не пересчитываются. |
| Путь до времени запуска | Да | Поле появляется, если в поле Время запуска индикации выбрана опция Определяется путем. Укажите путь в формате dot-walking к колонке типа Date/Time, из которой требуется получать значение времени начала индикации. Путь необходимо указывать относительно таблицы, для записей которой создаются индикации. Если путь задан некорректно или целевое поле пустое, система создает индикацию, используя в качестве времени запуска время сохранения записи, соответствующей Условиям запуска. |
| Учитывать ретроспективную паузу | Нет | Установите флажок, чтобы при расчете Времени паузы индикации учитывались все периоды в истории записи, при которых выполнялись условия паузы, с применением правил. Эта суммарная длительность паузы используется при расчете других параметров индикации. По умолчанию флажок снят, в результате чего ретроспективная пауза не учитывается в расчетах Времени паузы. Поле доступно для редактирования, если:
Изменение состояния флажка применяется ко всем новым индикациям, создаваемым для данного индикатора. Ретроспективная пауза рассчитывается с заданного момента запуска на основании данных таблицы История (sys_history). Расчет не производится, если в индикаторе используется расширенная модель записи (REM), так как данные о REM не хранятся в таблице История (sys_history). |
| Время превышения индикации | Нет | Выберите один из трех вариантов:
После сохранения формы поле становится доступным только для чтения. |
| Поле времени превышения | Да | Поле появляется, если в поле Время превышения индикации выбрана опция Определяется полем. Выберите колонку типа Date/Time таблицы, для записей которой должны рассчитываться индикации. Из этой колонки индикация извлекает значение времени превышения. После сохранения формы поле Время превышения индикации становится доступным только для чтения.
|
| Путь до времени превышения | Да | Поле появляется, если в поле Время превышения индикации выбрана опция Определяется путем. Укажите путь в формате dot-walking к колонке типа Date/Time, из которой требуется получать значение времени превышения индикации. Путь необходимо указывать относительно таблицы, для записей которой создаются индикации. Если путь задан некорректно или целевое поле пустое, индикация не создается. При использовании dot-walking перерасчет времени превышения при обновлении целевой или связанной записи не производится – оно рассчитывается исходя из предыдущих значений. |
| Длительность | Да | Это поле появляется, если в поле Время превышения индикации выбрана опция Определяется длительностью. Настройте рабочий календарь для выполнения соглашения до того момента, как оно должно быть отмечено как нарушенное. Учитывается продолжительность дня согласно выбранному календарю. |
| Минимальная длительность | Нет | Поле появляется, если в поле Время превышения индикации выбрана опция Определяется полем. Установите минимальную длительность, которая ограничивает создание индикации и ее существование. Перед созданием индикации будет проверяться ее будущая длительность со времени старта и до превышения. Если полученная длительность меньше Минимальной длительности, то индикация не создается. Если пользователь поменяет Поле времени превышения после создания индикации и полученная длительность окажется меньше Минимальной длительности, индикация отменяется. Учитывается продолжительность дня согласно выбранному календарю. После сохранения формы поле становится доступным только для чтения. |
| Активен | Нет | Установите этот флажок, чтобы активировать индикатор. |
| Тип обязательства | Да | Укажите тип обязательства для этого индикатора. Доступные опции:
|
| Источник календаря | Да | Укажите источник календаря для расчета рабочего времени. Доступные опции:
Изменение настройки применяется только к новым индикациям — ранее рассчитанные остаются без изменений. |
| Календарь | Да | Выберите календарь, который должен использоваться при расчете затраченного рабочего времени, пауз и времени превышения индикаций. Используйте один из существующих в системе календарей или настройте свой при помощи модуля Календарь. Если выбранный календарь невалиден (состоит из элементов типа Исключая), то по умолчанию будет использоваться календарь 24х7. Поле скрывается, если в поле Источник календаря выбрана опция Другой календарь. |
| Путь до календаря | Да | Поле появляется, если в поле Источник календаря выбрана опция Другой календарь. Укажите путь в формате dot-walking к колонке, которая содержит ссылку на запись календаря. Путь необходимо указывать относительно таблицы, для записей которой создаются индикации. Если путь задан некорректно или целевое поле пустое, расчет индикации выполняется по календарю 24x7. |
| Часовой пояс | Да | Определяет часовой пояс индикатора. Доступны только активные часовые пояса. Поле скрывается, если в поле Источник часового пояса выбрана опция Другой часовой пояс. |
| Источник часового пояса | Да | Укажите источник часового пояса. Доступные опции зависят от целевой таблицы. Для всех таблиц доступны опции:
Для таблицы Задача (Task) и ее наследников доступны две дополнительные опции:
Изменение настройки применяется к новым и всем активным индикациям (в статусах В процессе, Приостановлена), включая ранее рассчитанные. |
| Путь до часового пояса | Да | Поле появляется, если в поле Источник часового пояса выбрана опция Другой часовой пояс. Укажите путь в формате dot-walking к колонке, которая содержит ссылку на запись часового пояса, который должен использоваться для расчета индикаций. Путь необходимо указывать относительно таблицы, для записей которой создаются индикации. Если путь задан некорректно или целевое поле пустое, расчет индикации выполняется по часовому поясу индикатора. |
Для следующих таблиц нельзя создать индикаторы:
- Индикаторы (sys_indicator)
- Индикации (sys_indication)
- Запланированные скрипты (sys_schedule_script)
- Запланированные импорты (sys_schedule_import)
- История (sys_history)
- Электронная почта (sys_email)
- Вложения (sys_attachment)
- Поисковый индекс (sys_search_index)
- Объекты ленты активности (sys_activity_feed_item)
- Основной журнал (sys_log)
- Архивы журналов (sys_log_archive)
- Журнал исключений (sys_log_exception)
- Журнал работы скриптов (sys_log_script)
- Журнал удаления записей (sys_record_deletion_log)
- Записи VCS (sys_vcs_record)
Настройка условий
Используйте следующие вкладки, чтобы указать условия индикатора:
Условия запуска
| Поле | Обязательно | Описание |
|---|---|---|
| Условия запуска | Да | С помощью конструктора условий задайте условия создания индикации. Система использует поля выбранной Таблицы в качестве транзакционных данных для задания условий. При изменении транзакционных данных система проверяет доступность этих условий. |
| Когда отменить | Нет | Установите условие отмены индикации:
|
| Условия отмены | Да | Эта опция появляется, если в поле Когда отменить выбрана опция Условия отмены соблюдены. Определите дополнительные условия, которые необходимо выполнить для отмены индикации. Если запись соответствует условиям отмены, условия запуска будут проигнорированы. |
Условия паузы
| Поле | Обязательно | Описание |
|---|---|---|
| Условия паузы | Да | С помощью конструктора условий задайте условия приостановки индикации. Система использует поля выбранной Таблицы в качестве транзакционных данных для задания условий. При изменении транзакционных данных система проверяет доступность этих условий. |
| Когда возобновить | Нет | Установите условие для возобновления расчета индикации:
|
| Условия возобновления | Да | Эта опция отображается, если в поле Когда возобновить выбрана опция Условия возобновления соблюдены. Поле позволяет определить дополнительные условия, которые должны быть выполнены, для возобновления индикации. Другими словами, если запись удовлетворяет условиям возобновления, Условия паузы будут проигнорированы. |
Условия завершения
| Поле | Обязательно | Описание |
|---|---|---|
| Условия завершения | Да | Установите условия с помощью конструктора условий для остановки индикации. Система использует поля выбранной Таблицы в качестве транзакционных данных для проверки условий. При изменении транзакционных данных система проверяет эти условия. |
Условия сброса
Вкладка отображается, только если в поле Время запуска индикации выбрана опция Определяется условием.
Чтобы условие срабатывало только один раз, используйте операторы Изменяется, Изменяется с, Изменяется на. При использовании других операторов, возможны случаи сброса индикации при каждом изменении целевой записи.
| Поле | Обязательно | Описание |
|---|---|---|
| Условия сброса | Нет | Это поле недоступно для ретроспективных индикаций (индикаций, у которых в качестве Время запуска индикации выбрана опция Определяется полем). Установите условия с помощью конструктора условий для сброса индикации. Система использует поля выбранной Таблицы в качестве транзакционных данных для проверки условий. При изменении транзакционных данных система проверяет эти условия. |
Если при создании индикации запись одновременно выполняет и условие запуска, и условие паузы, то индикация будет создана сразу в состоянии паузы.
Если индикация не находится в режиме паузы при соблюдении условий сброса:
- Время паузы и ее длительность сбрасываются.
- Время начала устанавливается равным времени срабатывания условий сброса.
- Время превышения и первоначальное время превышения вычисляются заново.
- Все спецификации пересчитываются в соответствии с заданными значениями.
Если индикация находится в режиме паузы, когда выполнены условия сброса:
- Время паузы сбрасывается.
- Время начала и время паузы устанавливаются на время срабатывания условий сброса.
- Время превышения и первоначальное время превышения вычисляются заново.
- Все спецификации пересчитываются в соответствии с заданными значениями.
При снятии флажка Активен или удалении индикатора связанные индикации будут отменены. В записях связанных индикаций в поле Когда изменено будет отображаться время отмены индикации.
Расчет длительности
Пример 1
Компания А использует календарь "24x7", что означает 24 рабочих часа, 7 дней в неделю и круглосуточную сменную работу. Если вы введете "2" в поле дни, это значение преобразуется в 48 рабочих часов или 2 рабочих дня.
Пример 2
Компания Б использует календарь "8x5", что означает 8 рабочих часов, 5 дней в неделю, один из самых распространенных календарей работы. Если вы введете "2" в поле дни, это значение преобразуется в 48 часов (поскольку в сутках 24 часа), что дает 6 рабочих дней.
Предварительная фильтрация индикаторов
При изменении записи выполняется предварительная фильтрация индикаторов для таблицы и обрабатываются только те индикаторы, которые удовлетворяют как минимум одному из следующих критериев:
- Хотя бы одно из условий индикатора (запуска, паузы, возобновления, сброса, завершения или отмены) содержит обновленное поле из записи.
- В записи было изменено поле, указанное в индикаторе как Поле времени превышения, если в поле Время превышения индикации выбрана опция Определяется полем.
Фильтрация по RE-модели
Если в Условиях запуска индикатора используется RE-модель, то при создании или изменении записи в таблице, для которой создан индикатор, применяется следующая логика:
- Если у записи отсутствует RE-модель, то обрабатываются только индикаторы без REM-атрибутов в поле Условия запуска.
- Если у записи есть RE-модель, то обрабатываются только индикаторы, у которых в Условиях запуска:
- не содержатся REM-атрибуты, или
- содержатся REM-атрибуты, соответствующие RE-модели измененной записи.
- При обновлении записи с RE-моделью, обработка индикаторов происходит вне зависимости от обновленных полей записи.
Если бизнес-логика требует смену RE-модели записи, то индикации, созданные ранее по одной RE-модели, продолжат работать с текущей записью с новой RE-моделью.
Система проверяет наличие обновленного поля в условии по принципу вхождения системного имени колонки в строку условия. Например, при обновлении значения колонки state, индикатор с условием по колонке custom_state отработает для текущей записи.
При использовании RE-модели, если условие старта будет {re_model_id}:attribute=1^ORstate=1 и запись без RE-модели будет удовлетворять части условия state=1, то индикатор все равно не будет применен из-за REM-части условия.
Ретроспективная пауза
Если для индикатора установлен флажок Учитывать ретроспективную паузу, суммарное Время паузы индикации, созданной на его основе, рассчитывается из истории записи с применением следующих правил:
| Начало и конец паузы | Время паузы индикации |
|---|---|
| Пауза началась до создания индикации и продолжается после ее создания. | Индикация создается в статусе Приостановлена. Время паузы индикации в этом случае – это разница между временем последнего обновления индикации и временем входа в паузу. |
| Пауза началась до создания индикации и закончилась во время ее создания. | Индикация создается в статусе В процессе. Время паузы – это разница между временем создания индикации и временем начала паузы. |
| Первая пауза началась и завершилась до создания индикации, новая пауза началась после создания индикации. | Индикация создается в статусе Приостановлена. Время паузы – это сумма длительности первой паузы и времени, прошедшего с момента создания индикации до следующего пересчета. |
| Пауза началась во время создания индикации и продолжается после ее создания. | Индикация создается в статусе Приостановлена. Время паузы – это время, прошедшее с момента создания индикации до следующего пересчета. |
| Пауза началась до момента запуска индикации и продолжается, пока выполняются условия паузы. | Индикация находится в статусе Приостановлена, пока выполняются условия паузы. Пауза рассчитывается ретроспективно с момента запуска индикации до момента выхода из паузы, даже если условие паузы наступило раньше запуска. |
| Пауз не было. | Время паузы равно 0. |