Project: SkyWalking (Observability and Analysis / Observability)
File: backend-vm-monitoring.md

SkyWalking leverages Prometheus node-exporter to collect metrics data from the VMs and leverages OpenTelemetry Collector to transfer the metrics to and into the . VM entity as a `Service` in OAP and on the `Layer: OS_LINUX`. SkyWalking also provides InfluxDB Telegraf to receive VMs' metrics data by . The telegraf receiver plugin receiver, process and convert the metrics, then it send converted metrics to . VM entity as a `Service` in OAP and on the `Layer: OS_LINUX`. For OpenTelemetry receiver: The Prometheus node-exporter collects metrics data from the VMs. The OpenTelemetry Collector fetches metrics from node-exporter via Prometheus Receiver and pushes metrics to the SkyWalking OAP Server via OpenTelemetry gRPC exporter. The SkyWalking OAP Server parses the expression with to filter/calculate/aggregate and store the results. For Telegraf receiver: The InfluxDB Telegraf collects various metrics data from the VMs. The cpu, mem, system, disk and diskio input plugins should be set in telegraf.conf file. The InfluxDB Telegraf send `JSON` format metrics by `HTTP` messages to Telegraf Receiver, then pushes converted metrics to the SkyWalking OAP Server . The SkyWalking OAP Server parses the expression with to filter/calculate/aggregate ad store the results. The metervmcpuaverageused metrics indicates the average usage of each CPU core for telegraf receiver. For OpenTelemetry receiver: Setup . Setup . This is an example for OpenTelemetry Collector configuration . Config SkyWalking . For Telegraf receiver: Setup InfluxDB Telegraf's `telegraf.conf file` according to . Setup InfluxDB Telegraf's `telegraf.conf file` specific rules according to . Config SkyWalking . | Monitoring Panel | Unit | Metric Name | Description | Data Source | |||-||--| | CPU Usage | % | metervmcputotalpercentage | The total percentage usage of the CPU core. If there are 2 cores, the maximum usage is

| Prometheus node-exporter<br />Telegraf input plugin | | Memory RAM Usage | MB | metervmmemory_used | The total RAM usage | Prometheus node-exporter<br />Telegraf input plugin | | Memory Swap Usage | % | metervmmemoryswappercentage | The percentage usage of swap memory | Prometheus node-exporter<br />Telegraf input plugin | | CPU Average Used | % | metervmcpuaverageused | The percentage usage of the CPU core in each mode | Prometheus node-exporter<br />Telegraf input plugin | | CPU Load | | metervmcpuload1<br />metervmcpuload5<br />metervmcpu_load15 | The CPU 1m / 5m / 15m average load | Prometheus node-exporter<br />Telegraf input plugin | | Memory RAM | MB | metervmmemorytotal<br />metervmmemoryavailable<br />metervmmemoryused<br />metervmmemorybuff_cache | The RAM statistics, including Total / Available / Used / Buff-Cache | Prometheus node-exporter<br />Telegraf input plugin | | Memory Swap | MB | metervmmemoryswapfree<br />metervmmemoryswaptotal | Swap memory statistics, including Free / Total | Prometheus node-exporter<br />Telegraf input plugin | | File System Mountpoint Usage | % | metervmfilesystem_percentage | The percentage usage of the file system at each mount point | Prometheus node-exporter<br />Telegraf input plugin | | Disk R/W | KB/s | metervmdiskread<br />metervmdiskwritten | The disk read and written | Prometheus node-exporter<br />Telegraf input plugin | | Network Bandwidth Usage | KB/s | metervmnetworkreceive<br />metervmnetworktransmit | The network receive and transmit | Prometheus node-exporter<br />Telegraf input plugin | | Network Status | | metervmtcpcurrestab<br />metervmtcptw<br />metervmtcpalloc<br />metervmsocketsused<br />metervmudpinuse | The number of TCPs established / TCP time wait / TCPs allocated / sockets in use / UDPs in use | Prometheus node-exporter<br />Telegraf input plugin | | Filefd Allocated | | metervmfilefd_allocated | The number of file descriptors allocated | Prometheus node-exporter | You can customize your own metrics/expression/dashboard panel. The metrics definition and expression rules are found in `/config/otel-rules/vm.yaml` and `/config/telegraf-rules/vm.yaml`. The dashboard panel confirmations are found in `/config/ui-initialized-templates/os_linux`. For more details, see the blog article .