All Products
Search
Document Center

Application Real-Time Monitoring Service:Install and configure Windows Exporter

Last Updated:Aug 27, 2026

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

  1. Log on to your Windows ECS instance as an administrator.

  2. Download the Windows Exporter installation package (windows_exporter-1.22.0-amd64.msi).

  3. Run the installer by using one of these methods: The installer uses the following defaults:

    • Double-click the .msi file.

    • Run the following command: ``powershell msiexec /i windows_exporter-1.22.0-amd64.msi ``

    SettingDefault value
    Installation directoryC:\Program Files (x86)\windows_exporter
    Listening port9182
    Enabled collectorscpu, cpu_info, memory, process, tcp, cs, logical_disk, net, os, system, textfile, time
  4. After installation completes, verify that the windows_exporter service appears in the Windows Services console.

  5. Confirm that the exporter is serving metrics: Alternatively, open http://localhost:9182/metrics in a browser. If the exporter is running correctly, you see Prometheus-formatted metrics output.

    Note: If you changed the default port, replace 9182 with your configured port number.

       curl http://localhost:9182/metrics

    The C:\Program Files (x86)\windows_exporter installation directory contains the textfile_inputs folder, config.yml, and windows_exporter.exe. A sample config.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: 5

    Access http://localhost:9182/metrics in 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_exporter

Alternatively, restart the service from the Windows Services console.

In the Windows Services console, right-click the windows_exporter service, select All Tasks > Restart, 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.