Windows Exporter exposes Windows system metrics in Prometheus format, allowing Managed Service for Prometheus to scrape and monitor your Windows Elastic Compute Service (ECS) instances. This guide covers installation, configuration, and the ECS tagging required for Service Discovery.
Prerequisites
Before you begin, make sure you have:
A Windows ECS instance with administrator access
Network connectivity between the ECS instance and your Managed Service for Prometheus environment
Step 1: Install Windows Exporter
Log on to your Windows ECS instance as an administrator.
Download the Windows Exporter installation package (
windows_exporter-1.22.0-amd64.msi).Run the installer by using one of these methods: The installer uses the following defaults:
Double-click the
.msifile.Run the following command: ``
powershell msiexec /i windows_exporter-1.22.0-amd64.msi``
Setting Default value Installation directory C:\Program Files (x86)\windows_exporterListening port 9182 Enabled collectors cpu, cpu_info, memory, process, tcp, cs, logical_disk, net, os, system, textfile, time After installation completes, verify that the
windows_exporterservice appears in the Windows Services console.Confirm that the exporter is serving metrics: Alternatively, open
http://localhost:9182/metricsin a browser. If the exporter is running correctly, you see Prometheus-formatted metrics output.Note: If you changed the default port, replace
9182with your configured port number.curl http://localhost:9182/metricsThe
C:\Program Files (x86)\windows_exporterinstallation directory contains thetextfile_inputsfolder,config.yml, andwindows_exporter.exe. A sampleconfig.yml:collectors: enabled: cpu,cpu_info,memory,process,tcp,cs,logical_disk,net,os,system,time,logon,textfile collector: scheduled_task: blacklist: /Microsoft/.+ log: level: info scrape: timeout-margin: 0.5 telemetry: addr: ":9182" path: /metrics max-requests: 5Access
http://localhost:9182/metricsin a browser to verify the exporter is running. If running correctly, you see Prometheus-formatted metrics:# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles. # TYPE go_gc_duration_seconds summary go_gc_duration_seconds{quantile="0"} 0 go_gc_duration_seconds{quantile="0.25"} 0 go_gc_duration_seconds{quantile="0.5"} 0 go_gc_duration_seconds{quantile="0.75"} 0.0002118 go_gc_duration_seconds{quantile="1"} 0.0007327 go_gc_duration_seconds_sum 0.0031355 go_gc_duration_seconds_count 24 # HELP go_goroutines Number of goroutines that currently exist. # TYPE go_goroutines gauge go_goroutines 14 # HELP go_info Information about the Go environment. # TYPE go_info gauge go_info{version="go1.19.6"} 1 # HELP go_memstats_alloc_bytes Number of bytes allocated and still in use. # TYPE go_memstats_alloc_bytes gauge go_memstats_alloc_bytes 4.227856e+06 # HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed. # TYPE go_memstats_alloc_bytes_total counter go_memstats_alloc_bytes_total 3.5879624e+07 # HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table. # TYPE go_memstats_buck_hash_sys_bytes gauge go_memstats_buck_hash_sys_bytes 1.46185e+06 # HELP go_memstats_frees_total Total number of frees. # TYPE go_memstats_frees_total counter go_memstats_frees_total 80306 # HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata. # TYPE go_memstats_gc_sys_bytes gauge go_memstats_gc_sys_bytes 7.639728e+06 # HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use. # TYPE go_memstats_heap_alloc_bytes gauge go_memstats_heap_alloc_bytes 4.227856e+06 # HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used. # TYPE go_memstats_heap_idle_bytes gauge go_memstats_heap_idle_bytes 5.767168e+06 # HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use. # TYPE go_memstats_heap_inuse_bytes gauge go_memstats_heap_inuse_bytes 6.520832e+06 # HELP go_memstats_heap_objects Number of allocated objects. # TYPE go_memstats_heap_objects gauge go_memstats_heap_objects 17582 # HELP go_memstats_heap_released_bytes Number of heap bytes released to OS. # TYPE go_memstats_heap_released_bytes gauge go_memstats_heap_released_bytes 5.767168e+06
Step 2: Configure Windows Exporter
You can modify the configuration file to change the listening port or adjust which collectors are used. For more information, see the Windows Exporter documentation.
After you change the configuration, restart the service:
sc stop windows_exporter && sc start windows_exporterAlternatively, restart the service from the Windows Services console.
In the Windows Services console, right-click the windows_exporter service, select , and restart the service.
Step 3: Tag your ECS instance for Service Discovery
Managed Service for Prometheus uses ECS instance tags for Service Discovery. Add a tag to your Windows ECS instances so that Prometheus can automatically discover and scrape them.
For example, add the tag ecs_os:windows to your Windows ECS instance.
Note: If your Windows ECS instances already share a common tag that distinguishes them from other instances, skip this step and use that existing tag.
On the Instance Details page of your ECS instance, in the Tags section at the bottom, verify that the tag ecs_os:windows has been added. To modify, click Edit Tags.
Next steps
After you configure Windows Exporter, set up the integration in the Managed Service for Prometheus console to start viewing monitoring data. For detailed instructions, see Monitoring Windows with Prometheus.