This code allows you to retrieve the information for Virtual Server’s performance counters from C#. It reads both the Virtual Machines and Virtual Processors counters.
1: PerformanceCounterCategory vmCat =
new PerformanceCounterCategory("Virtual Machines");
2: PerformanceCounterCategory vpCat =
new PerformanceCounterCategory("Virtual Processors");
3: string[] vmInstances = vmCat.GetInstanceNames();
4: string[] vpInstances = vpCat.GetInstanceNames();
5:
6: List<PerformanceCounter> countersList =
new List<PerformanceCounter>();
7:
8: foreach (string instance in vmInstances){
9: PerformanceCounter[] counters =
vmCat.GetCounters(instance);
10: foreach (PerformanceCounter pc in counters)
11: {
12: countersList.Add(pc);
13: }
14:
15: foreach (string instance in vpInstances)
16: {
17: PerformanceCounter[] counters =
vpCat.GetCounters(instance);
18: foreach (PerformanceCounter pc in counters)
19: {
20: countersList.Add(pc);
21: }
22: }
23:
24: while (true)
25: {
26: System.Threading.Thread.Sleep(1000);
27: foreach (PerformanceCounter pc in countersList)
28: {
29: Console.WriteLine(
"{0}:\"{1}\" Counter:{2} Value:{3}",
pc.CategoryName, pc.InstanceName,
pc.CounterName, pc.NextValue());
30: }
31: }