Skip to main content

HyperV

Plugin: go.d.plugin Module: windows

Overview

This collector monitors the performance of Windows machines, collects both host metrics and metrics from various Windows applications (e.g. Active Directory, MSSQL).

It collect metrics by periodically sending HTTP requests to Prometheus exporter for Windows machines, a native Windows agent running on each host.

This collector is supported on all platforms.

This collector supports collecting metrics from multiple instances of this integration, including remote instances.

Default Behavior

Auto-Detection

It detects Windows exporter instances running on localhost (requires using Netdata MSI installer).

Using the Netdata MSI installer is recommended for testing purposes only. For production use, you need to install Netdata on a Linux host and configure it to collect metrics remotely.

Limits

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

Performance Impact

Data collection affects the CPU usage of the Windows host. CPU usage depends on the frequency of data collection and the enabled collectors.

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.

The collected set of metrics depends on the enabled collectors.

Supported collectors:

Per Active Directory instance

These metrics refer to the entire monitored host.

This scope has no labels.

Metrics:

MetricDimensionsUnit
windows.cpu_utilization_totaldpc, user, privileged, interruptpercentage
windows.memory_utilizationavailable, usedbytes
windows.memory_page_faultspage_faultsevents/s
windows.memory_swap_utilizationavailable, usedbytes
windows.memory_swap_operationsread, writeoperations/s
windows.memory_swap_pagesread, writtenpages/s
windows.memory_cachedcachedKiB
windows.memory_cache_faultscache_faultsevents/s
windows.memory_system_poolpaged, non-pagedbytes
windows.tcp_conns_establishedipv4, ipv6connections
windows.tcp_conns_activeipv4, ipv6connections/s
windows.tcp_conns_passiveipv4, ipv6connections/s
windows.tcp_conns_failuresipv4, ipv6failures/s
windows.tcp_conns_resetsipv4, ipv6resets/s
windows.tcp_segments_receivedipv4, ipv6segments/s
windows.tcp_segments_sentipv4, ipv6segments/s
windows.tcp_segments_retransmittedipv4, ipv6segments/s
windows.os_processesprocessesnumber
windows.os_usersusersusers
windows.os_visible_memory_usagefree, usedbytes
windows.os_paging_files_usagefree, usedbytes
windows.system_threadsthreadsnumber
windows.system_uptimetimeseconds
windows.logon_type_sessionssystem, interactive, network, batch, service, proxy, unlock, network_clear_text, new_credentials, remote_interactive, cached_interactive, cached_remote_interactive, cached_unlockseconds
windows.processes_cpu_utilizationa dimension per processpercentage
windows.processes_handlesa dimension per processhandles
windows.processes_io_bytesa dimension per processbytes/s
windows.processes_io_operationsa dimension per processoperations/s
windows.processes_page_faultsa dimension per processpgfaults/s
windows.processes_page_file_bytesa dimension per processbytes
windows.processes_pool_bytesa dimension per processbytes
windows.processes_threadsa dimension per processthreads
ad.database_operationsadd, delete, modify, recycleoperations/s
ad.directory_operationsread, write, searchoperations/s
ad.name_cache_lookupslookupslookups/s
ad.name_cache_hitshitshits/s
ad.atq_average_request_latencytimeseconds
ad.atq_outstanding_requestsoutstandingrequests
ad.dra_replication_intersite_compressed_trafficinbound, outboundbytes/s
ad.dra_replication_intrasite_compressed_trafficinbound, outboundbytes/s
ad.dra_replication_sync_objects_remaininginbound, outboundobjects
ad.dra_replication_objects_filteredinbound, outboundobjects/s
ad.dra_replication_properties_updatedinbound, outboundproperties/s
ad.dra_replication_properties_filteredinbound, outboundproperties/s
ad.dra_replication_pending_syncspendingsyncs
ad.dra_replication_sync_requestsrequestsrequests/s
ad.ds_threadsin_usethreads
ad.ldap_last_bind_timelast_bindseconds
ad.bindsbindsbinds/s
ad.ldap_searchessearchessearches/s
adfs.ad_login_connection_failuresconnectionfailures/s
adfs.certificate_authenticationsauthenticationsauthentications/s
adfs.db_artifact_failuresconnectionfailures/s
adfs.db_artifact_query_time_secondsquery_timeseconds/s
adfs.db_config_failuresconnectionfailures/s
adfs.db_config_query_time_secondsquery_timeseconds/s
adfs.device_authenticationsauthenticationsauthentications/s
adfs.external_authenticationssuccess, failureauthentications/s
adfs.federated_authenticationsauthenticationsauthentications/s
adfs.federation_metadata_requestsrequestsrequests/s
adfs.oauth_authorization_requestsrequestsrequests/s
adfs.oauth_client_authenticationssuccess, failureauthentications/s
adfs.oauth_client_credentials_requestssuccess, failurerequests/s
adfs.oauth_client_privkey_jwt_authenticationssuccess, failureauthentications/s
adfs.oauth_client_secret_basic_authenticationssuccess, failureauthentications/s
adfs.oauth_client_secret_post_authenticationssuccess, failureauthentications/s
adfs.oauth_client_windows_authenticationssuccess, failureauthentications/s
adfs.oauth_logon_certificate_requestssuccess, failurerequests/s
adfs.oauth_password_grant_requestssuccess, failurerequests/s
adfs.oauth_token_requests_successsuccessrequests/s
adfs.passive_requestspassiverequests/s
adfs.passport_authenticationspassportauthentications/s
adfs.password_change_requestssuccess, failurerequests/s
adfs.samlp_token_requests_successsuccessrequests/s
adfs.sso_authenticationssuccess, failureauthentications/s
adfs.token_requestsrequestsrequests/s
adfs.userpassword_authenticationssuccess, failureauthentications/s
adfs.windows_integrated_authenticationsauthenticationsauthentications/s
adfs.wsfed_token_requests_successsuccessrequests/s
adfs.wstrust_token_requests_successsuccessrequests/s
exchange.activesync_ping_cmds_pendingpendingcommands
exchange.activesync_requestsreceivedrequests/s
exchange.activesync_sync_cmdsprocessedcommands/s
exchange.autodiscover_requestsprocessedrequests/s
exchange.avail_service_requestsservicedrequests/s
exchange.owa_current_unique_userslogged-inusers
exchange.owa_requests_totalhandledrequests/s
exchange.rpc_active_user_countactiveusers
exchange.rpc_avg_latencylatencyseconds
exchange.rpc_connection_countconnectionsconnections
exchange.rpc_operationsoperationsoperations/s
exchange.rpc_requestsprocessedrequests
exchange.rpc_user_countusersusers
exchange.transport_queues_active_mail_box_deliverylow, high, none, normalmessages/s
exchange.transport_queues_external_active_remote_deliverylow, high, none, normalmessages/s
exchange.transport_queues_external_largest_deliverylow, high, none, normalmessages/s
exchange.transport_queues_internal_active_remote_deliverylow, high, none, normalmessages/s
exchange.transport_queues_internal_largest_deliverylow, high, none, normalmessages/s
exchange.transport_queues_retry_mailbox_deliverylow, high, none, normalmessages/s
exchange.transport_queues_poisonlow, high, none, normalmessages/s
hyperv.vms_healthok, criticalvms
hyperv.root_partition_device_space_pages4K, 2M, 1Gpages
hyperv.root_partition_gpa_space_pages4K, 2M, 1Gpages
hyperv.root_partition_gpa_space_modificationsgpamodifications/s
hyperv.root_partition_attached_devicesattacheddevices
hyperv.root_partition_deposited_pagesdepositedpages
hyperv.root_partition_skipped_interruptsskippedinterrupts
hyperv.root_partition_device_dma_errorsillegal_dmarequests
hyperv.root_partition_device_interrupt_errorsillegal_interruptrequests
hyperv.root_partition_device_interrupt_throttle_eventsthrottlingevents
hyperv.root_partition_io_tlb_flushflushesflushes/s
hyperv.root_partition_address_spaceaddress_spacesaddress spaces
hyperv.root_partition_virtual_tlb_flush_entriesflushesflushes/s
hyperv.root_partition_virtual_tlb_pagesusedpages

Per cpu core

TBD

Labels:

LabelDescription
coreTBD

Metrics:

MetricDimensionsUnit
windows.cpu_core_utilizationdpc, user, privileged, interruptpercentage
windows.cpu_core_interruptsinterruptsinterrupts/s
windows.cpu_core_dpcsdpcsdpcs/s
windows.cpu_core_cstatec1, c2, c3percentage

Per logical disk

TBD

Labels:

LabelDescription
diskTBD

Metrics:

MetricDimensionsUnit
windows.logical_disk_utilizationfree, usedbytes
windows.logical_disk_bandwidthread, writebytes/s
windows.logical_disk_operationsreads, writesoperations/s
windows.logical_disk_latencyread, writeseconds

Per network device

TBD

Labels:

LabelDescription
nicTBD

Metrics:

MetricDimensionsUnit
windows.net_nic_bandwidthreceived, sentkilobits/s
windows.net_nic_packetsreceived, sentpackets/s
windows.net_nic_errorsinbound, outbounderrors/s
windows.net_nic_discardedinbound, outbounddiscards/s

Per thermalzone

TBD

Labels:

LabelDescription
thermalzoneTBD

Metrics:

MetricDimensionsUnit
windows.thermalzone_temperaturetemperaturecelsius

Per service

TBD

Labels:

LabelDescription
serviceTBD

Metrics:

MetricDimensionsUnit
windows.service_staterunning, stopped, start_pending, stop_pending, continue_pending, pause_pending, paused, unknownstate
windows.service_statusok, error, unknown, degraded, pred_fail, starting, stopping, service, stressed, nonrecover, no_contact, lost_commstatus

Per website

TBD

Labels:

LabelDescription
websiteTBD

Metrics:

MetricDimensionsUnit
iis.website_trafficreceived, sentbytes/s
iis.website_requests_raterequestsrequests/s
iis.website_active_connections_countactiveconnections
iis.website_users_countanonymous, non_anonymoususers
iis.website_connection_attempts_rateconnectionattempts/s
iis.website_isapi_extension_requests_countisapirequests
iis.website_isapi_extension_requests_rateisapirequests/s
iis.website_ftp_file_transfer_ratereceived, sentfiles/s
iis.website_logon_attempts_ratelogonattempts/s
iis.website_errors_ratedocument_locked, document_not_founderrors/s
iis.website_uptimedocument_locked, document_not_foundseconds

Per mssql instance

TBD

Labels:

LabelDescription
mssql_instanceTBD

Metrics:

MetricDimensionsUnit
mssql.instance_accessmethods_page_splitspagesplits/s
mssql.instance_cache_hit_ratiohit_ratiopercentage
mssql.instance_bufman_checkpoint_pagesflushedpages/s
mssql.instance_bufman_page_life_expectancylife_expectancyseconds
mssql.instance_bufman_iopsread, writteniops
mssql.instance_blocked_processesblockedprocesses
mssql.instance_user_connectionuserconnections
mssql.instance_locks_lock_waitalloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xactlocks/s
mssql.instance_locks_deadlocksalloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xactlocks/s
mssql.instance_memmgr_connection_memory_bytesmemorybytes
mssql.instance_memmgr_external_benefit_of_memorybenefitbytes
mssql.instance_memmgr_pending_memory_grantspendingprocesses
mssql.instance_memmgr_server_memorymemorybytes
mssql.instance_sql_errorsdb_offline, info, kill_connection, usererrors
mssql.instance_sqlstats_auto_parameterization_attemptsfailedattempts/s
mssql.instance_sqlstats_batch_requestsbatchrequests/s
mssql.instance_sqlstats_safe_auto_parameterization_attemptssafeattempts/s
mssql.instance_sqlstats_sql_compilationscompilationscompilations/s
mssql.instance_sqlstats_sql_recompilationsrecompilesrecompiles/s

Per database

TBD

Labels:

LabelDescription
mssql_instanceTBD
databaseTBD

Metrics:

MetricDimensionsUnit
mssql.database_active_transactionsactivetransactions
mssql.database_backup_restore_operationsbackupoperations/s
mssql.database_data_files_sizesizebytes
mssql.database_log_flushedflushedbytes/s
mssql.database_log_flusheslogflushes/s
mssql.database_transactionstransactionstransactions/s
mssql.database_write_transactionswritetransactions/s

Per certificate template

TBD

Labels:

LabelDescription
cert_templateTBD

Metrics:

MetricDimensionsUnit
adcs.cert_template_requestsrequestsrequests/s
adcs.cert_template_failed_requestsfailedrequests/s
adcs.cert_template_issued_requestsissuedrequests/s
adcs.cert_template_pending_requestspendingrequests/s
adcs.cert_template_request_processing_timeprocessing_timeseconds
adcs.cert_template_retrievalsretrievalsretrievals/s
adcs.cert_template_retrieval_processing_timeprocessing_timeseconds
adcs.cert_template_request_cryptographic_signing_timesinging_timeseconds
adcs.cert_template_request_policy_module_processingprocessing_timeseconds
adcs.cert_template_challenge_responseschallengeresponses/s
adcs.cert_template_challenge_response_processing_timeprocessing_timeseconds
adcs.cert_template_signed_certificate_timestamp_listsprocessedlists/s
adcs.cert_template_signed_certificate_timestamp_list_processing_timeprocessing_timeseconds

Per process

TBD

Labels:

LabelDescription
processTBD

Metrics:

MetricDimensionsUnit
netframework.clrexception_thrownexceptionsexceptions/s
netframework.clrexception_filtersfiltersfilters/s
netframework.clrexception_finallysfinallysfinallys/s
netframework.clrexception_throw_to_catch_depthtraversedstack_frames/s
netframework.clrinterop_com_callable_wrapperscom_callable_wrappersccw/s
netframework.clrinterop_interop_marshallingsmarshallingsmarshallings/s
netframework.clrinterop_interop_stubs_createdcreatedstubs/s
netframework.clrjit_methodsjit-compiledmethods/s
netframework.clrjit_timetimepercentage
netframework.clrjit_standard_failuresfailuresfailures/s
netframework.clrjit_il_bytescompiled_msilbytes/s
netframework.clrloading_loader_heap_sizecommittedbytes
netframework.clrloading_appdomains_loadedloadeddomain/s
netframework.clrloading_appdomains_unloadedunloadeddomain/s
netframework.clrloading_assemblies_loadedloadedassemblies/s
netframework.clrloading_classes_loadedloadedclasses/s
netframework.clrloading_class_load_failuresclass_loadfailures/s
netframework.clrlocksandthreads_queue_lengththreadsthreads/s
netframework.clrlocksandthreads_current_logical_threadslogicalthreads
netframework.clrlocksandthreads_current_physical_threadsphysicalthreads
netframework.clrlocksandthreads_recognized_threadsthreadsthreads/s
netframework.clrlocksandthreads_contentionscontentionscontentions/s
netframework.clrmemory_allocated_bytesallocatedbytes/s
netframework.clrmemory_finalization_survivorssurvivedobjects
netframework.clrmemory_heap_sizeheapbytes
netframework.clrmemory_promotedpromotedbytes
netframework.clrmemory_number_gc_handlesusedhandles
netframework.clrmemory_collectionsgcgc/s
netframework.clrmemory_induced_gcgcgc/s
netframework.clrmemory_number_pinned_objectspinnedobjects
netframework.clrmemory_number_sink_blocks_in_useusedblocks
netframework.clrmemory_committedcommittedbytes
netframework.clrmemory_reservedreservedbytes
netframework.clrmemory_gc_timetimepercentage
netframework.clrremoting_channelsregisteredchannels/s
netframework.clrremoting_context_bound_classes_loadedloadedclasses
netframework.clrremoting_context_bound_objectsallocatedobjects/s
netframework.clrremoting_context_proxiesobjectsobjects/s
netframework.clrremoting_contextscontextscontexts
netframework.clrremoting_remote_callsrpccalls/s
netframework.clrsecurity_link_time_checkslinktimechecks/s
netframework.clrsecurity_checks_timetimepercentage
netframework.clrsecurity_stack_walk_depthstackdepth
netframework.clrsecurity_runtime_checksruntimechecks/s

Per exchange workload

TBD

Labels:

LabelDescription
workloadTBD

Metrics:

MetricDimensionsUnit
exchange.workload_active_tasksactivetasks
exchange.workload_completed_taskscompletedtasks/s
exchange.workload_queued_tasksqueuedtasks/s
exchange.workload_yielded_tasksyieldedtasks/s
exchange.workload_activity_statusactive, pausedstatus

Per ldap process

TBD

Labels:

LabelDescription
workloadTBD

Metrics:

MetricDimensionsUnit
exchange.ldap_long_running_ops_per_seclong-runningoperations/s
exchange.ldap_read_timereadseconds
exchange.ldap_search_timesearchseconds
exchange.ldap_write_timewriteseconds
exchange.ldap_timeout_errorstimeouterrors/s

Per http proxy

TBD

Labels:

LabelDescription
workloadTBD

Metrics:

MetricDimensionsUnit
exchange.http_proxy_avg_auth_latencylatencyseconds
exchange.http_proxy_avg_cas_processing_latency_seclatencyseconds
exchange.http_proxy_mailbox_proxy_failure_ratefailurespercentage
exchange.http_proxy_mailbox_server_locator_avg_latency_seclatencyseconds
exchange.http_proxy_outstanding_proxy_requestsoutstandingrequests
exchange.http_proxy_requestsprocessedrequests/s

Per vm

TBD

Labels:

LabelDescription
vm_nameTBD

Metrics:

MetricDimensionsUnit
hyperv.vm_cpu_usagegues, hypervisor, remotepercentage
hyperv.vm_memory_physicalassigned_memoryMiB
hyperv.vm_memory_physical_guest_visiblevisible_memoryMiB
hyperv.vm_memory_pressure_currentpressurepercentage
hyperv.vm_vid_physical_pages_allocatedallocatedpages
hyperv.vm_vid_remote_physical_pagesremote_physicalpages

Per vm device

TBD

Labels:

LabelDescription
vm_deviceTBD

Metrics:

MetricDimensionsUnit
hyperv.vm_device_bytesread, writtenbytes/s
hyperv.vm_device_operationsread, writeoperations/s
hyperv.vm_device_errorserrorserrors/s

Per vm interface

TBD

Labels:

LabelDescription
vm_interfaceTBD

Metrics:

MetricDimensionsUnit
hyperv.vm_interface_bytesreceived, sentbytes/s
hyperv.vm_interface_packetsreceived, sentpackets/s
hyperv.vm_interface_packets_droppedincoming, outgoingdrops/s

Per vswitch

TBD

Labels:

LabelDescription
vswitchTBD

Metrics:

MetricDimensionsUnit
hyperv.vswitch_bytesreceived, sentbytes/s
hyperv.vswitch_packetsreceived, sentpackets/s
hyperv.vswitch_directed_packetsreceived, sentpackets/s
hyperv.vswitch_broadcast_packetsreceived, sentpackets/s
hyperv.vswitch_multicast_packetsreceived, sentpackets/s
hyperv.vswitch_dropped_packetsincoming, outgoingdrops/s
hyperv.vswitch_extensions_dropped_packetsincoming, outgoingdrops/s
hyperv.vswitch_packets_floodedfloodedpackets/s
hyperv.vswitch_learned_mac_addresseslearnedmac addresses/s
hyperv.vswitch_purged_mac_addressespurgedmac addresses/s

Alerts

The following alerts are available:

Alert nameOn metricDescription
windows_10min_cpu_usage windows.cpu_utilization_totalaverage CPU utilization over the last 10 minutes
windows_ram_in_use windows.memory_utilizationmemory utilization
windows_inbound_packets_discarded windows.net_nic_discardednumber of inbound discarded packets for the network interface in the last 10 minutes
windows_outbound_packets_discarded windows.net_nic_discardednumber of outbound discarded packets for the network interface in the last 10 minutes
windows_inbound_packets_errors windows.net_nic_errorsnumber of inbound errors for the network interface in the last 10 minutes
windows_outbound_packets_errors windows.net_nic_errorsnumber of outbound errors for the network interface in the last 10 minutes
windows_disk_in_use windows.logical_disk_space_usagedisk space utilization

Setup

Prerequisites

Install Windows exporter

To install the Windows exporter, follow the official installation guide.

Configuration

File

The configuration file name for this integration is go.d/windows.conf.

You can edit the configuration file using the edit-config script from the Netdata config directory.

cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
sudo ./edit-config go.d/windows.conf

Options

The following options can be defined globally: update_every, autodetection_retry.

Config options
NameDescriptionDefaultRequired
update_everyData collection frequency.1no
autodetection_retryRecheck interval in seconds. Zero means no recheck will be scheduled.0no
urlServer URL.yes
timeoutHTTP request timeout.1no
usernameUsername for basic HTTP authentication.no
passwordPassword for basic HTTP authentication.no
proxy_urlProxy URL.no
proxy_usernameUsername for proxy basic HTTP authentication.no
proxy_passwordPassword for proxy basic HTTP authentication.no
methodHTTP request method.GETno
bodyHTTP request body.no
headersHTTP request headers.no
not_follow_redirectsRedirect handling policy. Controls whether the client follows redirects.nono
tls_skip_verifyServer certificate chain and hostname validation policy. Controls whether the client performs this check.nono
tls_caCertification authority that the client uses when verifying the server's certificates.no
tls_certClient TLS certificate.no
tls_keyClient TLS key.no

Examples

Basic

A basic example configuration.

jobs:
- name: win_server
url: http://192.0.2.1:9182/metrics

HTTP authentication

Basic HTTP authentication.

Config
jobs:
- name: win_server
url: http://192.0.2.1:9182/metrics
username: username
password: password

HTTPS with self-signed certificate

Do not validate server certificate chain and hostname.

Config
jobs:
- name: win_server
url: https://192.0.2.1:9182/metrics
tls_skip_verify: yes

Virtual Node

The Virtual Node functionality allows you to define nodes in configuration files and treat them as ordinary nodes in all interfaces, panels, tabs, filters, etc. You can create a virtual node for all your Windows machines and control them as separate entities.

To make your Windows server a virtual node, you need to define virtual nodes in /etc/netdata/vnodes/vnodes.conf:

Note: To create a valid guid, you can use the uuidgen command on Linux, or the [guid]::NewGuid() command in PowerShell on Windows.

# /etc/netdata/vnodes/vnodes.conf
- hostname: win_server
guid: <value>
Config
jobs:
- name: win_server
vnode: win_server
url: http://192.0.2.1:9182/metrics

Multi-instance

Note: When you define multiple jobs, their names must be unique.

Collecting metrics from multiple remote instances.

Config
jobs:
- name: win_server1
url: http://192.0.2.1:9182/metrics

- name: win_server2
url: http://192.0.2.2:9182/metrics

Troubleshooting

Debug Mode

Important: Debug mode is not supported for data collection jobs created via the UI using the Dyncfg feature.

To troubleshoot issues with the windows collector, run the go.d.plugin with the debug option enabled. The output should give you clues as to why the collector isn't working.

  • Navigate to the plugins.d directory, usually at /usr/libexec/netdata/plugins.d/. If that's not the case on your system, open netdata.conf and look for the plugins setting under [directories].

    cd /usr/libexec/netdata/plugins.d/
  • Switch to the netdata user.

    sudo -u netdata -s
  • Run the go.d.plugin to debug the collector:

    ./go.d.plugin -d -m windows

Getting Logs

If you're encountering problems with the windows collector, follow these steps to retrieve logs and identify potential issues:

  • Run the command specific to your system (systemd, non-systemd, or Docker container).
  • Examine the output for any warnings or error messages that might indicate issues. These messages should provide clues about the root cause of the problem.

System with systemd

Use the following command to view logs generated since the last Netdata service restart:

journalctl _SYSTEMD_INVOCATION_ID="$(systemctl show --value --property=InvocationID netdata)" --namespace=netdata --grep windows

System without systemd

Locate the collector log file, typically at /var/log/netdata/collector.log, and use grep to filter for collector's name:

grep windows /var/log/netdata/collector.log

Note: This method shows logs from all restarts. Focus on the latest entries for troubleshooting current issues.

Docker Container

If your Netdata runs in a Docker container named "netdata" (replace if different), use this command:

docker logs netdata 2>&1 | grep windows

Do you have any feedback for this page? If so, you can open a new issue on our netdata/learn repository.