Skip to main content

Windows machine collector

This module will monitor one or more Windows machines, using the windows_exporter.

Requirements

Netdata monitors Windows hosts by utilizing the Prometheus exporter for Windows machines, a native Windows agent running on each host.

To quickly test Netdata directly on a Windows machine, you can use the Netdata MSI installer. The installer runs Netdata in a custom WSL deployment. WSL was not designed for production environments, so we do not recommend using the MSI installer in production.

For production use, you need to install Netdata on one or more nodes running Linux:

windows

  • Install the latest Prometheus exporter for Windows on every Windows host you want to monitor, enabling the collectors listed here: msiexec /i "[PATH_TO_MSI]" ENABLED_COLLECTORS=process,ad,adcs,adfs,cpu,dns,memory,mssql,net,os,tcp,logical_disk
  • Get the installation commands from Netdata Cloud and install Netdata on one or more Linux nodes.
  • Configure each Netdata instance to collect data remotely, from several Windows hosts. Just add one job for each host to windows.conf, as shown in the configuration section.

Automated charts and alerts for your entire Windows infrastructure will be automatically generated. Each Windows host (data collection job) will be identifiable as an "instance" in the Netdata Cloud charts.

Metrics

The module collects metrics from the following collectors:

All metrics have a prefix.

Labels per scope:

  • global: no labels.
  • logical disk: disk.
  • network device: nic.
  • thermalzone: thermalzone.
  • website: website.
  • mssql instance: mssql_instance.
  • database: mssql_instance, database.
  • certificate template: cert_template.
  • service: service.
  • process: process.
  • vm: vm_name.
  • vm device: vm_device.
  • vm interface: vm_interface.
  • vswitch: vswitch.
MetricScopeDimensionsUnits
windows.cpu_utilization_totalglobaldpc, user, privileged, interruptpercentage
windows.cpu_core_utilizationcpu coredpc, user, privileged, interruptpercentage
windows.cpu_core_interruptscpu coreinterruptsinterrupts/s
windows.cpu_core_dpcscpu coredpcsdpcs/s
windows.cpu_core_cstatecpu corec1, c2, c3percentage
windows.memory_utilizationglobalavailable, usedbytes
windows.memory_page_faultsglobalpage_faultsevents/s
windows.memory_swap_utilizationglobalavailable, usedbytes
windows.memory_swap_operationsglobalread, writeoperations/s
windows.memory_swap_pagesglobalread, writtenpages/s
windows.memory_cachedglobalcachedKiB
windows.memory_cache_faultsglobalcache_faultsevents/s
windows.memory_system_poolglobalpaged, non-pagedbytes
windows.logical_disk_utilizationlogical diskfree, usedbytes
windows.logical_disk_bandwidthlogical diskread, writebytes/s
windows.logical_disk_operationslogical diskreads, writesoperations/s
windows.logical_disk_latencylogical diskread, writeseconds
windows.net_nic_bandwidthnetwork devicereceived, sentkilobits/s
windows.net_nic_packetsnetwork devicereceived, sentpackets/s
windows.net_nic_errorsnetwork deviceinbound, outbounderrors/s
windows.net_nic_discardednetwork deviceinbound, outbounddiscards/s
windows.tcp_conns_establishedglobalipv4, ipv6connections
windows.tcp_conns_activeglobalipv4, ipv6connections/s
windows.tcp_conns_passiveglobalipv4, ipv6connections/s
windows.tcp_conns_failuresglobalipv4, ipv6failures/s
windows.tcp_conns_resetsglobalipv4, ipv6resets/s
windows.tcp_segments_receivedglobalipv4, ipv6segments/s
windows.tcp_segments_sentglobalipv4, ipv6segments/s
windows.tcp_segments_retransmittedglobalipv4, ipv6segments/s
windows.os_processesglobalprocessesnumber
windows.os_usersglobalusersusers
windows.os_visible_memory_usageglobalfree, usedbytes
windows.os_paging_files_usageglobalfree, usedbytes
windows.system_threadsglobalthreadsnumber
windows.system_uptimeglobaltimeseconds
windows.logon_type_sessionsglobalsystem, interactive, network, batch, service, proxy, unlock, network_clear_text, new_credentials, remote_interactive, cached_interactive, cached_remote_interactive, cached_unlockseconds
windows.thermalzone_temperaturethermalzonetemperatureCelsius
windows.processes_cpu_utilizationglobala dimension per processpercentage
windows.processes_handlesglobala dimension per processhandles
windows.processes_io_bytesglobala dimension per processbytes/s
windows.processes_io_operationsglobala dimension per processoperations/s
windows.processes_page_faultsglobala dimension per processpgfaults/s
windows.processes_page_file_bytesglobala dimension per processbytes
windows.processes_pool_bytesglobala dimension per processbytes
windows.processes_threadsglobala dimension per processthreads
windows.service_stateservicerunning, stopped, start_pending, stop_pending, continue_pending, pause_pending, paused, unknownstate
windows.service_statusserviceok, error, unknown, degraded, pred_fail, starting, stopping, service, stressed, nonrecover, no_contact, lost_commstatus
iis.website_trafficwebsitereceived, sentbytes/s
iis.website_requests_ratewebsiterequestsrequests/s
iis.website_active_connections_countwebsiteactiveconnections
iis.website_users_countwebsiteanonymous, non_anonymoususers
iis.website_connection_attempts_ratewebsiteconnectionattempts/s
iis.website_isapi_extension_requests_countwebsiteisapirequests
iis.website_isapi_extension_requests_ratewebsiteisapirequests/s
iis.website_ftp_file_transfer_ratewebsitereceived, sentfiles/s
iis.website_logon_attempts_ratewebsitelogonattempts/s
iis.website_errors_ratewebsitedocument_locked, document_not_founderrors/s
iis.website_uptimewebsitedocument_locked, document_not_foundseconds
mssql.instance_accessmethods_page_splitsmssql instancepagesplits/s
mssql.instance_cache_hit_ratiomssql instancehit_ratiopercentage
mssql.instance_bufman_checkpoint_pagesmssql instanceflushedpages/s
mssql.instance_bufman_page_life_expectancymssql instancelife_expectancyseconds
mssql.instance_bufman_iopsmssql instanceread, writteniops
mssql.instance_blocked_processesmssql instanceblockedprocesses
mssql.instance_user_connectionmssql instanceuserconnections
mssql.instance_locks_lock_waitmssql instancealloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xactlocks/s
mssql.instance_locks_deadlocksmssql instancealloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xactlocks/s
mssql.instance_memmgr_connection_memory_bytesmssql instancememorybytes
mssql.instance_memmgr_external_benefit_of_memorymssql instancebenefitbytes
mssql.instance_memmgr_pending_memory_grantsmssql instancependingprocesses
mssql.instance_memmgr_server_memorymssql instancememorybytes
mssql.instance_sql_errorsmssql instancedb_offline, info, kill_connection, usererrors
mssql.instance_sqlstats_auto_parameterization_attemptsmssql instancefailedattempts/s
mssql.instance_sqlstats_batch_requestsmssql instancebatchrequests/s
mssql.instance_sqlstats_safe_auto_parameterization_attemptsmssql instancesafeattempts/s
mssql.instance_sqlstats_sql_compilationsmssql instancecompilationscompilations/s
mssql.instance_sqlstats_sql_recompilationsmssql instancerecompilesrecompiles/s
mssql.database_active_transactionsdatabaseactivetransactions
mssql.database_backup_restore_operationsdatabasebackupoperations/s
mssql.database_data_files_sizedatabasesizebytes
mssql.database_log_flusheddatabaseflushedbytes/s
mssql.database_log_flushesdatabaselogflushes/s
mssql.database_transactionsdatabasetransactionstransactions/s
mssql.database_write_transactionsdatabasewritetransactions/s
ad.database_operationsglobaladd, delete, modify, recycleoperations/s
ad.directory_operationsglobalread, write, searchoperations/s
ad.name_cache_lookupsgloballookupslookups/s
ad.name_cache_hitsglobalhitshits/s
ad.atq_average_request_latencyglobaltimeseconds
ad.atq_outstanding_requestsglobaloutstandingrequests
ad.dra_replication_intersite_compressed_trafficglobalinbound, outboundbytes/s
ad.dra_replication_intrasite_compressed_trafficglobalinbound, outboundbytes/s
ad.dra_replication_sync_objects_remainingglobalinbound, outboundobjects
ad.dra_replication_objects_filteredglobalinbound, outboundobjects/s
ad.dra_replication_properties_updatedglobalinbound, outboundproperties/s
ad.dra_replication_properties_filteredglobalinbound, outboundproperties/s
ad.dra_replication_pending_syncsglobalpendingsyncs
ad.dra_replication_sync_requestsglobalrequestsrequests/s
ad.ds_threadsglobalin_usethreads
ad.ldap_last_bind_timegloballast_bindseconds
ad.bindsglobalbindsbinds/s
ad.ldap_searchesglobalsearchessearches/s
adcs.cert_template_requestscertificate templaterequestsrequests/s
adcs.cert_template_failed_requestscertificate templatefailedrequests/s
adcs.cert_template_issued_requestscertificate templateissuedrequests/s
adcs.cert_template_pending_requestscertificate templatependingrequests/s
adcs.cert_template_request_processing_timecertificate templateprocessing_timeseconds
adcs.cert_template_retrievalscertificate templateretrievalsretrievals/s
adcs.cert_template_retrieval_processing_timecertificate templateprocessing_timeseconds
adcs.cert_template_request_cryptographic_signing_timecertificate templatesinging_timeseconds
adcs.cert_template_request_policy_module_processingcertificate templateprocessing_timeseconds
adcs.cert_template_challenge_responsescertificate templatechallengeresponses/s
adcs.cert_template_challenge_response_processing_timecertificate templateprocessing_timeseconds
adcs.cert_template_signed_certificate_timestamp_listscertificate templateprocessedlists/s
adcs.cert_template_signed_certificate_timestamp_list_processing_timecertificate templateprocessing_timeseconds
adfs.ad_login_connection_failuresglobalconnectionfailures/s
adfs.certificate_authenticationsglobalauthenticationsauthentications/s
adfs.db_artifact_failuresglobalconnectionfailures/s
adfs.db_artifact_query_time_secondsglobalquery_timeseconds/s
adfs.db_config_failuresglobalconnectionfailures/s
adfs.db_config_query_time_secondsglobalquery_timeseconds/s
adfs.device_authenticationsglobalauthenticationsauthentications/s
adfs.external_authenticationsglobalsuccess, failureauthentications/s
adfs.federated_authenticationsglobalauthenticationsauthentications/s
adfs.federation_metadata_requestsglobalrequestsrequests/s
adfs.oauth_authorization_requestsglobalrequestsrequests/s
adfs.oauth_client_authenticationsglobalsuccess, failureauthentications/s
adfs.oauth_client_credentials_requestsglobalsuccess, failurerequests/s
adfs.oauth_client_privkey_jwt_authenticationsglobalsuccess, failureauthentications/s
adfs.oauth_client_secret_basic_authenticationsglobalsuccess, failureauthentications/s
adfs.oauth_client_secret_post_authenticationsglobalsuccess, failureauthentications/s
adfs.oauth_client_windows_authenticationsglobalsuccess, failureauthentications/s
adfs.oauth_logon_certificate_requestsglobalsuccess, failurerequests/s
adfs.oauth_password_grant_requestsglobalsuccess, failurerequests/s
adfs.oauth_token_requests_successglobalsuccessrequests/s
adfs.passive_requestsglobalpassiverequests/s
adfs.passport_authenticationsglobalpassportauthentications/s
adfs.password_change_requestsglobalsuccess, failurerequests/s
adfs.samlp_token_requests_successglobalsuccessrequests/s
adfs.sso_authenticationsglobalsuccess, failureauthentications/s
adfs.token_requestsglobalrequestsrequests/s
adfs.userpassword_authenticationsglobalsuccess, failureauthentications/s
adfs.windows_integrated_authenticationsglobalauthenticationsauthentications/s
adfs.wsfed_token_requests_successglobalsuccessrequests/s
adfs.wstrust_token_requests_successglobalsuccessrequests/s
netframework.clrexception_thrownprocessexceptionsexceptions/s
netframework.clrexception_filtersprocessfiltersfilters/s
netframework.clrexception_finallysprocessfinallysfinallys/s
netframework.clrexception_throw_to_catch_depthprocesstraversedstack_frames/s
netframework.clrinterop_com_callable_wrappersprocesscom_callable_wrappersccw/s
netframework.clrinterop_interop_marshallingsprocessmarshallingsmarshallings/s
netframework.clrinterop_interop_stubs_createdprocesscreatedstubs/s
netframework.clrjit_methodsprocessjit-compiledmethods/s
netframework.clrjit_timeprocesstimepercentage
netframework.clrjit_standard_failuresprocessfailuresfailures/s
netframework.clrjit_il_bytesprocesscompiled_msilbytes/s
netframework.clrloading_loader_heap_sizeprocesscommittedbytes
netframework.clrloading_appdomains_loadedprocessloadeddomain/s
netframework.clrloading_appdomains_unloadedprocessunloadeddomain/s
netframework.clrloading_assemblies_loadedprocessloadedassemblies/s
netframework.clrloading_classes_loadedprocessloadedclasses/s
netframework.clrloading_class_load_failuresprocessclass_loadfailures/s
netframework.clrlocksandthreads_queue_lengthprocessthreadsthreads/s
netframework.clrlocksandthreads_current_logical_threadsprocesslogicalthreads
netframework.clrlocksandthreads_current_physical_threadsprocessphysicalthreads
netframework.clrlocksandthreads_recognized_threadsprocessthreadsthreads/s
netframework.clrlocksandthreads_contentionsprocesscontentionscontentions/s
netframework.clrmemory_allocated_bytesprocessallocatedbytes/s
netframework.clrmemory_finalization_survivorsprocesssurvivedobjects
netframework.clrmemory_heap_sizeprocessheapbytes
netframework.clrmemory_promotedprocesspromotedbytes
netframework.clrmemory_number_gc_handlesprocessusedhandles
netframework.clrmemory_collectionsprocessgcgc/s
netframework.clrmemory_induced_gcprocessgcgc/s
netframework.clrmemory_number_pinned_objectsprocesspinnedobjects
netframework.clrmemory_number_sink_blocks_in_useprocessusedblocks
netframework.clrmemory_committedprocesscommittedbytes
netframework.clrmemory_reservedprocessreservedbytes
netframework.clrmemory_gc_timeprocesstimepercentage
netframework.clrremoting_channelsprocessregisteredchannels/s
netframework.clrremoting_context_bound_classes_loadedprocessloadedclasses
netframework.clrremoting_context_bound_objectsprocessallocatedobjects/s
netframework.clrremoting_context_proxiesprocessobjectsobjects/s
netframework.clrremoting_contextsprocesscontextscontexts
netframework.clrremoting_remote_callsprocessrpccalls/s
netframework.clrsecurity_link_time_checksprocesslinktimechecks/s
netframework.clrsecurity_checks_timeprocesstimepercentage
netframework.clrsecurity_stack_walk_depthprocessstackdepth
netframework.clrsecurity_runtime_checksprocessruntimechecks/s
exchange.activesync_ping_cmds_pendingglobalpendingcommands
exchange.activesync_requestsglobalreceivedrequests/s
exchange.activesync_sync_cmdsglobalprocessedcommands/s
exchange.autodiscover_requestsglobalprocessedrequests/s
exchange.avail_service_requestsglobalservicedrequests/s
exchange.owa_current_unique_usersgloballogged-inusers
exchange.owa_requests_totalglobalhandledrequests/s
exchange.rpc_active_user_countglobalactiveusers
exchange.rpc_avg_latencygloballatencyseconds
exchange.rpc_connection_countglobalconnectionsconnections
exchange.rpc_operationsglobaloperationsoperations/s
exchange.rpc_requestsglobalprocessedrequests
exchange.rpc_user_countglobalusersusers
exchange.transport_queues_active_mail_box_deliverygloballow, high,none,normalmessages/s
exchange.transport_queues_external_active_remote_deliverygloballow, high,none,normalmessages/s
exchange.transport_queues_external_largest_deliverygloballow, high,none,normalmessages/s
exchange.transport_queues_internal_active_remote_deliverygloballow, high,none,normalmessages/s
exchange.transport_queues_internal_largest_deliverygloballow, high,none,normalmessages/s
exchange.transport_queues_retry_mailbox_deliverygloballow, high,none,normalmessages/s
exchange.transport_queues_poisongloballow, high,none,normalmessages/s
exchange.workload_active_tasksexchange workloadactivetasks
exchange.workload_completed_tasksexchange workloadcompletedtasks/s
exchange.workload_queued_tasksexchange workloadqueuedtasks/s
exchange.workload_yielded_tasksexchange workloadyieldedtasks/s
exchange.workload_activity_statusexchange workloadactive, pausedstatus
exchange.ldap_long_running_ops_per_secldap processlong-runningoperations/s
exchange.ldap_read_timeldap processreadseconds
exchange.ldap_search_timeldap processsearchseconds
exchange.ldap_write_timeldap processwriteseconds
exchange.ldap_timeout_errorsldap processtimeouterrors/s
exchange.http_proxy_avg_auth_latencyhttp proxylatencyseconds
exchange.http_proxy_avg_cas_processing_latency_sechttp proxylatencyseconds
exchange.http_proxy_mailbox_proxy_failure_ratehttp proxyfailurespercentage
exchange.http_proxy_mailbox_server_locator_avg_latency_sechttp proxylatencyseconds
exchange.http_proxy_outstanding_proxy_requestshttp proxyoutstandingrequests
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_errorsskippedrequests
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
hyperv.vm_cpu_usagevmguest, hypervisor, remotepercentage
hyperv.vm_memory_physicalvmassigned_memoryMiB
hyperv.vm_memory_physical_guest_visiblevmvisible_memoryMiB
hyperv.vm_memory_pressure_currentvmpressurepercentage
hyperv.vm_vid_physical_pages_allocatedvmallocatedpages
hyperv.vm_vid_remote_physical_pagesvmremote_physicalpages
hyperv.vm_device_bytesvm deviceread, writtenbytes/s
hyperv.vm_device_operationsvm deviceread, writeoperations/s
hyperv.vm_device_errorsvm deviceerrorserrors/s
hyperv.vm_interface_bytesvm interfacereceived, sentbytes/s
hyperv.vm_interface_packetsvm interfacereceived, sentpackets/s
hyperv.vm_interface_packets_droppedvm interfaceincoming, outgoingdrops/s
hyperv.vswitch_bytesvswitchreceived, sentbytes/s
hyperv.vswitch_packetsvswitchreceived, sentpackets/s
hyperv.vswitch_directed_packetsvswitchreceived, sentpackets/s
hyperv.vswitch_broadcast_packetsvswitchreceived, sentpackets/s
hyperv.vswitch_multicast_packetsvswitchreceived, sentpackets/s
hyperv.vswitch_dropped_packetsvswitchincoming, outgoingdrops/s
hyperv.vswitch_extensions_dropped_packetsvswitchincoming, outgoingdrops/s
hyperv.vswitch_packets_floodedvswitchfloodedpackets/s
hyperv.vswitch_learned_mac_addressesvswitchlearnedmac addresses/s
hyperv.vswitch_purged_mac_addressesvswitchpurgedmac addresses/s

Configuration

Edit the go.d/windows.conf configuration file using edit-config from the Netdata config directory, which is typically at /etc/netdata.

cd /etc/netdata # Replace this path with your Netdata config directory
sudo ./edit-config go.d/windows.conf

Needs only url to windows_exporter metrics endpoint. Here is an example for 2 instances:

jobs:
- name: win_server1
url: http://203.0.113.10:9182/metrics

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

Hint: Use friendly server names for job names, as these will appear as "instances" in Netdata Cloud charts and on the right side menu of the agent UI charts.

For all available options please see module configuration file.

Virtual Nodes

Netdata’s new virtual nodes functionality allows you to define nodes in configuration files and have them be treated as regular nodes in all the UI, dashboards, tabs, filters etc. For example, you can create a virtual node each for all your Windows machines and monitor them as discrete entities. Virtual nodes can help you simplify your infrastructure monitoring and focus on the individual node that matters.

To define your Windows server a virtual node you need to:

  • Define virtual nodes in /etc/netdata/vnodes/vnodes.conf

    - hostname: win_server1
    guid: <value>

    Just remember to use a valid guid (On Linux you can use uuidgen command to generate one, on Windows just use the [guid]::NewGuid() command in PowerShell)

  • Add the vnode config to the windows monitoring job we created earlier, see higlighted line below:

      jobs:
    - name: win_server1
    vnode: win_server1
    url: http://203.0.113.10:9182/metrics

Troubleshooting

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

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