Нужно на хосте Windows мониторить потребление ресурсов определёнными программами. Допустим есть база данных PostgreSQL, в диспетчере задач вижу несколько строк postgres.exe, потому что программа - многопотоковая, то есть нужно просуммировать число потребляемой памяти и процент загрузки CPU для всех потоков и получить 2 числа, которые я могу забирать по snmp системой мониторинга. Есть ПО, которое такое умеет делать, желательно бесплатное?
В диспетчере задач винды отображаются только процессы.
Количество потоков в процессе можно получить на закладке Details добавив дополнительный столбец Threads (не помню, по умолчанию кажется он не отображается). Добавлять столбцы можно, щелкнув ПКМ на заголовке таблицы и выбрав "Select columns" (у меня английская винда).
Но это действие не заставит диспетчер задач отображать потоки отдельными строками в таблице.
Думаю, количество потребляемой памяти можно получить скриптом на cmd или power shell. В cmd можно посмотреть в сторону команды tasklist, больше информации, скорее всего можно получить, с помощью утилиты wmic. По power shell ничего не скажу, но наверняка там возможностей еще больше. И все это доступно из коробки.
вижу несколько строк postgres.exe, потому что программа - многопотоковая,
Нет - это одна программа запустила несколько процессов. Добавьте колонку по PID и посмотрите - они там будут разные. Для программ родом и Unix (а также - Linux и прочего POSIX) - это вообще штатный режим работы, там издавна под это дело специальный системный вызов fork есть, который запускает копию текущего процесса в другом процессе.
Искатель как уже сказали: напишите простенький скрипт на чём угодно - cmd, повершелл, баш, да хоть на дотнете или даже питоне. Ну или можно взять любой скриптовый автоматизатор.
powershell
Пишешь в две строки скрипт, который собственно получает от ОС информцию о нагрузке и суммирует.
Агент того же заббикса будет этот скрипт вызывать и дальше куда-то сохранять.
Минус только в том что pwsh не мгновенно запускается и сам по себе сколько-то жрёт.
Вообще, если ты уже используешь какой-нибудь prometheus для метрик, то можно поискать какой-нибудь готовый экспортер для постгреса, чтобы не велосипедить.
У меня нет заббикса, у меня MikroTik Dude, он умеет в snmp.
В Winows Server встроенный snmp-агент есть, он даже информацию о процессах передаёт, но как из этой простыни вычислить данные конкретного процесса я даже думать не берусь, ищу готовое решение, которое наверняка существует.
Василий Банников, это система мониторинга для маленьких сетей, ставится на маршрутизатор MikroTik в виде модуля, а потом к ней подключаешься клиентом и в нём уже: блок-схемы, мониторинг и графики, умеет забирать произвольные данные по snmp.
В Windows, вроде как, до сих пор сохранился штатный компонент SNMP Service (см., к примеру, здесь).
А вообще, штатными для мониторинга именно Windows являются WMI и Performance Monitor API. И всческие универсальные программы мониторинга обычно умеют их использовать.
Да, я пробовал активировать его и получать с него данные удалённо. И я не хочу парсить выдаваемую им простыню из Dude, потому как это практически нереально. Хочу штатный snmp service заменить сторонним сервисом, таким где можно было данные о потреблении памяти тем же postgres.exe повесить на определённый OID.