Люблю я NetXMS, но найти как что-то сделать иногда невозможно.
Есть сервер, на нем SQL. Надо снимать размер баз.
Виндовый счетчик
\SQLServer:Databases(*)\Data File(s) Size (KB) 
* - это список баз по которым надо создать DCI для каждой свой
Как должна выглядеть закладка "Instance discovery"?
method
Object name
script
			
			
			
				Это должно выглядеть примерно так 
			
			
			
				Огромное спасибо
А как сделать, чтобы _Total не попал
Сам сообразил
if ($1 != "_Total") {
  return %(true, $1, descr);
}
return false;
А вот как сделать, чтобы не показывал базы меньше 1ГБ...
			
			
			
				Нам нужно будет использовать метод readAgentParameter, чтобы получить значение, например, так:
v = readAgentParameter( 'PDH.CounterValue("\SQLServer:Databases(' .. $1 .. )'\Data File(s) Size (KB)",0)' );
if (v > 1000000000) return true; else return false;
UPD: на самом деле так:
v = readAgentParameter( 'PDH.CounterValue("\SQLServer:Databases(' .. $1 .. ')\Data File(s) Size (KB)",0)' );
if (v > 1000000000) return true; else return false;
			
			
			
				Quote from: uldis on September 20, 2024, 04:23:07 PMНам нужно будет использовать метод readAgentParameter, чтобы получить значение, например, так:
v = readAgentParameter( 'PDH.CounterValue("\SQLServer:Databases(' .. $1 .. )'\Data File(s) Size (KB)",0)' );
if (v > 1000000000) return true; else return false;
Тут явно что-то не так, как минимум с кавычками. Парсер в таком виде дает сразу ошибку
			
 
			
			
				Разобрался с кавычками, пришлось через промежуточную переменную
Полностью так (показывать только базы больше 10GB и без базы _Total):
t = "\SQLServer:Databases(".. $1 ..")\Data File(s) Size (KB)";
v = $node->readAgentParameter('PDH.CounterValue('..'"'.. t .. '")');
if ($1 != "_Total" and v > 10000000) {
  return %(true, $1, descr);
}
return false;
			
			
			
				Quote from: Akira on September 23, 2024, 08:42:35 AMТут явно что-то не так, как минимум с кавычками. Парсер в таком виде дает сразу ошибку 
да, апостроф со скобочкой не в том порядке были :)