現在インストールされているマシンのみのリソースを常に監視するエージェント Windows サービスを開発する必要があります。監視対象のリソースは、プロセッサの状態、SNMP トラップ、SQL Server の状態などです。
これは、WMI または Perfmon を使用して .NET でプログラムによって実現できることがわかりました。
どちらを使っているかわかりません。長所と短所、そしてどのような状況で各オプションを選択する必要があるかを探しています。
現在インストールされているマシンのみのリソースを常に監視するエージェント Windows サービスを開発する必要があります。監視対象のリソースは、プロセッサの状態、SNMP トラップ、SQL Server の状態などです。
これは、WMI または Perfmon を使用して .NET でプログラムによって実現できることがわかりました。
どちらを使っているかわかりません。長所と短所、そしてどのような状況で各オプションを選択する必要があるかを探しています。
通常、Perform でカウンターが利用できる場合はそこから始めますが、少なくとも Perform と WMI の両方を使用することになります。例として:
マシンで使用されている合計メモリの割合を監視する場合は、Perfmon カウンター "Memory,Available Kbytes" を使用します。また、次の行に沿って WMI を使用して、マシンの合計メモリを取得します。
new ManagementObjectSearcher("root\\CIMV2", "select * from win32_computersystem")
次に、totalphysicalmemory プロパティを totalKBytes という変数に格納します。
使用されているメモリの割合を計算したいときはいつでも、計算を行います:
(1.0f - (counter.NextValue() / totalKBytes)) * 100.0f
結論は、Perform と WMI のどちらを選択するかで行き詰まらないようにすることです。少なくとも両方が必要になります。実際に監視を開始すると、レジストリからの読み取り、カスタム スクリプトの実行、ファイル システムの読み取りなどを行うこともあるでしょう。