Добрый день.
В процессе парсинга данных бывают случая, когда основной элемент не смог вернуть значение (не сработала удаленная команда), либо значение пришло, но его формат некорректен для дальнейшего парсинга.
Следовательно, зависимый от него элемент, не смог спарсить основной элемент.
Что-бы знать, что запросы неуспешны, я создаю триггер на основной элемент с функцией nodata.
Например, основной элемент опрашивает оборудование каждые 30 мин, тогда для триггера ставлю nodata = 1 за последние 35 мин.
А для зависимого элемента делаю предобработку:
1) Парсинг ответа основного элемента с галкой "Другое при ошибке" и "Задать значением" NODATA
2) Проверяю ответ через JavaScript
Тогда, при возврате 1 триггер не сработает, при возврате 2 сработает триггер об отсутствии данных, а при возврате 0 сработает дополнительный триггер о том, что состояние элемента не Optimal.
Чтобы не срабатывало сразу два триггера при отсутствии данных от основного элемента (nodata основного элемента и значение 2 у зависимого элемента), выражение триггера зависимого элемента прописываю так:
То есть, основной элемент получил значение (nodata ложь), но зависимый элемент не смог его спарсить.
На мой взгляд, я тут нагородил кучу ненужного и это (мониторинг того, что данные не могут смониторится в данное время) можно заменить на что-то другое. Подскажите, пожалуйста, как это правильно делать. Спасибо.
В процессе парсинга данных бывают случая, когда основной элемент не смог вернуть значение (не сработала удаленная команда), либо значение пришло, но его формат некорректен для дальнейшего парсинга.
Следовательно, зависимый от него элемент, не смог спарсить основной элемент.
Что-бы знать, что запросы неуспешны, я создаю триггер на основной элемент с функцией nodata.
Например, основной элемент опрашивает оборудование каждые 30 мин, тогда для триггера ставлю nodata = 1 за последние 35 мин.
А для зависимого элемента делаю предобработку:
1) Парсинг ответа основного элемента с галкой "Другое при ошибке" и "Задать значением" NODATA
2) Проверяю ответ через JavaScript
Code:
if (value.trim() == "Optimal") {
return 1;
}
else if (value == "NODATA") {
return 2;
}
return 0;
Чтобы не срабатывало сразу два триггера при отсутствии данных от основного элемента (nodata основного элемента и значение 2 у зависимого элемента), выражение триггера зависимого элемента прописываю так:
Code:
last(<зависимый элемент>)=2 and nodata(<основной элемент>, 35m)=0
На мой взгляд, я тут нагородил кучу ненужного и это (мониторинг того, что данные не могут смониторится в данное время) можно заменить на что-то другое. Подскажите, пожалуйста, как это правильно делать. Спасибо.