Monitor health and performance of the Hyper-V clusters, hosts and VMs.




Monitor Hyper-V performance, track VM health, and detect cluster issues before impact.
This extension is designed to run locally on hosts that comprise the Hyper-V cluster. It doesn't offer remote monitoring. Additionally, compared to typical extensions, which run as LOCAL SERVICE , this one requires privileges elevated to LOCAL SYSTEM, in order to obtain metrics that can only be obtained through execution of the PowerShell scripts.
Get insights into performance of the Hyper-V fabric, tracking health, performance and resource utilization of the Hyper-V VMs, together with the context of their host and cluster resources. Monitor Hyper-V clusters, detect problems ahead of serious impact, and pinpoint the bottlenecks in the virtualization and application layer, including:
Hyper-V extension leverages PowerShell cmdlets and WMI queries to collect data from the Windows hypervisor, following best practices employed by Microsoft, as well as Dynatrace customers who contributed to validation of this extension in real-life situations.
This extension requires:
Note on topological relationships between discovered Hyper-V VMs and OneAgent-monitored VM instances:
LOCAL SYSTEM account privileges. To achieve this, in the C:ProgramData\dynatrace\oneagent\agent\config\extensionsuser.conf file on Hyper-V cluster servers where the extension is intended to run, add a line:elevated_privileges_extensions=[com.dynatrace.extension.hyperv:*]elevated_privileges_extensions is a comma-separated list of extensions to run as LOCAL SYSTEM (instead of the default LOCAL SERVICE). The format is: <extensionName>:<extensionVersion>This extension is intended to run locally on hosts that comprise the Hyper-V cluster. It executes:
If you are interested in logs collection from the Hyper-V cluster, use readily available OneAgent's log monitoring features.
Additionally, the extension delivers:
There is no charge for obtaining the extension, only for the data that the extension ingests. The details of license consumption will depend on which licensing model you are using. This will either be Dynatrace classic licensing or the Dynatrace Platform Subscription (DPS) model.
License consumption is based on the number of metric data points ingested. The following formula will provide approximate annual data points ingested assuming all feature sets are enabled.
((( 3 * number of Clusters)+ ( 9 * number of Hosts)+ ( 6 * number of VMs)+ ( 4 * number of Storage Devices)+ ( 4 * number of Virtual Storage Devices)+ ( 6 * number of NICs)+ ( 6 * number of vNICs)) / <Metrics Collection Interval>) * 60 minutes * 24 hours * 365 days data points per year
In the classic licensing model, metric ingestion will consume Davis Data Units (DDUs) at the rate of .001 DDUs per metric data point. Multiply the above formula for annual data points by .001 to estimate annual DDU usage.
When activating your extension using monitoring configuration, you can limit monitoring to one of the feature sets. To work properly the extension has to collect at least one metric after the activation.
In highly segmented networks, feature sets can reflect the segments of your environment. Then, when you create a monitoring configuration, you can select a feature set and a corresponding ActiveGate group that can connect to this particular segment.
All metrics that aren't categorized into any feature set are considered to be the default and are always reported.
A metric inherits the feature set of a subgroup, which in turn inherits the feature set of a group. Also, the feature set defined on the metric level overrides the feature set defined on the subgroup level, which in turn overrides the feature set defined on the group level.
| Metric name | Metric key | Description |
|---|---|---|
| CPU Utilization | hyperv.host.cpu_utilization | — |
| Logical CPU Count | hyperv.host.logical_cpu_count.gauge | — |
| Physical CPU Count | hyperv.host.physical_cpu_count.gauge | — |
| CPU Reserve | hyperv.host.cpu_reserve | — |
| Metric name | Metric key | Description |
|---|---|---|
| Total Disk Space | hyperv.virtual_machine.storage_device.total_disk_space | — |
| Used Disk Space | hyperv.virtual_machine.storage_device.used_disk_space | — |
| Metric name | Metric key | Description |
|---|---|---|
| Network Packets Sent | hyperv.virtual_machine.network_interface_card.packets_sent | — |
| Network Packets Received | hyperv.virtual_machine.network_interface_card.packets_received | — |
| Network Packets Transferred | hyperv.virtual_machine.network_interface_card.packets_transferred | — |
| Metric name | Metric key | Description |
|---|---|---|
| Total Memory | hyperv.host.total_memory | — |
| Available Memory | hyperv.host.available_memory | — |
| Metric name | Metric key | Description |
|---|---|---|
| Network Bytes Sent | hyperv.virtual_machine.network_interface_card.bytes_sent | — |
| Network Bytes Received | hyperv.virtual_machine.network_interface_card.bytes_received | — |
| Network Bytes Transferred | hyperv.virtual_machine.network_interface_card.bytes_transferred | — |
| Metric name | Metric key | Description |
|---|---|---|
| Virtual Machine Count | hyperv.host.virtual_machine_count.gauge | — |
| Running Virtual Machine Count | hyperv.host.running_virtual_machine_count.gauge | — |
| Uptime | hyperv.host.uptime | — |
| Metric name | Metric key | Description |
|---|---|---|
| CPU Count | hyperv.virtual_machine.cpu_count.gauge | — |
| CPU Reserve | hyperv.virtual_machine.cpu_reserve | — |
| CPU Utilization | hyperv.virtual_machine.cpu_utilization | CPU Utilization % relative to the hosts total capacity. |
| Real CPU Utilization | hyperv.virtual_machine.real_cpu_utilization | CPU Utilization % as seen on the VM |
| Total Memory | hyperv.virtual_machine.total_memory | — |
| Used Memory | hyperv.virtual_machine.used_memory | — |
| Memory Pressure | hyperv.virtual_machine.memory_pressure | — |
| Metric name | Metric key | Description |
|---|---|---|
| Total Disk Size | hyperv.host.disk.total_size | — |
| Available Disk Space | hyperv.host.disk.space_free | — |
| Metric name | Metric key | Description |
|---|---|---|
| Network Bytes Sent | hyperv.host.network_interface_card.bytes_sent | — |
| Network Bytes Received | hyperv.host.network_interface_card.bytes_received | — |
| Network Bytes Transferred | hyperv.host.network_interface_card.bytes_transferred | — |
| Metric name | Metric key | Description |
|---|---|---|
| Disk Read Rate | hyperv.host.disk.read_rate | — |
| Disk Write Rate | hyperv.host.disk.write_rate | — |
| Metric name | Metric key | Description |
|---|---|---|
| Disk Read Rate | hyperv.virtual_machine.storage_device.read_rate | — |
| Disk Write Rate | hyperv.virtual_machine.storage_device.write_rate | — |
| Metric name | Metric key | Description |
|---|---|---|
| Network Packets Sent | hyperv.host.network_interface_card.packets_sent | — |
| Network Packets Received | hyperv.host.network_interface_card.packets_received | — |
| Network Packets Transferred | hyperv.host.network_interface_card.packets_transferred | — |
| Metric name | Metric key | Description |
|---|---|---|
| Total Space | hyperv.cluster_shared_volume.total_space | — |
| Used Disk Space | hyperv.cluster_shared_volume.used_space | — |
| Available Disk Space | hyperv.cluster_shared_volume.free_space | — |
The extension needs to be enabled it on all the host (server/node) machines in the cluster. The extension collects metrics from the guest VMs running on each host.
Although OneAgent typically runs as LocalSystem account, Python extensions run as LOCAL SERVICE. The LOCAL SERVICE account has the minimum privileges on the local computer, which means it can't run PowerShell snippets that read performance counters, access WMI objects that store Hyper-V metrics, or run Hyper-V-specific cmdlets. Therefore, OneAgent needs to be explicitly instructed to run this extension with LOCAL SYSTEM privileges.