# 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](opentelemetry-receiver.md) and into the [Meter System](./../../concepts-and-designs/meter.md).
Windows entity as a `Service` in OAP and on the `Layer: OS_WINDOWS`.

## Data flow
**For OpenTelemetry receiver:**
1. The Prometheus windows_exporter collects metrics data from the VMs.
2. The OpenTelemetry Collector fetches metrics from windows_exporter via Prometheus Receiver and pushes metrics to the SkyWalking OAP Server via the OpenCensus gRPC Exporter or OpenTelemetry gRPC exporter.
3. The SkyWalking OAP Server parses the expression with [MAL](../../concepts-and-designs/mal.md) to filter/calculate/aggregate and store the results.

## Setup
**For OpenTelemetry receiver:**
1. Setup [Prometheus windows_exporter](https://github.com/prometheus-community/windows_exporter).
2. Setup [OpenTelemetry Collector ](https://opentelemetry.io/docs/collector/). This is an example for OpenTelemetry Collector configuration [otel-collector-config.yaml](../../../../test/e2e-v2/cases/win/prometheus-windows_exporter/otel-collector-config.yaml).
3. Config SkyWalking [OpenTelemetry receiver](opentelemetry-receiver.md).

## Supported Metrics

| Monitoring Panel             | Unit | Metric Name                                                                                                             | Description                                                                                    | Data Source                                         |
|------------------------------|------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|-----------------------------------------------------|
| CPU Usage                    | %    | meter_win_cpu_total_percentage                                                                                           | The total percentage usage of the CPU core. If there are 2 cores, the maximum usage is 200%.   | Prometheus windows_exporter |
| Memory RAM Usage             | MB   | meter_win_memory_used                                                                                                  | The total RAM usage                                                                            | Prometheus windows_exporter |
| Memory Swap Usage            | %    | meter_win_memory_swap_percentage                                                                                    | The percentage usage of swap memory                                                            | Prometheus windows_exporter |
| CPU Average Used             | %    | meter_win_cpu_average_used                                                                                              | The percentage usage of the CPU core in each mode                                              | Prometheus windows_exporter |
| Memory RAM                   | MB   | meter_win_memory_total<br />meter_win_memory_available<br />meter_win_memory_used                                          | The RAM statistics, including Total / Available / Used                                         | Prometheus windows_exporter |
| Memory Swap                  | MB   | meter_win_memory_swap_free<br />meter_win_memory_swap_total                                                               | Swap memory statistics, including Free / Total                                                 | Prometheus windows_exporter |                                                                                         | The percentage usage of the file system at each mount point                                    | Prometheus windows_exporter |
| Disk R/W                     | KB/s | meter_win_disk_read,meter_win_disk_written                                                                                | The disk read and written                                                                      | Prometheus windows_exporter |
| Network Bandwidth Usage      | KB/s | meter_win_network_receive<br />meter_win_network_transmit                                                                 | The network receive and transmit                                                               | Prometheus windows_exporter |                                                                                     | The number of file descriptors allocated                                                       | Prometheus windows_exporter |

## 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 are found in `/config/ui-initialized-templates/os_windows`.
