NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: Akira on September 18, 2024, 10:01:31 AM

Title: Instance discovery для Windows Performance counters, помогите
Post by: Akira on September 18, 2024, 10:01:31 AM
Люблю я NetXMS, но найти как что-то сделать иногда невозможно.

Есть сервер, на нем SQL. Надо снимать размер баз.

Виндовый счетчик
\SQLServer:Databases(*)\Data File(s) Size (KB)
* - это список баз по которым надо создать DCI для каждой свой

Как должна выглядеть закладка "Instance discovery"?
method
Object name
script
Title: Re: Instance discovery для Windows Performance counters, помогите
Post by: uldis on September 19, 2024, 03:52:21 PM
Это должно выглядеть примерно так
Title: Re: Instance discovery для Windows Performance counters, помогите
Post by: Akira on September 19, 2024, 04:54:20 PM
Огромное спасибо
А как сделать, чтобы _Total не попал

Сам сообразил

if ($1 != "_Total") {
  return %(true, $1, descr);
}
return false;

А вот как сделать, чтобы не показывал базы меньше 1ГБ...
Title: Re: Instance discovery для Windows Performance counters, помогите
Post by: 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;


UPD: на самом деле так:

v = readAgentParameter( 'PDH.CounterValue("\SQLServer:Databases(' .. $1 .. ')\Data File(s) Size (KB)",0)' );
if (v > 1000000000) return true; else return false;
Title: Re: Instance discovery для Windows Performance counters, помогите
Post by: Akira on September 23, 2024, 08:42:35 AM
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;
Тут явно что-то не так, как минимум с кавычками. Парсер в таком виде дает сразу ошибку
Title: Re: Instance discovery для Windows Performance counters, помогите
Post by: Akira on September 23, 2024, 09:16:56 AM
Разобрался с кавычками, пришлось через промежуточную переменную

Полностью так (показывать только базы больше 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;
Title: Re: Instance discovery для Windows Performance counters, помогите
Post by: Filipp Sudanov on September 27, 2024, 11:28:54 AM
Quote from: Akira on September 23, 2024, 08:42:35 AMТут явно что-то не так, как минимум с кавычками. Парсер в таком виде дает сразу ошибку
да, апостроф со скобочкой не в том порядке были :)