<!--startmeta
custom_edit_url: "https://github.com/netdata/netdata/edit/master/src/collectors/windows.plugin/integrations/hyper-v.md"
meta_yaml: "https://github.com/netdata/netdata/edit/master/src/collectors/windows.plugin/metadata.yaml"
sidebar_label: "Hyper-V"
learn_status: "Published"
learn_rel_path: "Collecting Metrics/Collectors/Containers and VMs"
keywords: ['windows', 'microsoft', 'hyperv', 'virtualization', 'vm', 'azure-local', 'azure-stack-hci']
message: "DO NOT EDIT THIS FILE DIRECTLY, IT IS GENERATED BY THE COLLECTOR'S metadata.yaml FILE"
endmeta-->

# Hyper-V


<img src="https://netdata.cloud/img/windows.svg" width="150"/>


Plugin: windows.plugin
Module: PerflibHyperV

<img src="https://img.shields.io/badge/maintained%20by-Netdata-%2300ab44" />

## Overview

This collector monitors Hyper-V virtualization metrics including virtual machine health status, root partition virtualization layer statistics (TLB flushes, address spaces, attached devices, GPA space), per-VM CPU usage, memory allocation and pressure, storage device I/O and errors, network interface traffic and packets, and virtual switch traffic, packets, and dropped packets.


It queries the 'HyperV' object from Perflib in order to gather the metrics.


This collector is only supported on the following platforms:

- windows

This collector only supports collecting metrics from a single instance of this integration.


### Default Behavior

#### Auto-Detection

The collector automatically detects all of the metrics, no further configuration is required.


#### Limits

The default configuration for this integration does not impose any limits on data collection.

#### Performance Impact

The default configuration for this integration is not expected to impose a significant performance impact on the system.

## Setup


### Prerequisites

No action required.

### Configuration

#### Options





| Option | Description | Default | Required |
|:-----|:------------|:--------|:---------:|
| update every | Data collection frequency. | 5 | no |




#### via File

The configuration file name for this integration is `netdata.conf`.
Configuration for this specific integration is located in the `[plugin:windows:PerflibHyperV]` section within that file.

The file format is a modified INI syntax. The general structure is:

```ini
[section1]
    option1 = some value
    option2 = some other value

[section2]
    option3 = some third value
```
You can edit the configuration file using the [`edit-config`](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration/README.md#edit-configuration-files) script from the
Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration/README.md#locate-your-config-directory).

```bash
cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
sudo ./edit-config netdata.conf
```

##### Examples
There are no configuration examples.



## Alerts

There are no alerts configured by default for this integration.



## Metrics

Metrics grouped by *scope*.

The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.




### Per Hyper-V

These metrics refer to the Hyper-V instance.

This scope has no labels.

Metrics:

| Metric | Description | Dimensions | Unit |
|:------|:------------|:----------|:----|
| hyperv.vms_health | Virtual machines health status | ok, critical | vms |
| hyperv.root_partition_io_tlb_flush | Root partition flushes of I/O TLBs | gpa | flushes/s |
| hyperv.root_partition_virtual_tlb_flush_entries | Root partition flushes of the entire virtual TLB | flushes | flushes/s |
| hyperv.root_partition_virtual_tlb_pages | Root partition pages used by the virtual TLB | used | pages |
| hyperv.root_partition_address_space | Root partition address spaces in the virtual TLB | address_spaces | address spaces |
| hyperv.root_partition_attached_devices | Root partition attached devices | attached | devices |
| hyperv.root_partition_device_dma_errors | Root partition illegal DMA requests | illegal_dma | requests |
| hyperv.root_partition_device_interrupt_errors | Root partition illegal interrupt requests | illegal_interrupt | requests |
| hyperv.root_partition_device_interrupt_throttle_events | Root partition throttled interrupts | throttling | events |
| hyperv.root_partition_deposited_pages | Root partition deposited pages | gpa | pages |
| hyperv.root_partition_device_space_pages | Root partition device space pages | 4K, 2M, 1G | pages |
| hyperv.root_partition_gpa_space_pages | Root partition GPA space pages | 4K, 2M, 1G | pages |
| hyperv.root_partition_gpa_space_modifications | Root partition GPA space modifications | gpa | modifications/s |


### Per Virtual Machine

These metrics refer to the Virtual Machine.

Labels:

| Label      | Description     |
|:-----------|:----------------|
| vm_name | The name of the Virtual Machine. |

Metrics:

| Metric | Description | Dimensions | Unit |
|:------|:------------|:----------|:----|
| hyperv.vm_cpu_usage | VM CPU usage | usage | percentage |
| hyperv.vm_cpu_usage_by_run_context | VM CPU usage by run context | guest, hypervisor, remote | percentage |
| hyperv.vm_memory_physical | VM assigned memory | assigned | bytes |
| hyperv.vm_memory_physical_guest_visible | VM guest visible memory | visible, available | bytes |
| hyperv.vm_memory_pressure_current | VM Memory Pressure | pressure | percentage |
| hyperv.vm_vid_physical_pages_allocated | VM physical pages allocated | allocated | pages |
| hyperv.vm_vid_remote_physical_pages | VM physical pages not allocated from the preferred NUMA node | remote_physical | pages |


### Per Virtual Machine Storage Device

These metrics refer to the Virtual Machine Storage Device.

Labels:

| Label      | Description     |
|:-----------|:----------------|
| vm_storage_device | The name of the Storage Device. |

Metrics:

| Metric | Description | Dimensions | Unit |
|:------|:------------|:----------|:----|
| hyperv.vm_storage_device_bytes | VM storage device IO | read, write | bytes/s |
| hyperv.vm_storage_device_operations | VM storage device IOPS&#34; | read, write | operations/s |
| hyperv.vm_storage_device_errors | VM storage device errors | errors | errors/s |


### Per Virtual Machine Network Interface

These metrics refer to the Virtual Machine Network Interface.

Labels:

| Label      | Description     |
|:-----------|:----------------|
| vm_net_interface | The name of the Network Interface. |

Metrics:

| Metric | Description | Dimensions | Unit |
|:------|:------------|:----------|:----|
| hyperv.vm_net_interface_traffic | VM interface traffic | received, sent | kilobits/s |
| hyperv.vm_net_interface_ipsec_traffic | VM interface traffic | received, sent | kilobits/s |
| hyperv.vm_net_interface_packets | VM interface packets | received, sent | packets/s |
| hyperv.vm_net_interface_directed_packets | VM interface directed packets | received, sent | packets/s |
| hyperv.vm_net_interface_broadcast_packets | VM interface broadcast | received, sent | packets/s |
| hyperv.vm_net_interface_multicast_packets | VM interface multicast | received, sent | packets/s |
| hyperv.vm_net_interface_packets_dropped | VM interface packets dropped | incoming, outgoing | drops/s |


### Per Virtual Switch

These metrics refer to the Virtual Switch.

Labels:

| Label      | Description     |
|:-----------|:----------------|
| vswitch | The name of the Virtual Switch. |

Metrics:

| Metric | Description | Dimensions | Unit |
|:------|:------------|:----------|:----|
| hyperv.vswitch_traffic | Virtual switch traffic | received, sent | kilobits/s |
| hyperv.vswitch_packets | Virtual switch packets | received, sent | packets/s |
| hyperv.vswitch_directed_packets | Virtual switch directed packets | received, sent | packets/s |
| hyperv.vswitch_broadcast_packets | Virtual switch broadcast packets | received, sent | packets/s |
| hyperv.vswitch_multicast_packets | Virtual switch multicast packets | received, sent | packets/s |
| hyperv.vswitch_dropped_packets | Virtual switch dropped packets | incoming, outgoing | drops/s |
| hyperv.vswitch_extensions_dropped_packets | Virtual switch extensions dropped packets | incoming, outgoing | drops/s |
| hyperv.vswitch_packets_flooded | Virtual switch flooded packets | flooded | packets/s |
| hyperv.vswitch_learned_mac_addresses | Virtual switch learned MAC addresses | learned | mac addresses/s |
| hyperv.vswitch_purged_mac_addresses | Virtual switch purged MAC addresses | purged | mac addresses/s |
