Отрицатильные значения с сетевых интерфейсов
-
@akira said in Отрицатильные значения с сетевых интерфейсов:
Спасибо. Эту ветку я находил и читал.
Почему такое случается понял.
Не понял как мне написать transformation script, чтоб работало.Я использую такой
sub main() { return ((uint64($1)*8)/(1 << 20)); }это для перевода в МегаБиты.
собираю параметр .1.3.6.1.2.1.31.1.1.1.6 тип uint64но у меня там вылезла другая проблема, возможно конечно что дело в другом, но пока она актуальна. Отрицательных значений нет.
-
@akira said in Отрицатильные значения с сетевых интерфейсов:
28-Dec-2011 11:59:01 503850560
28-Dec-2011 10:59:01 795522378
28-Dec-2011 09:59:00 598589222
28-Dec-2011 08:59:00 9223372036854775807
28-Dec-2011 07:59:00 273392862
28-Dec-2011 06:59:00 163655688
28-Dec-2011 05:59:01 43122668
28-Dec-2011 04:59:01 86841056Я так понимаю, происходит это когда предыдущее значение было больше, чем текущее.
Как можно сделать, чтобы при такой ситуации, просто считалось, что предыдущее значение = "0"?
Само по себе новое значение меньше предыдущего проблем вызывать не должно. Еcли параметр определен как unsigned и размер правильный, то все будет в порядке. Проблема может быть в несовпадении размера данных в DCI и на ноде - если реально данные 32 бита, а DCI определен как 64 бита, то при проходе счетчика через ноль как раз такой эффект и будет.
-
Я собираю .1.3.6.1.2.1.31.1.1.1.6 и значение DCI Unsigned Int64
И все-равно бывает. При рестарте оборудования, например.Можете помочь с Transformation Script?
Задача:
Каждый час собирается дельта на интерфейсе DCI - id 4366.
На том же интерфейсе собирается каждую минуту "average per second" - id 4364.Как должен выглядить скрипт, чтобы если последнее значение счетчика 4366 получается 9223372036854775807, большое вобщем,
то можно было бы взять данные за 60 минут со счетчика 4364 по формуле (сумма значений счетчика 4364 за последние 60 минут)*60 и грубо восстановить значение счетчика 4366? -
@akira said in Отрицатильные значения с сетевых интерфейсов:
Я собираю .1.3.6.1.2.1.31.1.1.1.6 и значение DCI Unsigned Int64
И все-равно бывает. При рестарте оборудования, например.Можете помочь с Transformation Script?
Задача:
Каждый час собирается дельта на интерфейсе DCI - id 4366.
На том же интерфейсе собирается каждую минуту "average per second" - id 4364.Как должен выглядить скрипт, чтобы если последнее значение счетчика 4366 получается 9223372036854775807, большое вобщем,
то можно было бы взять данные за 60 минут со счетчика 4364 по формуле (сумма значений счетчика 4364 за последние 60 минут)*60 и грубо восстановить значение счетчика 4366?решение по данной проблеме было вчера найдено предложено в теме https://www.netxms.org/forum/oe-oo/eee-to-transformation-script/ ждем патча.
-
@skynv said in Отрицатильные значения с сетевых интерфейсов:
решение по данной проблеме было вчера найдено предложено в теме https://www.netxms.org/forum/oe-oo/eee-to-transformation-script/ ждем патча.
Видел.
Там предлагается два варианта. Игнорировать или менять местами последнее с предпоследним.
В обоих случаях потеря данных.А мне хочется восстановить данные из другого счетчика.
-
@akira said in Отрицатильные значения с сетевых интерфейсов:
@skynv said in Отрицатильные значения с сетевых интерфейсов:
решение по данной проблеме было вчера найдено предложено в теме https://www.netxms.org/forum/oe-oo/eee-to-transformation-script/ ждем патча.
Видел.
Там предлагается два варианта. Игнорировать или менять местами последнее с предпоследним.
В обоих случаях потеря данных.А мне хочется восстановить данные из другого счетчика.
это 1 вариант о двух действиях.
чтобы данные восстановить, они должны где-то быть. Обычно после рестарта все обнуляется.
-
-
@akira said in Отрицатильные значения с сетевых интерфейсов:
@skynv said in Отрицатильные значения с сетевых интерфейсов:
это 1 вариант о двух действиях.
чтобы данные восстановить, они должны где-то быть. Обычно после рестарта все обнуляется.
Да я собственно прошу помощи в написании скрипта.
могу предложить их просто занулять или менять на любое другое число...
sub main() { if $1 > value then { return 0; } } -
-
-
-
@akira said in Отрицатильные значения с сетевых интерфейсов:
Так. Ближе. А как взять сумму последних 60 значений? Я что-то в документации не нашел.
Если вы собираете статистику каждый час, то есть за час то это как бы и есть сумма всех значений, делим на 60 получаем среднее за минуту...
-
@skynv said in Отрицатильные значения с сетевых интерфейсов:
@akira said in Отрицатильные значения с сетевых интерфейсов:
Так. Ближе. А как взять сумму последних 60 значений? Я что-то в документации не нашел.
Если вы собираете статистику каждый час, то есть за час то это как бы и есть сумма всех значений, делим на 60 получаем среднее за минуту...
Вы не поняли проблему
У меня есть счетчик 1 - тупо дельта каждый час, но иногда глюкавое отрицательное значение.
У есть счетчик 2 - каждую минуту, средняя в секунду.Я хочу при сбойном значении счеткика 1, восстановить из счетчика 2 значение, воспользовавшись данными за прошедший час.
Сейчас я это делаю скриптом в SQL, а хочу сразу в NetXMS. -
-
@akira said in Отрицатильные значения с сетевых интерфейсов:
@skynv said in Отрицатильные значения с сетевых интерфейсов:
@akira said in Отрицатильные значения с сетевых интерфейсов:
Так. Ближе. А как взять сумму последних 60 значений? Я что-то в документации не нашел.
Если вы собираете статистику каждый час, то есть за час то это как бы и есть сумма всех значений, делим на 60 получаем среднее за минуту...
Вы не поняли проблему
У меня есть счетчик 1 - тупо дельта каждый час, но иногда глюкавое отрицательное значение.
У есть счетчик 2 - каждую минуту, средняя в секунду.Я хочу при сбойном значении счеткика 1, восстановить из счетчика 2 значение, воспользовавшись данными за прошедший час.
Сейчас я это делаю скриптом в SQL, а хочу сразу в NetXMS.Da, skriptami takoe sdelat' nel'zja. Mne nravitsja ideja, ja dobavlju funkcii dostupa k iztoricheskim dannim DCI iz skriptov.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login