Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add hyperv #150

Merged
merged 8 commits into from
Apr 18, 2018
Merged

add hyperv #150

merged 8 commits into from
Apr 18, 2018

Conversation

iyacontrol
Copy link
Contributor

add hyperv for wmi_exporter.
for hyperv, it is hard to get metrics from a remote collector, so i think it is right way to add hyperv for wmi_exporter.

@carlpett
Copy link
Collaborator

Hi @iyacontrol
Thanks for the PR! I'll try to do a thorough review later tonight, but from a quick skim, it would be great if you could have a look at the metric types (they are all gauges right now).
Also, please go over the metric naming and ensure it matches the best practices document. Specifically, the "persec" suffix is actually misleading when using the rawdata classes - the values are counters, not rates as the name would suggest.

@iyacontrol
Copy link
Contributor Author

iyacontrol commented Jan 24, 2018

hi,@carlpett
1: I review the code. update three metrics from guages to counter.
2: for persec , in fact, it is actually guages. For example:

BroadcastPacketsSentPersec: prometheus.NewDesc( prometheus.BuildFQName(Namespace, "switch", "broadcast_packets_sent_persec"), "This counter represents the total number of broadcast packets sent **per second** by the virtual switch", nil, nil, )

i kooks like the counter, note the bolded code. but it is is actually misleading. so I have changed some metrics

BroadcastPacketsSentPersec: prometheus.NewDesc( prometheus.BuildFQName(Namespace, "switch", "broadcast_packets_sent_total_persec"), "This represents the total number of broadcast packets sent **per second** by the virtual switch", nil, nil, )

@carlpett
Copy link
Collaborator

Hi,
Sorry about dropping this. Regarding PerSec, could you verify that the returned data is actually a gauge? So far, I don't think we have ever encountered a PerfRaw class having gauges for XyzPerSec.
The documentation string is actually for the processed data as visualized in Perfmon, not the raw data... So, quite confusing.

@EYEVO
Copy link

EYEVO commented Feb 26, 2018

Have been looking for this, would be great if hyperv was added.

@carlpett
Copy link
Collaborator

@EYEVO Since @iyacontrol hasn't responded, perhaps you could have a look at the returned data to see if the *persec metrics are counters or gauges? I don't have a HyperV server handy to check myself.

@EYEVO
Copy link

EYEVO commented Mar 1, 2018

So far what i have found that all the hyperv values(that i have tested) seem to go up so that would mean counters.
I have also been looking at the documentation from Microsoft and i can't seem to find a clear answer that says there only counters or gauge's.
Iff there are any Powershell commands you like me to run just ask. Hope that i can be of help.

@carlpett
Copy link
Collaborator

carlpett commented Mar 8, 2018

@EYEVO Thanks!
I figured out a not-so-pretty blob of PS to get the types (broke it over multiple lines here for readability...):

Get-WmiObject ClassNameHere |`
 Select -ExpandProperty Properties |`
 Where Name -like "*PerSec" |`
 Foreach { New-Object psobject -Property @{`
  Name=$_.Name; `
  CounterType=($_.Qualifiers | ? Name -eq "CounterType").Value; `
 }`
}

The types are documented here: https://msdn.microsoft.com/en-us/library/aa389383(v=vs.85).aspx.
PERF_COUNTER_COUNTER and PERF_COUNTER_BULK_COUNT are the counter types we most often see. Are all the Hyper-V ones this type?

@tunaman
Copy link
Contributor

tunaman commented Apr 16, 2018

Another vote for this, anything I can do to help?

@carlpett
Copy link
Collaborator

@tunaman Thanks! If you could try the powershell command above, that would be helpful so we can get the types right. Also, if you have the possibility to run the build from this PR on a machine with Hyper-V and check that the /metrics output looks good, that'd be great!

@tunaman
Copy link
Contributor

tunaman commented Apr 16, 2018

Will do, but ClassNameHere will probably have to replaced by something else? I'll see if I can run that build on a server somewhere.

@tunaman
Copy link
Contributor

tunaman commented Apr 16, 2018

Also would it be possible to provide a build with this PR? I'm currently on a Mac and I'm running in to cross (go) compile issues as it seams.

@carlpett
Copy link
Collaborator

Ah, of course, sorry. Yes, ClassNameHere would be each of the classes that the PR touches.
You can download the artifacts for a pull request from AppVeyor, in this case here: https://ci.appveyor.com/project/martinlindhe/wmi-exporter/build/387/job/kku4qb7a370fpm6d/artifacts.

Thanks for the help!

@tunaman
Copy link
Contributor

tunaman commented Apr 16, 2018

Thanks for the build! Executing the command .\wmi_exporter.exe --collectors.enabled "hyperv" shows the following errors.

An error has occurred during metrics gathering:

47 error(s) occurred:
* collected metric wmi_vid_physical_pages_allocated gauge:<value:4.098048e+06 >  was collected before with the same name and label values
* collected metric wmi_vid_preferred_numa_node_index gauge:<value:0 >  was collected before with the same name and label values
* collected metric wmi_vid_remote_physical_pages gauge:<value:0 >  was collected before with the same name and label values
* collected metric wmi_vid_physical_pages_allocated gauge:<value:4.098048e+06 >  was collected before with the same name and label values
* collected metric wmi_vid_preferred_numa_node_index gauge:<value:0 >  was collected before with the same name and label values
* collected metric wmi_vid_remote_physical_pages gauge:<value:0 >  was collected before with the same name and label values
* collected metric wmi_vid_physical_pages_allocated gauge:<value:4.098048e+06 >  was collected before with the same name and label values
* collected metric wmi_vid_preferred_numa_node_index gauge:<value:1 >  was collected before with the same name and label values
* collected metric wmi_vid_remote_physical_pages gauge:<value:0 >  was collected before with the same name and label values
* collected metric wmi_vid_physical_pages_allocated gauge:<value:4.098048e+06 >  was collected before with the same name and label values
* collected metric wmi_vid_preferred_numa_node_index gauge:<value:1 >  was collected before with the same name and label values
* collected metric wmi_vid_remote_physical_pages gauge:<value:0 >  was collected before with the same name and label values
* collected metric wmi_vid_physical_pages_allocated gauge:<value:1.050632e+06 >  was collected before with the same name and label values
* collected metric wmi_vid_preferred_numa_node_index gauge:<value:0 >  was collected before with the same name and label values
* collected metric wmi_vid_remote_physical_pages gauge:<value:0 >  was collected before with the same name and label values
* collected metric wmi_vid_physical_pages_allocated gauge:<value:4.098048e+06 >  was collected before with the same name and label values
* collected metric wmi_vid_preferred_numa_node_index gauge:<value:1 >  was collected before with the same name and label values
* collected metric wmi_vid_remote_physical_pages gauge:<value:0 >  was collected before with the same name and label values
* collected metric wmi_vid_physical_pages_allocated gauge:<value:2.0992e+06 >  was collected before with the same name and label values
* collected metric wmi_vid_preferred_numa_node_index gauge:<value:1 >  was collected before with the same name and label values
* collected metric wmi_vid_remote_physical_pages gauge:<value:0 >  was collected before with the same name and label values
* collected metric wmi_vid_physical_pages_allocated gauge:<value:1.050632e+06 >  was collected before with the same name and label values
* collected metric wmi_vid_preferred_numa_node_index gauge:<value:1 >  was collected before with the same name and label values
* collected metric wmi_vid_remote_physical_pages gauge:<value:0 >  was collected before with the same name and label values
* collected metric wmi_switch_broadcast_packets_received_total_persec gauge:<value:5.946085e+06 >  was collected before with the same name and label values
* collected metric wmi_switch_broadcast_packets_sent_total_persec gauge:<value:5.94583e+06 >  was collected before with the same name and label values
* collected metric wmi_switch_bytes_total_persec gauge:<value:2.05784296e+09 >  was collected before with the same name and label values
* collected metric wmi_switch_bytes_received_total_persec gauge:<value:1.068151629e+09 >  was collected before with the same name and label values
* collected metric wmi_switch_bytes_sent_total_persec gauge:<value:9.89691331e+08 >  was collected before with the same name and label values
* collected metric wmi_switch_directed_packets_received_total_persec gauge:<value:470374 >  was collected before with the same name and label values
* collected metric wmi_switch_directed_packets_send_total_persec gauge:<value:426796 >  was collected before with the same name and label values
* collected metric wmi_switch_dropped_packets_incoming_total_persec gauge:<value:35813 >  was collected before with the same name and label values
* collected metric wmi_switch_dropped_packets_outcoming_total_persec gauge:<value:7.1816e+06 >  was collected before with the same name and label values
* collected metric wmi_switch_extensions_dropped_packets_incoming_total_persec gauge:<value:0 >  was collected before with the same name and label values
* collected metric wmi_switch_extensions_dropped_packets_outcoming_total_persec gauge:<value:0 >  was collected before with the same name and label values
* collected metric wmi_switch_learned_mac_addresses counter:<value:4 >  was collected before with the same name and label values
* collected metric wmi_switch_learned_mac_addresses_total_persec gauge:<value:4 >  was collected before with the same name and label values
* collected metric wmi_switch_multicast_packets_received_total_persec gauge:<value:978813 >  was collected before with the same name and label values
* collected metric wmi_switch_multicast_packets_sent_total_persec gauge:<value:110219 >  was collected before with the same name and label values
* collected metric wmi_switch_number_of_send_channel_moves_total_persec gauge:<value:0 >  was collected before with the same name and label values
* collected metric wmi_switch_number_of_vmq_moves_total_persec gauge:<value:0 >  was collected before with the same name and label values
* collected metric wmi_switch_packets_flooded counter:<value:0 >  was collected before with the same name and label values
* collected metric wmi_switch_packets_flooded_total_persec gauge:<value:0 >  was collected before with the same name and label values
* collected metric wmi_switch_packets_total_persec gauge:<value:1.3878117e+07 >  was collected before with the same name and label values
* collected metric wmi_switch_packets_received_total_persec gauge:<value:7.395272e+06 >  was collected before with the same name and label values
* collected metric wmi_switch_purged_mac_addresses counter:<value:0 >  was collected before with the same name and label values
* collected metric wmi_switch_purged_mac_addresses_total_persec gauge:<value:0 >  was collected before with the same name and label values

Now for the powershell script, when using the Win32_PerfRawData_NvspSwitchStats_HyperVVirtualSwitch ClassName I get the following output

PS C:\Users\superme> Get-WmiObject Win32_PerfRawData_NvspSwitchStats_HyperVVirtualSwitch |`
>>  Select -ExpandProperty Properties |`
>>  Where Name -like "*PerSec" |`
>>  Foreach { New-Object psobject -Property @{`
>>   Name=$_.Name; `
>>   CounterType=($_.Qualifiers | ? Name -eq "Count
>>  }`
>> }

Name                                   CounterType
----                                   -----------
BroadcastPacketsReceivedPersec           272696576
BroadcastPacketsSentPersec               272696576
BytesPersec                              272696576
BytesReceivedPersec                      272696576
BytesSentPersec                          272696576
DirectedPacketsReceivedPersec            272696576
DirectedPacketsSentPersec                272696576
DroppedPacketsIncomingPersec             272696576
DroppedPacketsOutgoingPersec             272696576
ExtensionsDroppedPacketsIncomingPersec   272696576
ExtensionsDroppedPacketsOutgoingPersec   272696576
LearnedMacAddressesPersec                272696576
MulticastPacketsReceivedPersec           272696576
MulticastPacketsSentPersec               272696576
NumberofSendChannelMovesPersec           272696576
NumberofVMQMovesPersec                   272696576
PacketsFloodedPersec                     272696576
PacketsPersec                            272696576
PacketsReceivedPersec                    272696576
PacketsSentPersec                        272696576
PurgedMacAddressesPersec                 272696576
BroadcastPacketsReceivedPersec           272696576
BroadcastPacketsSentPersec               272696576
BytesPersec                              272696576
BytesReceivedPersec                      272696576
BytesSentPersec                          272696576
DirectedPacketsReceivedPersec            272696576
DirectedPacketsSentPersec                272696576
DroppedPacketsIncomingPersec             272696576
DroppedPacketsOutgoingPersec             272696576
ExtensionsDroppedPacketsIncomingPersec   272696576
ExtensionsDroppedPacketsOutgoingPersec   272696576
LearnedMacAddressesPersec                272696576
MulticastPacketsReceivedPersec           272696576
MulticastPacketsSentPersec               272696576
NumberofSendChannelMovesPersec           272696576
NumberofVMQMovesPersec                   272696576
PacketsFloodedPersec                     272696576
PacketsPersec                            272696576
PacketsReceivedPersec                    272696576
PacketsSentPersec                        272696576
PurgedMacAddressesPersec                 272696576

If you need anything else let me know!

@carlpett
Copy link
Collaborator

Thanks! Looks like this needs some more work still, then, given the errors.
The Powershell results were as expected, so we need some type changes as well, then.
I don't have a Hyper-V environment for testing, but I might be able to do some "coding in the dark" if you are able to assist with validation?

@tunaman
Copy link
Contributor

tunaman commented Apr 16, 2018

Sure I can definitely help out. Looking forward to the end result.

@carlpett
Copy link
Collaborator

@tunaman Did some cleanup now, which will hopefully improve the results. Binary is available here.
I'm guessing a few things here, especially around label names, so would be great to know if they sound reasonable.
Also, could you share some data about the test machine? Such as, how many VMs, switches and interfaces there are? Just so we're not missing some things that should be labeled but work now because there's only one of them.

Again, thanks for helping out!

@carlpett
Copy link
Collaborator

I'm also fairly sure the guest cpu usages will show pretty strange numbers right now, but some validation there would help a lot

@tunaman
Copy link
Contributor

tunaman commented Apr 17, 2018

Hi,

Unfortunately the latest build crashes when I try to load http://localhost:9182/metrics.

C:\Users\superme\Desktop>.\wmi_exporter.exe --collectors.enabled "hyperv"
�[33mWARN�[0m[0000] Couldn't open registry to determine IIS version:The system cannot find the file specified.  �[33msource�[0m="iis.go:34"
�[36mINFO�[0m[0000] Enabled collectors: hyperv                    �[36msource�[0m="exporter.go:214"
�[36mINFO�[0m[0000] Starting WMI exporter (version=0.3.1-PullRequest.150+6, branch=pull/150/merge, revision=03344bd6881c785b00f9074fb3ad066c5a18d0e4)  �[36msource�[0m="exporter.go:225"
�[36mINFO�[0m[0000] Build context (go=go1.10, user=appvyr-win\appveyor@APPVYR-WIN, date=20180416-19:01:42)  �[36msource�[0m="exporter.go:226"
�[36mINFO�[0m[0000] Starting server on :9182                      �[36msource�[0m="exporter.go:229"
panic: inconsistent label cardinality

goroutine 40 [running]:
github.com/martinlindhe/wmi_exporter/vendor/github.com/prometheus/client_golang/prometheus.MustNewConstMetric(0xc042197b20, 0x1, 0x414a3a2e80000000, 0x0, 0x0, 0x0, 0x0, 0x0)
        c:/gopath/src/github.com/martinlindhe/wmi_exporter/vendor/github.com/prometheus/client_golang/prometheus/value.go:172 +0xb7
github.com/martinlindhe/wmi_exporter/collector.(*HyperVCollector).collectVmSwitch(0xc042222000, 0xc042238060, 0x0, 0x0, 0x0)
        c:/gopath/src/github.com/martinlindhe/wmi_exporter/collector/hyperv.go:871 +0x1d1
github.com/martinlindhe/wmi_exporter/collector.(*HyperVCollector).Collect(0xc042222000, 0xc042238060, 0xb9f540, 0x0)
        c:/gopath/src/github.com/martinlindhe/wmi_exporter/collector/hyperv.go:497 +0x558
main.execute(0xc0420d6088, 0x6, 0x9594e0, 0xc042222000, 0xc042238060)
        c:/gopath/src/github.com/martinlindhe/wmi_exporter/exporter.go:84 +0x85
main.WmiCollector.Collect.func1(0xc042238060, 0xc0421fe090, 0xc0420d6088, 0x6, 0x9594e0, 0xc042222000)
        c:/gopath/src/github.com/martinlindhe/wmi_exporter/exporter.go:64 +0x5a
created by main.WmiCollector.Collect
        c:/gopath/src/github.com/martinlindhe/wmi_exporter/exporter.go:63 +0x110

With regards to the server specs:

  • Dell R740xd
  • windows 2016 DC edition
  • 2 x Intel 8164 Xeon cpu
  • 768GB RAM
  • 2 x Toshiba PX05SVB 960GB SSD
  • 6 x HGST Ultrastar He10 (SAS 12Gbps, 4Kn TCG), 10TB
  • 4 port Intel 10 GBit x550 NIC
  • 2 port Mellanox ConnectX-3 Pro Adapter (RDMA)

Currently we have 9 VM's active.

The Intel nics are connected to 2 switches for redundancy.

@carlpett
Copy link
Collaborator

Ah, I missed a few places where I needed to address the labels... Bit painful to do this without being able to test locally. Oh well, pushed a new version now which hopefully will fix that panic.

@tunaman
Copy link
Contributor

tunaman commented Apr 17, 2018

Latest build looks good!

# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 0
go_gc_duration_seconds{quantile="0.25"} 0
go_gc_duration_seconds{quantile="0.5"} 0
go_gc_duration_seconds{quantile="0.75"} 0
go_gc_duration_seconds{quantile="1"} 0
go_gc_duration_seconds_sum 0
go_gc_duration_seconds_count 0
# HELP go_goroutines Number of goroutines that currently exist.
# TYPE go_goroutines gauge
go_goroutines 10
# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use.
# TYPE go_memstats_alloc_bytes gauge
go_memstats_alloc_bytes 1.138696e+06
# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.
# TYPE go_memstats_alloc_bytes_total counter
go_memstats_alloc_bytes_total 1.138696e+06
# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.
# TYPE go_memstats_buck_hash_sys_bytes gauge
go_memstats_buck_hash_sys_bytes 2921
# HELP go_memstats_frees_total Total number of frees.
# TYPE go_memstats_frees_total counter
go_memstats_frees_total 162
# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata.
# TYPE go_memstats_gc_sys_bytes gauge
go_memstats_gc_sys_bytes 169984
# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use.
# TYPE go_memstats_heap_alloc_bytes gauge
go_memstats_heap_alloc_bytes 1.138696e+06
# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used.
# TYPE go_memstats_heap_idle_bytes gauge
go_memstats_heap_idle_bytes 647168
# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use.
# TYPE go_memstats_heap_inuse_bytes gauge
go_memstats_heap_inuse_bytes 2.33472e+06
# HELP go_memstats_heap_objects Number of allocated objects.
# TYPE go_memstats_heap_objects gauge
go_memstats_heap_objects 7254
# HELP go_memstats_heap_released_bytes_total Total number of heap bytes released to OS.
# TYPE go_memstats_heap_released_bytes_total counter
go_memstats_heap_released_bytes_total 0
# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system.
# TYPE go_memstats_heap_sys_bytes gauge
go_memstats_heap_sys_bytes 2.981888e+06
# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection.
# TYPE go_memstats_last_gc_time_seconds gauge
go_memstats_last_gc_time_seconds 0
# HELP go_memstats_lookups_total Total number of pointer lookups.
# TYPE go_memstats_lookups_total counter
go_memstats_lookups_total 5
# HELP go_memstats_mallocs_total Total number of mallocs.
# TYPE go_memstats_mallocs_total counter
go_memstats_mallocs_total 7416
# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures.
# TYPE go_memstats_mcache_inuse_bytes gauge
go_memstats_mcache_inuse_bytes 88608
# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system.
# TYPE go_memstats_mcache_sys_bytes gauge
go_memstats_mcache_sys_bytes 98304
# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures.
# TYPE go_memstats_mspan_inuse_bytes gauge
go_memstats_mspan_inuse_bytes 29032
# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system.
# TYPE go_memstats_mspan_sys_bytes gauge
go_memstats_mspan_sys_bytes 32768
# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place.
# TYPE go_memstats_next_gc_bytes gauge
go_memstats_next_gc_bytes 4.473924e+06
# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations.
# TYPE go_memstats_other_sys_bytes gauge
go_memstats_other_sys_bytes 715927
# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator.
# TYPE go_memstats_stack_inuse_bytes gauge
go_memstats_stack_inuse_bytes 163840
# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator.
# TYPE go_memstats_stack_sys_bytes gauge
go_memstats_stack_sys_bytes 163840
# HELP go_memstats_sys_bytes Number of bytes obtained by system. Sum of all system allocations.
# TYPE go_memstats_sys_bytes gauge
go_memstats_sys_bytes 4.165632e+06
# HELP wmi_exporter_build_info A metric with a constant '1' value labeled by version, revision, branch, and goversion from which wmi_exporter was built.
# TYPE wmi_exporter_build_info gauge
wmi_exporter_build_info{branch="pull/150/merge",goversion="go1.10",revision="5cace4ae5d2e51a566aee6372ec9a4b695d9f5a8",version="0.3.1-PullRequest.150+6"} 1
# HELP wmi_exporter_collector_duration_seconds wmi_exporter: Duration of a collection.
# TYPE wmi_exporter_collector_duration_seconds gauge
wmi_exporter_collector_duration_seconds{collector="hyperv"} 5.1722894
# HELP wmi_exporter_collector_success wmi_exporter: Whether the collector was successful.
# TYPE wmi_exporter_collector_success gauge
wmi_exporter_collector_success{collector="hyperv"} 1
# HELP wmi_hyperv_health_critical This counter represents the number of virtual machines with critical health
# TYPE wmi_hyperv_health_critical gauge
wmi_hyperv_health_critical 0
# HELP wmi_hyperv_health_ok This counter represents the number of virtual machines with ok health
# TYPE wmi_hyperv_health_ok gauge
wmi_hyperv_health_ok 10
# HELP wmi_hyperv_hypervisor_logical_processors The number of logical processors present in the system
# TYPE wmi_hyperv_hypervisor_logical_processors gauge
wmi_hyperv_hypervisor_logical_processors 104
# HELP wmi_hyperv_hypervisor_virtual_processors The number of virtual processors present in the system
# TYPE wmi_hyperv_hypervisor_virtual_processors gauge
wmi_hyperv_hypervisor_virtual_processors 133
# HELP wmi_hyperv_root_partition_1G_device_pages The number of 1G pages present in the device space of the partition
# TYPE wmi_hyperv_root_partition_1G_device_pages gauge
wmi_hyperv_root_partition_1G_device_pages 0
# HELP wmi_hyperv_root_partition_1G_gpa_pages The number of 1G pages present in the GPA space of the partition
# TYPE wmi_hyperv_root_partition_1G_gpa_pages gauge
wmi_hyperv_root_partition_1G_gpa_pages 711
# HELP wmi_hyperv_root_partition_2M_device_pages The number of 2M pages present in the device space of the partition
# TYPE wmi_hyperv_root_partition_2M_device_pages gauge
wmi_hyperv_root_partition_2M_device_pages 0
# HELP wmi_hyperv_root_partition_2M_gpa_pages The number of 2M pages present in the GPA space of the partition
# TYPE wmi_hyperv_root_partition_2M_gpa_pages gauge
wmi_hyperv_root_partition_2M_gpa_pages 25921
# HELP wmi_hyperv_root_partition_4K_device_pages The number of 4K pages present in the device space of the partition
# TYPE wmi_hyperv_root_partition_4K_device_pages gauge
wmi_hyperv_root_partition_4K_device_pages 0
# HELP wmi_hyperv_root_partition_4K_gpa_pages The number of 4K pages present in the GPA space of the partition
# TYPE wmi_hyperv_root_partition_4K_gpa_pages gauge
wmi_hyperv_root_partition_4K_gpa_pages 550794
# HELP wmi_hyperv_root_partition_address_spaces The number of address spaces in the virtual TLB of the partition
# TYPE wmi_hyperv_root_partition_address_spaces gauge
wmi_hyperv_root_partition_address_spaces 0
# HELP wmi_hyperv_root_partition_attached_devices The number of devices attached to the partition
# TYPE wmi_hyperv_root_partition_attached_devices gauge
wmi_hyperv_root_partition_attached_devices 0
# HELP wmi_hyperv_root_partition_deposited_pages The number of pages deposited into the partition
# TYPE wmi_hyperv_root_partition_deposited_pages gauge
wmi_hyperv_root_partition_deposited_pages 1.204912e+06
# HELP wmi_hyperv_root_partition_device_dma_errors An indicator of illegal DMA requests generated by all devices assigned to the partition
# TYPE wmi_hyperv_root_partition_device_dma_errors gauge
wmi_hyperv_root_partition_device_dma_errors 0
# HELP wmi_hyperv_root_partition_device_interrupt_errors An indicator of illegal interrupt requests generated by all devices assigned to the partition
# TYPE wmi_hyperv_root_partition_device_interrupt_errors gauge
wmi_hyperv_root_partition_device_interrupt_errors 0
# HELP wmi_hyperv_root_partition_device_interrupt_throttle_events The number of times an interrupt from a device assigned to the partition was temporarily throttled because the device was generating too many interrupts
# TYPE wmi_hyperv_root_partition_device_interrupt_throttle_events gauge
wmi_hyperv_root_partition_device_interrupt_throttle_events 0
# HELP wmi_hyperv_root_partition_gpa_space_modifications The rate of modifications to the GPA space of the partition
# TYPE wmi_hyperv_root_partition_gpa_space_modifications counter
wmi_hyperv_root_partition_gpa_space_modifications 0
# HELP wmi_hyperv_root_partition_io_tlb_flush The rate of flushes of I/O TLBs of the partition
# TYPE wmi_hyperv_root_partition_io_tlb_flush counter
wmi_hyperv_root_partition_io_tlb_flush 684818
# HELP wmi_hyperv_root_partition_io_tlb_flush_cost The average time (in nanoseconds) spent processing an I/O TLB flush
# TYPE wmi_hyperv_root_partition_io_tlb_flush_cost gauge
wmi_hyperv_root_partition_io_tlb_flush_cost 5.3832188e+07
# HELP wmi_hyperv_root_partition_physical_pages_allocated The number of timer interrupts skipped for the partition
# TYPE wmi_hyperv_root_partition_physical_pages_allocated gauge
wmi_hyperv_root_partition_physical_pages_allocated 0
# HELP wmi_hyperv_root_partition_preferred_numa_node_index The number of pages present in the GPA space of the partition (zero for root partition)
# TYPE wmi_hyperv_root_partition_preferred_numa_node_index gauge
wmi_hyperv_root_partition_preferred_numa_node_index 0
# HELP wmi_hyperv_root_partition_recommended_virtual_tlb_size The recommended number of pages to be deposited for the virtual TLB
# TYPE wmi_hyperv_root_partition_recommended_virtual_tlb_size gauge
wmi_hyperv_root_partition_recommended_virtual_tlb_size 64
# HELP wmi_hyperv_root_partition_virtual_tlb_flush_entires The rate of flushes of the entire virtual TLB
# TYPE wmi_hyperv_root_partition_virtual_tlb_flush_entires counter
wmi_hyperv_root_partition_virtual_tlb_flush_entires 684822
# HELP wmi_hyperv_root_partition_virtual_tlb_pages The number of pages used by the virtual TLB of the partition
# TYPE wmi_hyperv_root_partition_virtual_tlb_pages gauge
wmi_hyperv_root_partition_virtual_tlb_pages 64
# HELP wmi_hyperv_vcpu_guest_run_time The time spent by the virtual processor in guest code
# TYPE wmi_hyperv_vcpu_guest_run_time gauge
wmi_hyperv_vcpu_guest_run_time{core="0"} 1.92022076988e+11
wmi_hyperv_vcpu_guest_run_time{core="1"} 1.31071508937e+11
wmi_hyperv_vcpu_guest_run_time{core="10"} 1.46005140743e+11
wmi_hyperv_vcpu_guest_run_time{core="100"} 2.96803294891e+11
wmi_hyperv_vcpu_guest_run_time{core="101"} 1.44857958697e+11
wmi_hyperv_vcpu_guest_run_time{core="102"} 1.46397515353e+11
wmi_hyperv_vcpu_guest_run_time{core="103"} 1.76156567655e+11
wmi_hyperv_vcpu_guest_run_time{core="11"} 1.19571982691e+11
wmi_hyperv_vcpu_guest_run_time{core="12"} 2.72054776834e+11
wmi_hyperv_vcpu_guest_run_time{core="13"} 1.09059215896e+11
wmi_hyperv_vcpu_guest_run_time{core="14"} 1.27067826945e+11
wmi_hyperv_vcpu_guest_run_time{core="15"} 1.12240776424e+11
wmi_hyperv_vcpu_guest_run_time{core="16"} 1.29446448336e+11
wmi_hyperv_vcpu_guest_run_time{core="17"} 1.24574303308e+11
wmi_hyperv_vcpu_guest_run_time{core="18"} 1.36478350681e+11
wmi_hyperv_vcpu_guest_run_time{core="19"} 1.16256944427e+11
wmi_hyperv_vcpu_guest_run_time{core="2"} 1.93102401462e+11
wmi_hyperv_vcpu_guest_run_time{core="20"} 1.26175798741e+11
wmi_hyperv_vcpu_guest_run_time{core="21"} 1.15694656624e+11
wmi_hyperv_vcpu_guest_run_time{core="22"} 1.30669648453e+11
wmi_hyperv_vcpu_guest_run_time{core="23"} 1.26511269189e+11
wmi_hyperv_vcpu_guest_run_time{core="24"} 1.4879098411e+11
wmi_hyperv_vcpu_guest_run_time{core="25"} 1.34436368639e+11
wmi_hyperv_vcpu_guest_run_time{core="26"} 3.46896033923e+11
wmi_hyperv_vcpu_guest_run_time{core="27"} 1.10708067956e+11
wmi_hyperv_vcpu_guest_run_time{core="28"} 1.73828418436e+11
wmi_hyperv_vcpu_guest_run_time{core="29"} 1.27584542228e+11
wmi_hyperv_vcpu_guest_run_time{core="3"} 1.10859111756e+11
wmi_hyperv_vcpu_guest_run_time{core="30"} 1.76190312619e+11
wmi_hyperv_vcpu_guest_run_time{core="31"} 1.19379844582e+11
wmi_hyperv_vcpu_guest_run_time{core="32"} 2.23013704124e+11
wmi_hyperv_vcpu_guest_run_time{core="33"} 1.1661797069e+11
wmi_hyperv_vcpu_guest_run_time{core="34"} 1.66872371457e+11
wmi_hyperv_vcpu_guest_run_time{core="35"} 1.31104981957e+11
wmi_hyperv_vcpu_guest_run_time{core="36"} 1.69337408733e+11
wmi_hyperv_vcpu_guest_run_time{core="37"} 1.35050294677e+11
wmi_hyperv_vcpu_guest_run_time{core="38"} 1.78388130132e+11
wmi_hyperv_vcpu_guest_run_time{core="39"} 1.34884088808e+11
wmi_hyperv_vcpu_guest_run_time{core="4"} 1.56606518422e+11
wmi_hyperv_vcpu_guest_run_time{core="40"} 1.57591564554e+11
wmi_hyperv_vcpu_guest_run_time{core="41"} 6.69734722165e+11
wmi_hyperv_vcpu_guest_run_time{core="42"} 2.55850880707e+11
wmi_hyperv_vcpu_guest_run_time{core="43"} 6.65529455642e+11
wmi_hyperv_vcpu_guest_run_time{core="44"} 2.05449027894e+11
wmi_hyperv_vcpu_guest_run_time{core="45"} 1.26469949804e+11
wmi_hyperv_vcpu_guest_run_time{core="46"} 1.82091268427e+11
wmi_hyperv_vcpu_guest_run_time{core="47"} 1.29790995282e+11
wmi_hyperv_vcpu_guest_run_time{core="48"} 2.15734566268e+11
wmi_hyperv_vcpu_guest_run_time{core="49"} 1.39613868222e+11
wmi_hyperv_vcpu_guest_run_time{core="5"} 1.21033629713e+11
wmi_hyperv_vcpu_guest_run_time{core="50"} 1.57554093391e+11
wmi_hyperv_vcpu_guest_run_time{core="51"} 1.61572969852e+11
wmi_hyperv_vcpu_guest_run_time{core="52"} 2.58904528233e+11
wmi_hyperv_vcpu_guest_run_time{core="53"} 1.38870398341e+11
wmi_hyperv_vcpu_guest_run_time{core="54"} 1.5658165776e+11
wmi_hyperv_vcpu_guest_run_time{core="55"} 1.99437869181e+11
wmi_hyperv_vcpu_guest_run_time{core="56"} 2.24813289829e+11
wmi_hyperv_vcpu_guest_run_time{core="57"} 1.39707474205e+11
wmi_hyperv_vcpu_guest_run_time{core="58"} 1.91393199048e+11
wmi_hyperv_vcpu_guest_run_time{core="59"} 1.61889966537e+11
wmi_hyperv_vcpu_guest_run_time{core="6"} 1.69076493534e+11
wmi_hyperv_vcpu_guest_run_time{core="60"} 2.14878504247e+11
wmi_hyperv_vcpu_guest_run_time{core="61"} 1.65392633705e+11
wmi_hyperv_vcpu_guest_run_time{core="62"} 1.6090734794e+11
wmi_hyperv_vcpu_guest_run_time{core="63"} 2.39346639592e+11
wmi_hyperv_vcpu_guest_run_time{core="64"} 2.38184794456e+11
wmi_hyperv_vcpu_guest_run_time{core="65"} 1.84639128314e+11
wmi_hyperv_vcpu_guest_run_time{core="66"} 1.87576424049e+11
wmi_hyperv_vcpu_guest_run_time{core="67"} 2.25658515778e+11
wmi_hyperv_vcpu_guest_run_time{core="68"} 1.56119538393e+11
wmi_hyperv_vcpu_guest_run_time{core="69"} 1.76944077386e+11
wmi_hyperv_vcpu_guest_run_time{core="7"} 1.2128295521e+11
wmi_hyperv_vcpu_guest_run_time{core="70"} 1.56640979351e+11
wmi_hyperv_vcpu_guest_run_time{core="71"} 1.62217517578e+11
wmi_hyperv_vcpu_guest_run_time{core="72"} 1.49476822188e+11
wmi_hyperv_vcpu_guest_run_time{core="73"} 1.68950640577e+11
wmi_hyperv_vcpu_guest_run_time{core="74"} 1.51292426828e+11
wmi_hyperv_vcpu_guest_run_time{core="75"} 1.38174785786e+11
wmi_hyperv_vcpu_guest_run_time{core="76"} 1.63295046004e+11
wmi_hyperv_vcpu_guest_run_time{core="77"} 1.43198629807e+11
wmi_hyperv_vcpu_guest_run_time{core="78"} 1.47290167945e+11
wmi_hyperv_vcpu_guest_run_time{core="79"} 1.67599032442e+11
wmi_hyperv_vcpu_guest_run_time{core="8"} 1.4191738384e+11
wmi_hyperv_vcpu_guest_run_time{core="80"} 1.52844810664e+11
wmi_hyperv_vcpu_guest_run_time{core="81"} 1.52705969275e+11
wmi_hyperv_vcpu_guest_run_time{core="82"} 1.51495133611e+11
wmi_hyperv_vcpu_guest_run_time{core="83"} 1.53464388069e+11
wmi_hyperv_vcpu_guest_run_time{core="84"} 1.57035732806e+11
wmi_hyperv_vcpu_guest_run_time{core="85"} 1.46012993512e+11
wmi_hyperv_vcpu_guest_run_time{core="86"} 1.59516810572e+11
wmi_hyperv_vcpu_guest_run_time{core="87"} 1.49066612556e+11
wmi_hyperv_vcpu_guest_run_time{core="88"} 1.54069829725e+11
wmi_hyperv_vcpu_guest_run_time{core="89"} 1.58271720617e+11
wmi_hyperv_vcpu_guest_run_time{core="9"} 1.23157702211e+11
wmi_hyperv_vcpu_guest_run_time{core="90"} 1.63191987176e+11
wmi_hyperv_vcpu_guest_run_time{core="91"} 1.46077905173e+11
wmi_hyperv_vcpu_guest_run_time{core="92"} 1.33947983354e+11
wmi_hyperv_vcpu_guest_run_time{core="93"} 4.44384456539e+11
wmi_hyperv_vcpu_guest_run_time{core="94"} 1.66493429405e+11
wmi_hyperv_vcpu_guest_run_time{core="95"} 2.35457194048e+11
wmi_hyperv_vcpu_guest_run_time{core="96"} 1.65464877316e+11
wmi_hyperv_vcpu_guest_run_time{core="97"} 1.54007183851e+11
wmi_hyperv_vcpu_guest_run_time{core="98"} 1.52652283497e+11
wmi_hyperv_vcpu_guest_run_time{core="99"} 1.39929228198e+11
# HELP wmi_hyperv_vcpu_hypervisor_run_time The time spent by the virtual processor in hypervisor code
# TYPE wmi_hyperv_vcpu_hypervisor_run_time gauge
wmi_hyperv_vcpu_hypervisor_run_time{core="0"} 4.3760424564e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="1"} 2.2307946188e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="10"} 2.0947842691e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="100"} 2.1993172367e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="101"} 1.6996779526e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="102"} 1.6185032801e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="103"} 2.5190868553e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="11"} 1.3114260512e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="12"} 3.9618224335e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="13"} 1.1834736282e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="14"} 1.4832203227e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="15"} 1.2076819042e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="16"} 1.4939208639e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="17"} 1.3167852756e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="18"} 1.613101565e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="19"} 1.1936449389e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="2"} 2.6223277249e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="20"} 1.4644778074e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="21"} 1.218381283e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="22"} 1.4933262466e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="23"} 1.290503534e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="24"} 1.714082429e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="25"} 1.400495734e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="26"} 7.2011832378e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="27"} 1.2931727662e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="28"} 2.70730677e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="29"} 1.4000086297e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="3"} 1.2210932683e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="30"} 2.6190368877e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="31"} 1.2797988603e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="32"} 4.3440096305e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="33"} 1.3225014898e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="34"} 2.1328166726e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="35"} 1.4010934956e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="36"} 2.292592695e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="37"} 1.4999742414e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="38"} 2.5127384793e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="39"} 1.5309783441e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="4"} 2.2221430362e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="40"} 2.2565872768e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="41"} 1.7112906065e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="42"} 2.372734184e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="43"} 1.6012611051e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="44"} 2.2988545522e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="45"} 1.4466060019e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="46"} 2.8478566306e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="47"} 1.5548821827e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="48"} 2.5043227268e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="49"} 1.9858076814e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="5"} 1.222635458e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="50"} 2.3103119469e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="51"} 2.7661229853e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="52"} 3.1060245982e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="53"} 1.6374865314e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="54"} 2.1778834691e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="55"} 1.602782186e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="56"} 2.793358633e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="57"} 1.4503497128e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="58"} 2.746190515e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="59"} 1.5692290902e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="6"} 2.5765428246e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="60"} 2.2599354464e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="61"} 1.7558100954e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="62"} 2.3265633382e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="63"} 2.1286927057e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="64"} 2.2170602502e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="65"} 2.2958322657e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="66"} 2.0074033765e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="67"} 1.8440515908e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="68"} 1.9040663955e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="69"} 1.6866990283e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="7"} 1.2044260046e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="70"} 1.9653987386e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="71"} 1.5413533425e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="72"} 1.804589305e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="73"} 1.6261019525e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="74"} 1.7714506083e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="75"} 1.5590283255e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="76"} 1.905033661e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="77"} 1.5622123966e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="78"} 1.8636819738e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="79"} 1.7505918598e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="8"} 1.6688538607e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="80"} 1.7997456095e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="81"} 1.6677953562e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="82"} 1.802375845e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="83"} 1.9085714415e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="84"} 1.9062856268e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="85"} 1.6024685999e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="86"} 1.8715744141e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="87"} 1.6161258632e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="88"} 1.79353835e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="89"} 1.7030068278e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="9"} 1.2539815014e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="90"} 1.9937828611e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="91"} 1.5995506712e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="92"} 1.6698140691e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="93"} 2.418830857e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="94"} 1.9506388247e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="95"} 1.928862785e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="96"} 1.9087780839e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="97"} 1.6664136174e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="98"} 1.7606328762e+10
wmi_hyperv_vcpu_hypervisor_run_time{core="99"} 1.6541756431e+10
# HELP wmi_hyperv_vcpu_remote_run_time The time spent by the virtual processor running on a remote node
# TYPE wmi_hyperv_vcpu_remote_run_time gauge
wmi_hyperv_vcpu_remote_run_time{core="0"} 0
wmi_hyperv_vcpu_remote_run_time{core="1"} 0
wmi_hyperv_vcpu_remote_run_time{core="10"} 0
wmi_hyperv_vcpu_remote_run_time{core="100"} 0
wmi_hyperv_vcpu_remote_run_time{core="101"} 0
wmi_hyperv_vcpu_remote_run_time{core="102"} 0
wmi_hyperv_vcpu_remote_run_time{core="103"} 0
wmi_hyperv_vcpu_remote_run_time{core="11"} 0
wmi_hyperv_vcpu_remote_run_time{core="12"} 0
wmi_hyperv_vcpu_remote_run_time{core="13"} 0
wmi_hyperv_vcpu_remote_run_time{core="14"} 0
wmi_hyperv_vcpu_remote_run_time{core="15"} 0
wmi_hyperv_vcpu_remote_run_time{core="16"} 0
wmi_hyperv_vcpu_remote_run_time{core="17"} 0
wmi_hyperv_vcpu_remote_run_time{core="18"} 0
wmi_hyperv_vcpu_remote_run_time{core="19"} 0
wmi_hyperv_vcpu_remote_run_time{core="2"} 0
wmi_hyperv_vcpu_remote_run_time{core="20"} 0
wmi_hyperv_vcpu_remote_run_time{core="21"} 0
wmi_hyperv_vcpu_remote_run_time{core="22"} 0
wmi_hyperv_vcpu_remote_run_time{core="23"} 0
wmi_hyperv_vcpu_remote_run_time{core="24"} 0
wmi_hyperv_vcpu_remote_run_time{core="25"} 0
wmi_hyperv_vcpu_remote_run_time{core="26"} 0
wmi_hyperv_vcpu_remote_run_time{core="27"} 0
wmi_hyperv_vcpu_remote_run_time{core="28"} 0
wmi_hyperv_vcpu_remote_run_time{core="29"} 0
wmi_hyperv_vcpu_remote_run_time{core="3"} 0
wmi_hyperv_vcpu_remote_run_time{core="30"} 0
wmi_hyperv_vcpu_remote_run_time{core="31"} 0
wmi_hyperv_vcpu_remote_run_time{core="32"} 0
wmi_hyperv_vcpu_remote_run_time{core="33"} 0
wmi_hyperv_vcpu_remote_run_time{core="34"} 0
wmi_hyperv_vcpu_remote_run_time{core="35"} 0
wmi_hyperv_vcpu_remote_run_time{core="36"} 0
wmi_hyperv_vcpu_remote_run_time{core="37"} 0
wmi_hyperv_vcpu_remote_run_time{core="38"} 0
wmi_hyperv_vcpu_remote_run_time{core="39"} 0
wmi_hyperv_vcpu_remote_run_time{core="4"} 0
wmi_hyperv_vcpu_remote_run_time{core="40"} 0
wmi_hyperv_vcpu_remote_run_time{core="41"} 0
wmi_hyperv_vcpu_remote_run_time{core="42"} 0
wmi_hyperv_vcpu_remote_run_time{core="43"} 0
wmi_hyperv_vcpu_remote_run_time{core="44"} 0
wmi_hyperv_vcpu_remote_run_time{core="45"} 0
wmi_hyperv_vcpu_remote_run_time{core="46"} 0
wmi_hyperv_vcpu_remote_run_time{core="47"} 0
wmi_hyperv_vcpu_remote_run_time{core="48"} 0
wmi_hyperv_vcpu_remote_run_time{core="49"} 0
wmi_hyperv_vcpu_remote_run_time{core="5"} 0
wmi_hyperv_vcpu_remote_run_time{core="50"} 0
wmi_hyperv_vcpu_remote_run_time{core="51"} 0
wmi_hyperv_vcpu_remote_run_time{core="52"} 0
wmi_hyperv_vcpu_remote_run_time{core="53"} 0
wmi_hyperv_vcpu_remote_run_time{core="54"} 0
wmi_hyperv_vcpu_remote_run_time{core="55"} 0
wmi_hyperv_vcpu_remote_run_time{core="56"} 0
wmi_hyperv_vcpu_remote_run_time{core="57"} 0
wmi_hyperv_vcpu_remote_run_time{core="58"} 0
wmi_hyperv_vcpu_remote_run_time{core="59"} 0
wmi_hyperv_vcpu_remote_run_time{core="6"} 0
wmi_hyperv_vcpu_remote_run_time{core="60"} 0
wmi_hyperv_vcpu_remote_run_time{core="61"} 0
wmi_hyperv_vcpu_remote_run_time{core="62"} 0
wmi_hyperv_vcpu_remote_run_time{core="63"} 0
wmi_hyperv_vcpu_remote_run_time{core="64"} 0
wmi_hyperv_vcpu_remote_run_time{core="65"} 0
wmi_hyperv_vcpu_remote_run_time{core="66"} 0
wmi_hyperv_vcpu_remote_run_time{core="67"} 0
wmi_hyperv_vcpu_remote_run_time{core="68"} 0
wmi_hyperv_vcpu_remote_run_time{core="69"} 0
wmi_hyperv_vcpu_remote_run_time{core="7"} 0
wmi_hyperv_vcpu_remote_run_time{core="70"} 0
wmi_hyperv_vcpu_remote_run_time{core="71"} 0
wmi_hyperv_vcpu_remote_run_time{core="72"} 0
wmi_hyperv_vcpu_remote_run_time{core="73"} 0
wmi_hyperv_vcpu_remote_run_time{core="74"} 0
wmi_hyperv_vcpu_remote_run_time{core="75"} 0
wmi_hyperv_vcpu_remote_run_time{core="76"} 0
wmi_hyperv_vcpu_remote_run_time{core="77"} 0
wmi_hyperv_vcpu_remote_run_time{core="78"} 0
wmi_hyperv_vcpu_remote_run_time{core="79"} 0
wmi_hyperv_vcpu_remote_run_time{core="8"} 0
wmi_hyperv_vcpu_remote_run_time{core="80"} 0
wmi_hyperv_vcpu_remote_run_time{core="81"} 0
wmi_hyperv_vcpu_remote_run_time{core="82"} 0
wmi_hyperv_vcpu_remote_run_time{core="83"} 0
wmi_hyperv_vcpu_remote_run_time{core="84"} 0
wmi_hyperv_vcpu_remote_run_time{core="85"} 0
wmi_hyperv_vcpu_remote_run_time{core="86"} 0
wmi_hyperv_vcpu_remote_run_time{core="87"} 0
wmi_hyperv_vcpu_remote_run_time{core="88"} 0
wmi_hyperv_vcpu_remote_run_time{core="89"} 0
wmi_hyperv_vcpu_remote_run_time{core="9"} 0
wmi_hyperv_vcpu_remote_run_time{core="90"} 0
wmi_hyperv_vcpu_remote_run_time{core="91"} 0
wmi_hyperv_vcpu_remote_run_time{core="92"} 0
wmi_hyperv_vcpu_remote_run_time{core="93"} 0
wmi_hyperv_vcpu_remote_run_time{core="94"} 0
wmi_hyperv_vcpu_remote_run_time{core="95"} 0
wmi_hyperv_vcpu_remote_run_time{core="96"} 0
wmi_hyperv_vcpu_remote_run_time{core="97"} 0
wmi_hyperv_vcpu_remote_run_time{core="98"} 0
wmi_hyperv_vcpu_remote_run_time{core="99"} 0
# HELP wmi_hyperv_vcpu_total_run_time The time spent by the virtual processor in guest and hypervisor code
# TYPE wmi_hyperv_vcpu_total_run_time gauge
wmi_hyperv_vcpu_total_run_time{core="0"} 2.35782501552e+11
wmi_hyperv_vcpu_total_run_time{core="1"} 1.53379455125e+11
wmi_hyperv_vcpu_total_run_time{core="10"} 1.66952983434e+11
wmi_hyperv_vcpu_total_run_time{core="100"} 3.18796467258e+11
wmi_hyperv_vcpu_total_run_time{core="101"} 1.61854738223e+11
wmi_hyperv_vcpu_total_run_time{core="102"} 1.62582548154e+11
wmi_hyperv_vcpu_total_run_time{core="103"} 2.01347436208e+11
wmi_hyperv_vcpu_total_run_time{core="11"} 1.32686243203e+11
wmi_hyperv_vcpu_total_run_time{core="12"} 3.11673001169e+11
wmi_hyperv_vcpu_total_run_time{core="13"} 1.20893952178e+11
wmi_hyperv_vcpu_total_run_time{core="14"} 1.41900030172e+11
wmi_hyperv_vcpu_total_run_time{core="15"} 1.24317595466e+11
wmi_hyperv_vcpu_total_run_time{core="16"} 1.44385656975e+11
wmi_hyperv_vcpu_total_run_time{core="17"} 1.37742156064e+11
wmi_hyperv_vcpu_total_run_time{core="18"} 1.52609366331e+11
wmi_hyperv_vcpu_total_run_time{core="19"} 1.28193393816e+11
wmi_hyperv_vcpu_total_run_time{core="2"} 2.19325678711e+11
wmi_hyperv_vcpu_total_run_time{core="20"} 1.40820576815e+11
wmi_hyperv_vcpu_total_run_time{core="21"} 1.27878469454e+11
wmi_hyperv_vcpu_total_run_time{core="22"} 1.45602910919e+11
wmi_hyperv_vcpu_total_run_time{core="23"} 1.39416304529e+11
wmi_hyperv_vcpu_total_run_time{core="24"} 1.659318084e+11
wmi_hyperv_vcpu_total_run_time{core="25"} 1.48441325979e+11
wmi_hyperv_vcpu_total_run_time{core="26"} 4.18907866301e+11
wmi_hyperv_vcpu_total_run_time{core="27"} 1.23639795618e+11
wmi_hyperv_vcpu_total_run_time{core="28"} 2.00901486136e+11
wmi_hyperv_vcpu_total_run_time{core="29"} 1.41584628525e+11
wmi_hyperv_vcpu_total_run_time{core="3"} 1.23070044439e+11
wmi_hyperv_vcpu_total_run_time{core="30"} 2.02380681496e+11
wmi_hyperv_vcpu_total_run_time{core="31"} 1.32177833185e+11
wmi_hyperv_vcpu_total_run_time{core="32"} 2.66453800429e+11
wmi_hyperv_vcpu_total_run_time{core="33"} 1.29842985588e+11
wmi_hyperv_vcpu_total_run_time{core="34"} 1.88200538183e+11
wmi_hyperv_vcpu_total_run_time{core="35"} 1.45115916913e+11
wmi_hyperv_vcpu_total_run_time{core="36"} 1.92263335683e+11
wmi_hyperv_vcpu_total_run_time{core="37"} 1.50050037091e+11
wmi_hyperv_vcpu_total_run_time{core="38"} 2.03515514925e+11
wmi_hyperv_vcpu_total_run_time{core="39"} 1.50193872249e+11
wmi_hyperv_vcpu_total_run_time{core="4"} 1.78827948784e+11
wmi_hyperv_vcpu_total_run_time{core="40"} 1.80157437322e+11
wmi_hyperv_vcpu_total_run_time{core="41"} 6.8684762823e+11
wmi_hyperv_vcpu_total_run_time{core="42"} 2.79578222547e+11
wmi_hyperv_vcpu_total_run_time{core="43"} 6.81542066693e+11
wmi_hyperv_vcpu_total_run_time{core="44"} 2.28437573416e+11
wmi_hyperv_vcpu_total_run_time{core="45"} 1.40936009823e+11
wmi_hyperv_vcpu_total_run_time{core="46"} 2.10569834733e+11
wmi_hyperv_vcpu_total_run_time{core="47"} 1.45339817109e+11
wmi_hyperv_vcpu_total_run_time{core="48"} 2.40777793536e+11
wmi_hyperv_vcpu_total_run_time{core="49"} 1.59471945036e+11
wmi_hyperv_vcpu_total_run_time{core="5"} 1.33259984293e+11
wmi_hyperv_vcpu_total_run_time{core="50"} 1.8065721286e+11
wmi_hyperv_vcpu_total_run_time{core="51"} 1.89234199705e+11
wmi_hyperv_vcpu_total_run_time{core="52"} 2.89964774215e+11
wmi_hyperv_vcpu_total_run_time{core="53"} 1.55245263655e+11
wmi_hyperv_vcpu_total_run_time{core="54"} 1.78360492451e+11
wmi_hyperv_vcpu_total_run_time{core="55"} 2.15465691041e+11
wmi_hyperv_vcpu_total_run_time{core="56"} 2.52746876159e+11
wmi_hyperv_vcpu_total_run_time{core="57"} 1.54210971333e+11
wmi_hyperv_vcpu_total_run_time{core="58"} 2.18855104198e+11
wmi_hyperv_vcpu_total_run_time{core="59"} 1.77582257439e+11
wmi_hyperv_vcpu_total_run_time{core="6"} 1.9484192178e+11
wmi_hyperv_vcpu_total_run_time{core="60"} 2.37477858711e+11
wmi_hyperv_vcpu_total_run_time{core="61"} 1.82950734659e+11
wmi_hyperv_vcpu_total_run_time{core="62"} 1.84172981322e+11
wmi_hyperv_vcpu_total_run_time{core="63"} 2.60633566649e+11
wmi_hyperv_vcpu_total_run_time{core="64"} 2.60355396958e+11
wmi_hyperv_vcpu_total_run_time{core="65"} 2.07597450971e+11
wmi_hyperv_vcpu_total_run_time{core="66"} 2.07650457814e+11
wmi_hyperv_vcpu_total_run_time{core="67"} 2.44099031686e+11
wmi_hyperv_vcpu_total_run_time{core="68"} 1.75160202348e+11
wmi_hyperv_vcpu_total_run_time{core="69"} 1.93811067669e+11
wmi_hyperv_vcpu_total_run_time{core="7"} 1.33327215256e+11
wmi_hyperv_vcpu_total_run_time{core="70"} 1.76294966737e+11
wmi_hyperv_vcpu_total_run_time{core="71"} 1.77631051003e+11
wmi_hyperv_vcpu_total_run_time{core="72"} 1.67522715238e+11
wmi_hyperv_vcpu_total_run_time{core="73"} 1.85211660102e+11
wmi_hyperv_vcpu_total_run_time{core="74"} 1.69006932911e+11
wmi_hyperv_vcpu_total_run_time{core="75"} 1.53765069041e+11
wmi_hyperv_vcpu_total_run_time{core="76"} 1.82345382614e+11
wmi_hyperv_vcpu_total_run_time{core="77"} 1.58820753773e+11
wmi_hyperv_vcpu_total_run_time{core="78"} 1.65926987683e+11
wmi_hyperv_vcpu_total_run_time{core="79"} 1.8510495104e+11
wmi_hyperv_vcpu_total_run_time{core="8"} 1.58605922447e+11
wmi_hyperv_vcpu_total_run_time{core="80"} 1.70842266759e+11
wmi_hyperv_vcpu_total_run_time{core="81"} 1.69383922837e+11
wmi_hyperv_vcpu_total_run_time{core="82"} 1.69518892061e+11
wmi_hyperv_vcpu_total_run_time{core="83"} 1.72550102484e+11
wmi_hyperv_vcpu_total_run_time{core="84"} 1.76098589074e+11
wmi_hyperv_vcpu_total_run_time{core="85"} 1.62037679511e+11
wmi_hyperv_vcpu_total_run_time{core="86"} 1.78232554713e+11
wmi_hyperv_vcpu_total_run_time{core="87"} 1.65227871188e+11
wmi_hyperv_vcpu_total_run_time{core="88"} 1.72005213225e+11
wmi_hyperv_vcpu_total_run_time{core="89"} 1.75301788895e+11
wmi_hyperv_vcpu_total_run_time{core="9"} 1.35697517225e+11
wmi_hyperv_vcpu_total_run_time{core="90"} 1.83129815787e+11
wmi_hyperv_vcpu_total_run_time{core="91"} 1.62073411885e+11
wmi_hyperv_vcpu_total_run_time{core="92"} 1.50646124045e+11
wmi_hyperv_vcpu_total_run_time{core="93"} 4.68572765109e+11
wmi_hyperv_vcpu_total_run_time{core="94"} 1.85999817652e+11
wmi_hyperv_vcpu_total_run_time{core="95"} 2.54745821898e+11
wmi_hyperv_vcpu_total_run_time{core="96"} 1.84552658155e+11
wmi_hyperv_vcpu_total_run_time{core="97"} 1.70671320025e+11
wmi_hyperv_vcpu_total_run_time{core="98"} 1.70258612259e+11
wmi_hyperv_vcpu_total_run_time{core="99"} 1.56470984629e+11
# HELP wmi_hyperv_vid_physical_pages_allocated The number of physical pages allocated
# TYPE wmi_hyperv_vid_physical_pages_allocated gauge
wmi_hyperv_vid_physical_pages_allocated{interface="nc-ad01"} 2.0992e+06
wmi_hyperv_vid_physical_pages_allocated{interface="nc-fw01_node1"} 1.050632e+06
wmi_hyperv_vid_physical_pages_allocated{interface="nc-k8s-node01"} 4.098048e+06
wmi_hyperv_vid_physical_pages_allocated{interface="nc-k8s-node02"} 4.098048e+06
wmi_hyperv_vid_physical_pages_allocated{interface="nc-k8s-node03"} 4.098048e+06
wmi_hyperv_vid_physical_pages_allocated{interface="nc-k8s-node04"} 4.098048e+06
wmi_hyperv_vid_physical_pages_allocated{interface="nc-k8s-node05"} 4.098048e+06
wmi_hyperv_vid_physical_pages_allocated{interface="nc-kemp01_node1"} 1.050632e+06
wmi_hyperv_vid_physical_pages_allocated{interface="nc-nfs02"} 8.194048e+06
# HELP wmi_hyperv_vid_preferred_numa_node_index The preferred NUMA node index associated with this partition
# TYPE wmi_hyperv_vid_preferred_numa_node_index gauge
wmi_hyperv_vid_preferred_numa_node_index{interface="nc-ad01"} 1
wmi_hyperv_vid_preferred_numa_node_index{interface="nc-fw01_node1"} 1
wmi_hyperv_vid_preferred_numa_node_index{interface="nc-k8s-node01"} 0
wmi_hyperv_vid_preferred_numa_node_index{interface="nc-k8s-node02"} 1
wmi_hyperv_vid_preferred_numa_node_index{interface="nc-k8s-node03"} 1
wmi_hyperv_vid_preferred_numa_node_index{interface="nc-k8s-node04"} 1
wmi_hyperv_vid_preferred_numa_node_index{interface="nc-k8s-node05"} 0
wmi_hyperv_vid_preferred_numa_node_index{interface="nc-kemp01_node1"} 0
wmi_hyperv_vid_preferred_numa_node_index{interface="nc-nfs02"} 0
# HELP wmi_hyperv_vid_remote_physical_pages The number of physical pages not allocated from the preferred NUMA node
# TYPE wmi_hyperv_vid_remote_physical_pages gauge
wmi_hyperv_vid_remote_physical_pages{interface="nc-ad01"} 0
wmi_hyperv_vid_remote_physical_pages{interface="nc-fw01_node1"} 0
wmi_hyperv_vid_remote_physical_pages{interface="nc-k8s-node01"} 0
wmi_hyperv_vid_remote_physical_pages{interface="nc-k8s-node02"} 0
wmi_hyperv_vid_remote_physical_pages{interface="nc-k8s-node03"} 0
wmi_hyperv_vid_remote_physical_pages{interface="nc-k8s-node04"} 0
wmi_hyperv_vid_remote_physical_pages{interface="nc-k8s-node05"} 0
wmi_hyperv_vid_remote_physical_pages{interface="nc-kemp01_node1"} 0
wmi_hyperv_vid_remote_physical_pages{interface="nc-nfs02"} 0
# HELP wmi_hyperv_vswitch_broadcast_packets_received_total This represents the total number of broadcast packets received per second by the virtual switch
# TYPE wmi_hyperv_vswitch_broadcast_packets_received_total counter
wmi_hyperv_vswitch_broadcast_packets_received_total{vswitch="vSwitch_LAN01"} 3.450572e+06
wmi_hyperv_vswitch_broadcast_packets_received_total{vswitch="vSwitch_Uplink01"} 6.15622e+06
# HELP wmi_hyperv_vswitch_broadcast_packets_sent_total This represents the total number of broadcast packets sent per second by the virtual switch
# TYPE wmi_hyperv_vswitch_broadcast_packets_sent_total counter
wmi_hyperv_vswitch_broadcast_packets_sent_total{vswitch="vSwitch_LAN01"} 1.8910056e+07
wmi_hyperv_vswitch_broadcast_packets_sent_total{vswitch="vSwitch_Uplink01"} 6.155965e+06
# HELP wmi_hyperv_vswitch_bytes_received_total This represents the total number of bytes received per second by the virtual switch
# TYPE wmi_hyperv_vswitch_bytes_received_total counter
wmi_hyperv_vswitch_bytes_received_total{vswitch="vSwitch_LAN01"} 8.944747303347e+12
wmi_hyperv_vswitch_bytes_received_total{vswitch="vSwitch_Uplink01"} 1.08461714e+09
# HELP wmi_hyperv_vswitch_bytes_sent_total This represents the total number of bytes sent per second by the virtual switch
# TYPE wmi_hyperv_vswitch_bytes_sent_total counter
wmi_hyperv_vswitch_bytes_sent_total{vswitch="vSwitch_LAN01"} 8.94585893878e+12
wmi_hyperv_vswitch_bytes_sent_total{vswitch="vSwitch_Uplink01"} 1.003670037e+09
# HELP wmi_hyperv_vswitch_bytes_total This represents the total number of bytes per second traversing the virtual switch
# TYPE wmi_hyperv_vswitch_bytes_total counter
wmi_hyperv_vswitch_bytes_total{vswitch="vSwitch_LAN01"} 1.7890606242127e+13
wmi_hyperv_vswitch_bytes_total{vswitch="vSwitch_Uplink01"} 2.088287177e+09
# HELP wmi_hyperv_vswitch_directed_packets_received_total This represents the total number of directed packets received per second by the virtual switch
# TYPE wmi_hyperv_vswitch_directed_packets_received_total counter
wmi_hyperv_vswitch_directed_packets_received_total{vswitch="vSwitch_LAN01"} 6.037953551e+09
wmi_hyperv_vswitch_directed_packets_received_total{vswitch="vSwitch_Uplink01"} 472915
# HELP wmi_hyperv_vswitch_directed_packets_send_total This represents the total number of directed packets sent per second by the virtual switch
# TYPE wmi_hyperv_vswitch_directed_packets_send_total counter
wmi_hyperv_vswitch_directed_packets_send_total{vswitch="vSwitch_LAN01"} 6.037954541e+09
wmi_hyperv_vswitch_directed_packets_send_total{vswitch="vSwitch_Uplink01"} 427482
# HELP wmi_hyperv_vswitch_dropped_packets_incoming_total This represents the total number of packet dropped per second by the virtual switch in the incoming direction
# TYPE wmi_hyperv_vswitch_dropped_packets_incoming_total counter
wmi_hyperv_vswitch_dropped_packets_incoming_total{vswitch="vSwitch_LAN01"} 1220
wmi_hyperv_vswitch_dropped_packets_incoming_total{vswitch="vSwitch_Uplink01"} 37105
# HELP wmi_hyperv_vswitch_dropped_packets_outcoming_total This represents the total number of packet dropped per second by the virtual switch in the outgoing direction
# TYPE wmi_hyperv_vswitch_dropped_packets_outcoming_total counter
wmi_hyperv_vswitch_dropped_packets_outcoming_total{vswitch="vSwitch_LAN01"} 1.27930399e+08
wmi_hyperv_vswitch_dropped_packets_outcoming_total{vswitch="vSwitch_Uplink01"} 7.464747e+06
# HELP wmi_hyperv_vswitch_extensions_dropped_packets_incoming_total This represents the total number of packet dropped per second by the virtual switch extensions in the incoming direction
# TYPE wmi_hyperv_vswitch_extensions_dropped_packets_incoming_total counter
wmi_hyperv_vswitch_extensions_dropped_packets_incoming_total{vswitch="vSwitch_LAN01"} 0
wmi_hyperv_vswitch_extensions_dropped_packets_incoming_total{vswitch="vSwitch_Uplink01"} 0
# HELP wmi_hyperv_vswitch_extensions_dropped_packets_outcoming_total This represents the total number of packet dropped per second by the virtual switch extensions in the outgoing direction
# TYPE wmi_hyperv_vswitch_extensions_dropped_packets_outcoming_total counter
wmi_hyperv_vswitch_extensions_dropped_packets_outcoming_total{vswitch="vSwitch_LAN01"} 0
wmi_hyperv_vswitch_extensions_dropped_packets_outcoming_total{vswitch="vSwitch_Uplink01"} 0
# HELP wmi_hyperv_vswitch_learned_mac_addresses_total This counter represents the total number of learned MAC addresses of the virtual switch
# TYPE wmi_hyperv_vswitch_learned_mac_addresses_total counter
wmi_hyperv_vswitch_learned_mac_addresses_total{vswitch="vSwitch_LAN01"} 26
wmi_hyperv_vswitch_learned_mac_addresses_total{vswitch="vSwitch_Uplink01"} 5
# HELP wmi_hyperv_vswitch_multicast_packets_received_total This represents the total number of multicast packets received per second by the virtual switch
# TYPE wmi_hyperv_vswitch_multicast_packets_received_total counter
wmi_hyperv_vswitch_multicast_packets_received_total{vswitch="vSwitch_LAN01"} 9.61525e+06
wmi_hyperv_vswitch_multicast_packets_received_total{vswitch="vSwitch_Uplink01"} 1.016536e+06
# HELP wmi_hyperv_vswitch_multicast_packets_sent_total This represents the total number of multicast packets sent per second by the virtual switch
# TYPE wmi_hyperv_vswitch_multicast_packets_sent_total counter
wmi_hyperv_vswitch_multicast_packets_sent_total{vswitch="vSwitch_LAN01"} 9.915455e+06
wmi_hyperv_vswitch_multicast_packets_sent_total{vswitch="vSwitch_Uplink01"} 114465
# HELP wmi_hyperv_vswitch_number_of_send_channel_moves_total This represents the total number of send channel moves per second on this virtual switch
# TYPE wmi_hyperv_vswitch_number_of_send_channel_moves_total counter
wmi_hyperv_vswitch_number_of_send_channel_moves_total{vswitch="vSwitch_LAN01"} 0
wmi_hyperv_vswitch_number_of_send_channel_moves_total{vswitch="vSwitch_Uplink01"} 0
# HELP wmi_hyperv_vswitch_number_of_vmq_moves_total This represents the total number of VMQ moves per second on this virtual switch
# TYPE wmi_hyperv_vswitch_number_of_vmq_moves_total counter
wmi_hyperv_vswitch_number_of_vmq_moves_total{vswitch="vSwitch_LAN01"} 11
wmi_hyperv_vswitch_number_of_vmq_moves_total{vswitch="vSwitch_Uplink01"} 0
# HELP wmi_hyperv_vswitch_packets_flooded_total This counter represents the total number of packets flooded by the virtual switch
# TYPE wmi_hyperv_vswitch_packets_flooded_total counter
wmi_hyperv_vswitch_packets_flooded_total{vswitch="vSwitch_LAN01"} 0
wmi_hyperv_vswitch_packets_flooded_total{vswitch="vSwitch_Uplink01"} 0
# HELP wmi_hyperv_vswitch_packets_received_total This represents the total number of packets received per second by the virtual switch
# TYPE wmi_hyperv_vswitch_packets_received_total counter
wmi_hyperv_vswitch_packets_received_total{vswitch="vSwitch_LAN01"} 6.051019373e+09
wmi_hyperv_vswitch_packets_received_total{vswitch="vSwitch_Uplink01"} 7.645671e+06
# HELP wmi_hyperv_vswitch_packets_total This represents the total number of packets per second traversing the virtual switch
# TYPE wmi_hyperv_vswitch_packets_total counter
wmi_hyperv_vswitch_packets_total{vswitch="vSwitch_LAN01"} 1.2117799425e+10
wmi_hyperv_vswitch_packets_total{vswitch="vSwitch_Uplink01"} 1.4343583e+07
# HELP wmi_hyperv_vswitch_purged_mac_addresses_total This counter represents the total number of purged MAC addresses of the virtual switch
# TYPE wmi_hyperv_vswitch_purged_mac_addresses_total counter
wmi_hyperv_vswitch_purged_mac_addresses_total{vswitch="vSwitch_LAN01"} 0
wmi_hyperv_vswitch_purged_mac_addresses_total{vswitch="vSwitch_Uplink01"} 0

@carlpett
Copy link
Collaborator

Nice!
Most of it even looks like reasonable data :)

I'm a bit sceptical of the label name interface here though:

wmi_hyperv_vid_physical_pages_allocated{interface="nc-ad01"} 2.0992e+06
wmi_hyperv_vid_physical_pages_allocated{interface="nc-fw01_node1"} 1.050632e+06
wmi_hyperv_vid_physical_pages_allocated{interface="nc-k8s-node01"} 4.098048e+06
...

Are those names actually virtual machines? Also a bit surprised that it doesn't seem like the cpu usage is broken down by VM in Win32_PerfRawData_HvStats_HyperVHypervisorVirtualProcessor. Is this data not available in perfmon somehow?

@tunaman
Copy link
Contributor

tunaman commented Apr 17, 2018

Are those names actually virtual machines?

Yeah those are definitely VM's, interface is indeed not correct.

Is this data not available in perfmon somehow?

If I adjust the PS script and filter on CPU* I get the following output, is this what you're looking for?

PS C:\Users\superme> Get-WmiObject Win32_PerfRawData_HvStats_HyperVHypervisorVirtualProcessor
>>  Select -ExpandProperty Properties |`
>>  Where Name -like "CPU*" |`
>>  Foreach { New-Object psobject -Property @{`
>>   Name=$_.Name; `
>>   CounterType=($_.Qualifiers | ? Name -eq "Cou
>>  }`
>> }

Name                                 CounterType
----                                 -----------
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712
CPUIDInstructionsCost                  542573824
CPUIDInstructionsCost_Base            1073939712
CPUIDInstructionsForwardedPersec       272696576
CPUIDInstructionsForwardingCost        542573824
CPUIDInstructionsForwardingCost_Base  1073939712
CPUIDInstructionsPersec                272696576
CPUWaitTimePerDispatch                 542573824
CPUWaitTimePerDispatch_Base           1073939712

@carlpett
Copy link
Collaborator

Yeah those are definitely VM's, interface is indeed not correct.

Right. I'll change the label.

If I adjust the PS script and filter on CPU* I get the following output, is this what you're looking for?

No, I was wondering if the Perfmon tool in Windows also didn't show the CPU per VM. That would to me suggest that we are missing some classes, since this seems like a crucial feature to have... If you check the Hyper-V Hypervisor Root Virtual Processor class there (which seems to be the friendly name of Win32_PerfRawData_HvStats_HyperVHypervisorVirtualProcessor), do you get each VM's usage?

@tunaman
Copy link
Contributor

tunaman commented Apr 17, 2018

I can add the Hyper-V Hypervisor Root Virtual Processor class to Perfmon but the stats are per core or total and not per VM. There is also the Hyper-V Hypervisor Virtual Processor class which does show the VM stats but also per core, but this could maybe work?

While googling I stumbled upon this script which does see to do what we need.

hypervisor root virtual processor

hypervisor virtual processor

@carlpett
Copy link
Collaborator

Hm, that seems to pull from classes in another namespace altogether. Perhaps I should just fire up a VM somewhere and install Hyper-V, so you don't have to provide a testbed and iterative troubleshooting.

@tunaman
Copy link
Contributor

tunaman commented Apr 17, 2018

Perhaps I should just fire up a VM somewhere and install Hyper-V, so you don't have to provide a testbed and iterative troubleshooting.

That would probably speed it up a bit. Let me know if you still need me to test anything.

@carlpett
Copy link
Collaborator

@tunaman Made some progress now - noticed that there was a mixup of classes in there, which was the reason the VM metrics didn't appear. This looks (more) reasonable on my small test setup, so if you have some time to test this and validate, it'd be a great help.

I've also seen that there are a lot of fields that are currently not exported. I'll leave that as a future expansion opportunity though, to try to keep the scope of this PR down.

@tunaman
Copy link
Contributor

tunaman commented Apr 17, 2018

Latest build looks good to me, you can find the output here

@carlpett
Copy link
Collaborator

Thanks a lot for your help @tunaman!
The code needs a bit of clean-up, and as I mentioned we're not exposing all the fields that we could, so there's room for improvement down the line. But let's merge this, since it seems to work good enough :)

@carlpett carlpett merged commit 1358123 into prometheus-community:master Apr 18, 2018
@carlpett
Copy link
Collaborator

I've released this as v0.3.1, binaries should be available soon.

@tunaman
Copy link
Contributor

tunaman commented Apr 18, 2018

Glad to help out! I’ll deploy this once the binaries become available

anubhavg-icpl pushed a commit to anubhavg-icpl/windows_exporter that referenced this pull request Sep 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants