NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: kozlov_ao on April 20, 2012, 06:09:04 PM

Title: Получение значений от стандартных счетчиков Win
Post by: kozlov_ao on April 20, 2012, 06:09:04 PM
Приветствую!
Как можно получить значения счетчиков, имеющихся в Windows?
Необходимо мониторить некоторые параметры SQL сервера. В стандартной оболочке мониторинга есть параметры, типа: SQLServer:статистика SQL -> Re-Compilations/sec.
Вот как-бы заполучить это, и подобные значения?
Версия агента и сервера 1.2.0
Title: Re: Получение значений от стандартных счетчиков Win
Post by: Victor Kirhenshtein on April 20, 2012, 09:13:38 PM
U agenta est' parametr PDH.CounterValue, kotorij pozvoljaet poluchit' znachenie ljubogo PDH schetchika. Naprimer:

PDH.CounterValue(\Server\Bytes Total/sec)

Est' schetchiki, kotorie trebujut minimum dva izmerenija dlja poluchenija znachenija, naprimer \Processor(_Total)\% User Time. Togda nado ukazivat' vtorim argumentom 1, chtobi agent vzjal dva znachenija:

PDH.CounterValue("\Processor(_Total)\% User Time",1)

Title: Re: Получение значений от стандартных счетчиков Win
Post by: kozlov_ao on May 09, 2012, 11:55:04 AM
Гм.. Все вроде получилось... Но винда, чтоб ей..
В русской версии винды и некоторые названия параметров (например \Process (eng) -> \Процесс (rus)) передаются по-русски (это видно в nxget) :(
Спрашивается, ну кто так делает??!!  >:(
В английской версии все ОК.
Можно как-то обойти этот момент? или надо что-то в винде крутить?
Title: Re: Получение значений от стандартных счетчиков Win
Post by: Victor Kirhenshtein on May 10, 2012, 12:24:47 AM
В WinPerf субагенте есть возможность использования английских названий счетчиков, но только для параметров, определенных в субагенте (через Counter =). :( Я добавлю в TODO сделать то-же самое для PDH.CounterValue.
Title: Re: Получение значений от стандартных счетчиков Win
Post by: kozlov_ao on May 10, 2012, 05:07:04 PM
Можно подробнее, как это сделать?
Как получить список предопределенных счетчиков?
Title: Re: Получение значений от стандартных счетчиков Win
Post by: Victor Kirhenshtein on May 15, 2012, 10:14:03 AM
Для этого надо менять код субагента, чтобы PDH.GetCounterValue делал перевод названий. А вообще английские названия счетчиков лежат в registry: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009.
Title: Re: Получение значений от стандартных счетчиков Win
Post by: kozlov_ao on May 18, 2012, 08:54:55 AM
путь реестра знаю, но если локаль в винде русская, она чхать хотела на английские счетчики.
Ланн, буду ковыряться. Если что, отпишусь..
Title: Re: Получение значений от стандартных счетчиков Win
Post by: kozlov_ao on May 18, 2012, 04:03:26 PM
Молю о помощи...
Как сделать вот это: "Для этого надо менять код субагента, чтобы PDH.GetCounterValue делал перевод названий" ??? всю голову сломал...как, где и на что его поменять?
Порылся в форумах-ничего не нашел... в документации и в wiki тоже пусто...
Title: Re: Получение значений от стандартных счетчиков Win
Post by: Victor Kirhenshtein on May 24, 2012, 10:41:06 PM
Это имелось ввиду, что мне надо менять :) Я постараюсь сделать в 1.2.1 возможность использовать английские названия счетчиков.
Title: Re: Получение значений от стандартных счетчиков Win
Post by: kozlov_ao on May 25, 2012, 08:38:06 AM
Аааа.... вон оно как... :)
Буду ждать. А-то реально с русской виндой засада...
Title: Re: Получение значений от стандартных счетчиков Win
Post by: kozlov_ao on May 25, 2012, 02:46:55 PM
Хорошо, а как сделать вот это:
QuoteВ WinPerf субагенте есть возможность использования английских названий счетчиков, но только для параметров, определенных в субагенте (через Counter =).
Как тут поступить?
Пример:
Counter=AverageDiskWriteQueueLenght:"\PhysicalDisk(2 T:)\Avg. Disk Write Queue Length":60:A:INT:"Average Disk T: Write Queue Length"
Что и куда дополнительно писать?
Title: Re: Получение значений от стандартных счетчиков Win
Post by: Victor Kirhenshtein on May 25, 2012, 05:56:47 PM
Агент должен пытаться перевести название счетчика автоматически.
Title: Re: Получение значений от стандартных счетчиков Win
Post by: kozlov_ao on May 25, 2012, 07:05:46 PM
Т.е. надо написать просто английские названия, и по теории, все должно заработать? :)
завтра попробую.. :)
Title: Re: Получение значений от стандартных счетчиков Win
Post by: kozlov_ao on May 27, 2012, 07:21:47 PM
Да, действительно, параметры перечисленные через Counter=, отрабатываются нормально.... Очень ждем возможности делать так-же и для PDH.GetCounterValue...
Title: Re: Получение значений от стандартных счетчиков Win
Post by: Victor Kirhenshtein on May 28, 2012, 11:29:25 AM
Я собрал и выложил инсталлятор для агента 1.2.1 - попробуйте работает ли в нем PDH.GetCounterValue с английскими названиями. Скачать можно по этим ссылкам:

https://www.netxms.org/download/agent_packages/nxagent-1.2.1.exe (https://www.netxms.org/download/agent_packages/nxagent-1.2.1.exe)
https://www.netxms.org/download/agent_packages/nxagent-1.2.1-x64.exe (https://www.netxms.org/download/agent_packages/nxagent-1.2.1-x64.exe)
Title: Re: Получение значений от стандартных счетчиков Win
Post by: kozlov_ao on May 28, 2012, 12:15:53 PM
Супер!
Работает! Правда проверил только на x64. x86 нигде нету..
Виктор, ты волшебник! :)
Title: Re: Получение значений от стандартных счетчиков Win
Post by: kozlov_ao on June 21, 2012, 11:04:40 AM
Приветствую!
Снова возвращаюсь к теме использования английских счетчиков в русской винде.
Такое действие отрабатывается нормально:
monitorsrv# nxget 192.168.42.136 "PDH.CounterValue(\System\Processor Queue Length)"
0

а вот эти:
monitorsrv# nxget -l 192.168.42.136 "PDH.ObjectCounters(Processor)"
500: Internal error
monitorsrv# nxget -l 192.168.42.136 "PDH.ObjectInstances(Processor)"
500: Internal error

как видно нет :)
Title: Re: Получение значений от стандартных счетчиков Win
Post by: Victor Kirhenshtein on June 21, 2012, 10:28:16 PM
Да, забыл там вставить трансляцию имен похоже. Поправлю.
Title: Re: Получение значений от стандартных счетчиков Win
Post by: kozlov_ao on June 29, 2012, 07:58:21 PM
а получится ли это сделать в 1.2.2?
или по-раньше :)
и где делаются изменения? в агенте, или в nxget?
Title: Re: Получение значений от стандартных счетчиков Win
Post by: Victor Kirhenshtein on June 29, 2012, 08:21:21 PM
В 1.2.2 получится думаю. Главное - не забыть :)

P.S. Изменения делаются в агенте.
Title: Re: Получение значений от стандартных счетчиков Win
Post by: kozlov_ao on June 29, 2012, 09:52:01 PM
Спасибо! Буду ждать... а то использовать толком не получается :(