Высокие или низкие значения в history
-
Добрый день. Использую для снятия загрузки интерфейсов вот такие OID:
ifHCInOctets 1.3.6.1.2.1.31.1.1.1.6
ifHCOutOctets 1.3.6.1.2.1.31.1.1.1.10.1.3.6.1.2.1.31.1.1.1.6.{instance}
.1.3.6.1.2.1.31.1.1.1.10.{instance}return int64($1) * 8;Data type: Unsigned Int64, пробовал так же просто Int64.
На выходе периодически получаю странные значения (мега высокие если Unsigned Int64, или минусовые если Int64)


-
Нашёл похожий тред - https://www.netxms.org/forum/oe-oo/eee-to-transformation-script/5/ неизвестно чем дело кончилось?
-
UP... проблема актуальна, один единственный роутер на котором как раз хотелось бы снимать загрузку интерфейсов и такие значения все графики портят, заметил так же что сильно высокие значения чаще всего проскакивают на Out интерфейсе. Если убирать Average delta per second - реальные значения одинаковые.
-
-
@kozlov_ao said in Высокие или низкие значения в history:
Сделайте по 2 DCI для каждого вида изерений. В одном - с дельтой, а во втором - без (просто данные).
При возникновении косяка в дельте - посмотрите, что указано в простом.А в принципе - я быфильтровал мега высокие и низкие значения.
Делал первым делом же, в простом всё в порядке, скриншот приложил.
Как фильтровать? Alex предлагал такой скрипт:
if ($1 < 0 || $1 > 100000) abort;В итоге у меня получилось так:
return int64($1) * 8; if ($1 < 0 || $1 > 100000) abort;Как правильно нужно это вписать чтобы работало?


-
-
@kozlov_ao said in Высокие или низкие значения в history:
Как вариант, можно так:
val = int64($1) * 8; if (val < 0 || val > 10000000) abort; return val;Спасибо. Рабочий вариант для 10G.
val = int64($1) * 8; if (val < 0 || val > 100000000000) { abort; } return val; -
-
Я использую такой transformation script, спасает также от всплесков при перезагрузке устройств и обнулении счетчиков:
value = $1 * 8; p = rindex ($dci->name,".") + 1; id = substr($dci->name, p); i = GetInterfaceObject($node, id); if (i != null && i->speed>0 && i->speed < value ) return null; return value;или для интерфейсов 10G
value = int64($1) * 8L; p = rindex ($dci->name,".") + 1; id = substr($dci->name, p); i = GetInterfaceObject($node, id); if (i != null && i->speed>0 && i->speed < value ) return null; return value;Но очень нехватает шаблонов для создания DCI, есть стандартные шаблоны для интерфейсов bytes, bits, packets, error, нужен функционал добавления в шаблоны своих transformation script, иначе при создании dci приходится вручную лезть в data collection conf и добавлять код. Это очень сильно раздражает при необходимости быстро создать счетчик.
Вот подобная тема:
https://www.netxms.org/forum/e-eoe-o-koaot-netxms/dci-maximum-value/ -
@harun said in Высокие или низкие значения в history:
Я использую такой transformation script, спасает также от всплесков при перезагрузке устройств и обнулении счетчиков:
value = $1 * 8; p = rindex ($dci->name,".") + 1; id = substr($dci->name, p); i = GetInterfaceObject($node, id); if (i != null && i->speed>0 && i->speed < value ) return null; return value;или для интерфейсов 10G
value = int64($1) * 8L; p = rindex ($dci->name,".") + 1; id = substr($dci->name, p); i = GetInterfaceObject($node, id); if (i != null && i->speed>0 && i->speed < value ) return null; return value;Но очень нехватает шаблонов для создания DCI, есть стандартные шаблоны для интерфейсов bytes, bits, packets, error, нужен функционал добавления в шаблоны своих transformation script, иначе при создании dci приходится вручную лезть в data collection conf и добавлять код. Это очень сильно раздражает при необходимости быстро создать счетчик.
Вот подобная тема:
https://www.netxms.org/forum/e-eoe-o-koaot-netxms/dci-maximum-value/Больше спасибо! Только вот вчера когда общался с Виктором он написал следующее:
[15.08.2016 11:20:42] Victor Kirhenshtein: return null только для скриптов сбора данных уимеет смысл, не для трансформаций
[15.08.2016 11:20:49] Victor Kirhenshtein: надо использовать abort
[15.08.2016 11:21:28] Victor Kirhenshtein: при реальной трансформации все будет как надо
[15.08.2016 11:21:42] Victor Kirhenshtein: скрипт прервется, событие ошибки скрипта не будет создаваться
[15.08.2016 11:22:01] Victor Kirhenshtein: и сбор данных не пройдет, значения не будетТо есть лучше всё таки abort видимо?
-
-
-
-
-
@kozlov_ao said in Высокие или низкие значения в history:
Все логично.. abort прерывает операцию, а null - обнуляет показатель.
Ради спортивного интереса - попробуй return false;Логично то логично, но только у меня чтоли такая проблема или никто показания с роутеров не снимает в NetXMS? Простая задача вылилась в геморрой какой то.
-
-
-
-
В общем проблема не решилась, использую в итоге такой скрипт от Harun отсюда
Для 10G
value = int64($1) * 8L; p = rindex ($dci->name,".") + 1; id = substr($dci->name, p); i = GetInterfaceObject($node, id); if (i != null && i->speed>0 && i->speed < value ) { abort; } else { return value; }Для 1G
value = $1 * 8; p = rindex ($dci->name,".") + 1; id = substr($dci->name, p); i = GetInterfaceObject($node, id); if (i != null && i->speed>0 && i->speed < value ) { abort; } else { return value; }Спустя 1-2 недели смотрю в last values на роутере:
Смысла в таком мониторинге не вижу ни какого, на одном из DCI вообще за 09.09.16 висит ERROR до сих пор. И какую информативность это мне принесёт и пользу ?


-
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


