Приветствую!
Как можно получить значения счетчиков, имеющихся в Windows?
Необходимо мониторить некоторые параметры SQL сервера. В стандартной оболочке мониторинга есть параметры, типа: SQLServer:статистика SQL -> Re-Compilations/sec.
Вот как-бы заполучить это, и подобные значения?
Версия агента и сервера 1.2.0
			
			
			
				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)
			
			
			
				Гм.. Все вроде получилось... Но винда, чтоб ей..
В русской версии винды и некоторые названия параметров (например \Process (eng) -> \Процесс (rus)) передаются по-русски (это видно в nxget) :(
Спрашивается, ну кто так делает??!!  >:(
В английской версии все ОК.
Можно как-то обойти этот момент? или надо что-то в винде крутить?
			
			
			
				В WinPerf субагенте есть возможность использования английских названий счетчиков, но только для параметров, определенных в субагенте (через Counter =). :( Я добавлю в TODO сделать то-же самое для PDH.CounterValue.
			
			
			
				Можно подробнее, как это сделать?
Как получить список предопределенных счетчиков?
			
			
			
				Для этого надо менять код субагента, чтобы PDH.GetCounterValue делал перевод названий. А вообще английские названия счетчиков лежат в registry: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009.
			
			
			
				путь реестра знаю, но если локаль в винде русская, она чхать хотела на английские счетчики.
Ланн, буду ковыряться. Если что, отпишусь..
			
			
			
				Молю о помощи...
Как сделать вот это: "Для этого надо менять код субагента, чтобы PDH.GetCounterValue делал перевод названий" ??? всю голову сломал...как, где и на что его поменять?
Порылся в форумах-ничего не нашел... в документации и в wiki тоже пусто...
			
			
			
				Это имелось ввиду, что мне надо менять :) Я постараюсь сделать в 1.2.1 возможность использовать английские названия счетчиков.
			
			
			
				Аааа.... вон оно как... :)
Буду ждать. А-то реально с русской виндой засада...
			
			
			
				Хорошо, а как сделать вот это:
QuoteВ WinPerf субагенте есть возможность использования английских названий счетчиков, но только для параметров, определенных в субагенте (через Counter =).
Как тут поступить?
Пример:
Counter=AverageDiskWriteQueueLenght:"\PhysicalDisk(2 T:)\Avg. Disk Write Queue Length":60:A:INT:"Average Disk T: Write Queue Length"Что и куда дополнительно писать?
			
				Агент должен пытаться перевести название счетчика автоматически.
			
			
			
				Т.е. надо написать просто английские названия, и по теории, все должно заработать? :)
завтра попробую.. :)
			
			
			
				Да, действительно, параметры перечисленные через Counter=, отрабатываются нормально.... Очень ждем возможности делать так-же и для PDH.GetCounterValue...
			
			
			
				Я собрал и выложил инсталлятор для агента 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)
			
			
			
				Супер!
Работает! Правда проверил только на x64. x86 нигде нету..
Виктор, ты волшебник! :)
			
			
			
				Приветствую!
Снова возвращаюсь к теме использования английских счетчиков в русской винде.
Такое действие отрабатывается нормально: 
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
как видно нет :)
			
			
			
				Да, забыл там вставить трансляцию имен похоже. Поправлю.
			
			
			
				а получится ли это сделать в 1.2.2?
или по-раньше :)
и где делаются изменения? в агенте, или в nxget?
			
			
			
				В 1.2.2 получится думаю. Главное - не забыть :)
P.S. Изменения делаются в агенте.
			
			
			
				Спасибо! Буду ждать... а то использовать толком не получается :(