A Prometheus exporter for Windows machines.
See the linked documentation on each collector for more information on reported metrics, configuration settings and usage examples.
Filtering enabled collectorsThe windows_exporter
will expose all metrics from enabled collectors by default. This is the recommended way to collect metrics to avoid errors when comparing metrics of different families.
For advanced use the windows_exporter
can be passed an optional list of collectors to filter metrics. The collect[]
parameter may be used multiple times. In Prometheus configuration you can use this syntax under the scrape config.
params:
collect[]:
- foo
- bar
This can be useful for having different Prometheus servers collect specific metrics from nodes.
windows_exporter accepts flags to configure certain behaviours. The ones configuring the global behaviour of the exporter are listed below, while collector-specific ones are documented in the respective collector documentation above.
Flag Description Default value--web.listen-address
host:port for exporter. :9182
--telemetry.path
URL path for surfacing collected metrics. /metrics
--collectors.enabled
Comma-separated list of collectors to use. Use [defaults]
as a placeholder which gets expanded containing all the collectors enabled by default. [defaults]
--scrape.timeout-margin
Seconds to subtract from the timeout allowed by the client. Tune to allow for overhead or high loads. 0.5
--web.config.file
A web config for setting up TLS and Auth None --config.file
Using a config file from path None --log.file
Output file of log messages. One of [stdout, stderr, eventlog, <path to log file>]
The latest release can be downloaded from the releases page.
All binaries and installation packages are signed with an self-signed certificate. The public key can be found here. Once import into the trusted root certificate store, the binaries and installation packages will be trusted.
Each release provides a .msi installer. The installer will setup the windows_exporter as a Windows service, as well as create an exception in the Windows Firewall.
If the installer is run without any parameters, the exporter will run with default settings for enabled collectors, ports, etc.
The installer provides a configuration file to customize the exporter.
The configuration file
--config.file
parameter.The following parameters are available:
Name DescriptionENABLED_COLLECTORS
As the --collectors.enabled
flag, provide a comma-separated list of enabled collectors CONFIG_FILE
Use the --config.file
flag to specify a config file. If empty, default config file at install dir will be used. If set, the config file must be exist before the installation is started. LISTEN_ADDR
The IP address to bind to. Defaults to an empty string. (any local address) LISTEN_PORT
The port to bind to. Defaults to 9182
. METRICS_PATH
The path at which to serve metrics. Defaults to /metrics
TEXTFILE_DIRS
Use the --collector.textfile.directories
flag to specify one or more directories, separated by commas, where the collector should read text files containing metrics REMOTE_ADDR
Allows setting comma separated remote IP addresses for the Windows Firewall exception (allow list). Defaults to an empty string (any remote address). EXTRA_FLAGS
Allows passing full CLI flags. Defaults to an empty string. For --collectors.enabled
and --config.file
, use the specialized properties ENABLED_COLLECTORS
and CONFIG_FILE
ADDLOCAL
Enables features within the windows_exporter installer. Supported values: FirewallException
REMOVE
Disables features within the windows_exporter installer. Supported values: FirewallException
APPLICATIONFOLDER
Directory to install windows_exporter. Defaults to C:\Program Files\windows_exporter
Note
The installer properties are always preferred over the values defined in the config file. If you prefer to configure via the config file, avoid using any of the properties listed above.
Parameters are sent to the installer via msiexec
. On PowerShell, the --%
should be passed before defining properties.
Example invocations:
msiexec /i <path-to-msi-file> --% ENABLED_COLLECTORS=os,iis LISTEN_PORT=5000
Example service collector with a custom query.
msiexec /i <path-to-msi-file> --% ENABLED_COLLECTORS=os,service EXTRA_FLAGS="--collectors.exchange.enabled=""ADAccessProcesses"""
Define a config file.
msiexec /i <path-to-msi-file> --% CONFIG_FILE="D:\config.yaml"
Alternative install directory
msiexec /i <path-to-msi-file> --% ADDLOCAL=FirewallException APPLICATIONFOLDER="F:\Program Files\windows_exporter"
On some older versions of Windows, you may need to surround parameter values with double quotes to get the installation command parsing properly:
msiexec /i C:\Users\Administrator\Downloads\windows_exporter.msi --% ENABLED_COLLECTORS="ad,iis,memory,process,tcp,textfile,thermalzone" TEXTFILE_DIRS="C:\custom_metrics\"
To install the exporter with creating a firewall exception, use the following command:
msiexec /i <path-to-msi-file> --% ADDLOCAL=FirewallException
PowerShell versions 7.3 and above require PSNativeCommandArgumentPassing to be set to Legacy
when using --% EXTRA_FLAGS
:
$PSNativeCommandArgumentPassing = 'Legacy' msiexec /i <path-to-msi-file> ENABLED_COLLECTORS=os,service --% EXTRA_FLAGS="--collectors.exchange.enabled=""ADAccessProcesses"""
The windows_exporter can be run as a Docker container. The Docker image is available on
docker.io/prometheuscommunity/windows-exporter
ghcr.io/prometheus-community/windows-exporter
quay.io/prometheuscommunity/windows-exporter
The Docker image is tagged with the version of the exporter. The latest
tag is also available and points to the latest release.
See detailed steps to install on Windows Kubernetes here.
windows_exporter
supports Windows Server versions 2016 and later, and desktop Windows version 10 and 11 (21H2 or later).
There are known compatibility issues with Windows Server 2012 R2 and earlier versions.
windows_exporter provides the following HTTP endpoints:
/metrics
: Exposes metrics in the Prometheus text format./health
: Returns 200 OK when the exporter is running./debug/pprof/
: Exposes the pprof endpoints. Only, if --debug.enabled
is set.--collectors.enabled
argument
Using [defaults]
with --collectors.enabled
argument which gets expanded with all default collectors.
.\windows_exporter.exe --collectors.enabled "[defaults],process,container"
This enables the additional process and container collectors on top of the defaults.
Using a configuration fileYAML configuration files can be specified with the --config.file
flag. e.g. .\windows_exporter.exe --config.file=config.yml
. If you are using the absolute path, make sure to quote the path, e.g. .\windows_exporter.exe --config.file="C:\Program Files\windows_exporter\config.yml"
collectors: enabled: cpu,net,service collector: service: include: windows_exporter log: level: warn
An example configuration file can be found here.
Configuration file values can be mixed with CLI flags. E.G.
.\windows_exporter.exe --collectors.enabled=cpu
CLI flags enjoy a higher priority over values specified in the configuration file.
Under MIT
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4