Не могу понять как сделать LifeCount. Есть аппаратные счётчики событий за сутки, 00:00 они обнуляются. Элементы данных, содержащие счётчики, создаются LLD, поскольку в каждом устройстве переменное количество счётчиков. Есть триггеры, тоже созданные LLD, срабатывающие на прирост показаний счётчиков и сбрасывающиеся по событию сброса счётчиков в ноль. Каким образом можно создать Life count, который накапливал бы показания счётчика в момент, предшествующий его сбросу?
Ad Widget
Collapse
И снова подсчёт значений
Collapse
X
-
Tags: None
-
Насколько я понял задачу, надо в 23.59.59 получать значение счетчика и добавлять его в сумматор.
Начиная, если не ошибаюсь, с 5.2.6 можно сделать вычисляемый айтем LifeCount, который будет запускаться по расписанию в оный момент, с формулой:
sum( LifeCount,#1) + last(counter) -
Где бы об этом почитать?
Пытаюсь сделать вычисляемый item с ключом LifeCount [{#NUM_TANK}] и с формулой sum(LifeCount[{#NUM_TANK}],#1)+last(offline_count.tank[{#NUM_TANK}])
Получаю ошибку- Ошибочный параметр "/1/params": incorrect expression starting from "sum(LifeCount[{#NUM_TANK}],#1)+last(offline_count.tank[{#NUM_TANK}])". [disc_prototypes.php:603 → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CItemPrototype->create() → CItemPrototype->checkInput() → CItemGeneral->checkInput() → CApiService::exception() in include/classes/api/services/CItemGeneral.php:344]
Comment
-
-
В документации sum(/host/key,#1) У Вас sum(//key,#1) Два слеша стало потому что нет host? Host подразумевается по умолчанию текущий узел?Comment
-
К сожалению, это не работает. Ошибка: Cannot evaluate function: item "/172.XX.XX.XX/offline_count.tank[1]" does not exist at "last(//offline_count.tank[1])" По шагам 1. LLD создаёт вычисляемый элемент life_count[{#NUM_TANK}] 2. Формула для элемента sum(//life_count[{#NUM_TANK}],#1)+last(//offline_count.tank[{#NUM_TANK}]) Первая часть -Sum of collected values within the defined evaluation period, по существу сумма с одним членом -последним элементом, второго слагаемого нет. Первое слагаемое не определено в первый момент поэтому sum() вычислится неопределённым. К нему прибавляем нормальное значение метрики. Будет ли это работать? A calculated item may become unsupported in several cases: no data to calculate a function 3. Почему-то во втором слагаемом last(//offline_count.tank[1]) не появился адрес хостаComment
-
Собственно, весь трюк с sum(//item,#1) и заключается в том, что с определенной версии (я это заметил в 5.2.6, в 5.4 работает точно) sum при отсутствии значений стала возвращать 0, а не ошибку.Это легко проверить, создав 2 вычисляемых айтема, item1 с формулой 1, и item2 с формулой sum(//item2,#1) + last(//item1). Получится непрерывно растущий счетчик. Все, что вам нужно - разобраться с LLD и правильно указать Scheduling сustom interval.Comment
-
Проверил, действительно трюк работает. Всё остальное тоже заработало, банальная ошибка в названии last(//item1). Тот случай, когда глаз "замылился". Спасибо за ценную подсказку и обсуждение.Comment
Comment