Windows Monitoring
SkyWalking leverages Prometheus windows_exporter to collect metrics data from the Windows and leverages OpenTelemetry Collector to transfer the metrics to
OpenTelemetry receiver and into the Meter System.
Windows entity as a Service in OAP and on the Layer: OS_WINDOWS.
Data flow
For OpenTelemetry receiver:
- The Prometheus windows_exporter collects metrics data from the VMs.
- The OpenTelemetry Collector fetches metrics from windows_exporter via Prometheus Receiver and pushes metrics to the SkyWalking OAP Server via OpenTelemetry gRPC exporter.
- The SkyWalking OAP Server parses the expression with MAL to filter/calculate/aggregate and store the results.
Setup
For OpenTelemetry receiver:
- Setup Prometheus windows_exporter.
- Setup OpenTelemetry Collector . This is an example for OpenTelemetry Collector configuration otel-collector-config.yaml.
- Config SkyWalking OpenTelemetry receiver.
Native OpenTelemetry hostmetrics (expanded alternative)
SkyWalking can also receive Windows host and process metrics directly from OpenTelemetry Collector Contrib, without Prometheus windows_exporter.
- Install OpenTelemetry Collector Contrib
0.158.0on the monitored Windows host. - Use the deployable reference configuration otel-collector-hostmetrics-windows.yaml. It includes the Windows Performance Counters required by the existing
windows.yamlvirtual-memory and system-handle metrics. - Set
SW_OAP_GRPC_ADDRESSto the SkyWalking OAP OTLP/gRPC endpoint. Optionally setSW_PROCESS_NAME_REGEXto restrict the process executable names to collect. - Config SkyWalking OpenTelemetry receiver. The default OAP rule set enables both
windowsandprocess-hostmetrics-windows.
The configuration normalizes the system.cpu.time state attribute to the existing mode contract and maps native process.handles to process.open_handles. The process pipeline normalizes process identity and pre-aggregates operating-system processes with the same normalized process_name before OTLP export.
Supported Metrics
The OTel hostmetrics column below refers to the complete OpenTelemetry Collector Contrib reference configuration documented above. Most values come from the hostmetrics receiver. Metrics marked with * use Windows Performance Counters in the same Collector configuration where hostmetrics does not expose the required equivalent semantics.
| Monitoring Panel | Unit | Metric Name | Description | windows_exporter | OTel hostmetrics |
|---|---|---|---|---|---|
| CPU Usage | % | meter_win_cpu_total_percentage |
Total CPU usage across all logical CPUs | Yes | Yes |
| CPU Average Used | % | meter_win_cpu_average_used |
CPU usage by mode/state | Yes | Yes |
| CPU Cores | count | meter_win_cpu_cores_num |
Number of logical CPUs | — | Yes |
| Normalized CPU Usage | % | meter_win_cpu_norm_percentage |
CPU usage normalized by the number of logical CPUs | — | Yes |
| CPU Load | meter_win_cpu_load1meter_win_cpu_load5meter_win_cpu_load15 |
CPU load metrics exposed by the Collector hostmetrics load scraper | — | Yes | |
| Memory RAM Usage | MB | meter_win_memory_used |
Total RAM usage | Yes | Yes |
| Memory RAM | MB | meter_win_memory_totalmeter_win_memory_availablemeter_win_memory_used |
RAM Total / Available / Used | Yes | Yes |
| Virtual Memory Usage | % | meter_win_memory_virtual_memory_percentage |
Percentage of committed virtual memory in use | Yes | Yes* |
| Virtual Memory | MB | meter_win_memory_virtual_memory_freemeter_win_memory_virtual_memory_total |
Virtual memory Free / Total | Yes | Yes* |
| File System Mountpoint Usage | % | meter_win_filesystem_percentage |
File-system usage at each volume or mount point | — | Yes |
| Disk R/W | KB/s | meter_win_disk_readmeter_win_disk_written |
Disk read and write throughput | Yes | Yes |
| Network Bandwidth Usage | KB/s | meter_win_network_receivemeter_win_network_transmit |
Network receive and transmit throughput | Yes | Yes |
| Allocated Handles | count | meter_win_filehandles_allocated |
Current system-wide Windows handle count | — | Yes* |
| Pagefile Usage | % | meter_win_memory_pagefile_percentage |
Percentage of Windows pagefile in use | — | Yes |
| Pagefile | MB | meter_win_memory_pagefile_freemeter_win_memory_pagefile_total |
Windows pagefile Free / Total | — | Yes |
* The OpenTelemetry path obtains these values through the windowsperfcounters receiver included in otel-collector-hostmetrics-windows.yaml: Memory\\Commit Limit, Memory\\Committed Bytes, and Process(_Total)\\Handle Count. They are transported and processed through the same OpenTelemetry Collector pipeline but are not native hostmetrics scraper metrics.
Customizing
You can customize your own metrics/expression/dashboard panel.
The metrics definition and expression rules are found in /config/otel-rules/windows.yaml.
The dashboard panel confirmations ship from the SkyWalking Horizon UI bundle (apache/skywalking-horizon-ui); the OAP backend no longer hosts UI dashboard JSONs.