For your Linux Node Exporter target, these are the most important PromQL queries for CPU, RAM, Disk, Network, Load, Uptime. Your uploaded metrics include Node Exporter metrics like node_cpu_seconds_total, node_memory_MemAvailable_bytes, node_filesystem_size_bytes, node_disk_*and node_network_*.
1. Server UP / DOWN
up{job="linux"}
Code language: JavaScript (javascript)
1 = server is up0 = server is down
2. CPU Usage %
100 - (avg by(instance) (rate(node_cpu_seconds_total{job="linux",mode="idle"}[5m])) * 100)
Code language: JavaScript (javascript)
For one server:
100 - (avg(rate(node_cpu_seconds_total{job="linux",instance="172.31.2.24:9100",mode="idle"}[5m])) * 100)
Code language: JavaScript (javascript)
3. CPU Idle %
avg by(instance) (rate(node_cpu_seconds_total{job="linux",mode="idle"}[5m])) * 100
Code language: JavaScript (javascript)
4. CPU System Usage %
avg by(instance) (rate(node_cpu_seconds_total{job="linux",mode="system"}[5m])) * 100
Code language: JavaScript (javascript)
5. CPU User Usage %
avg by(instance) (rate(node_cpu_seconds_total{job="linux",mode="user"}[5m])) * 100
Code language: JavaScript (javascript)
6. CPU I/O Wait %
avg by(instance) (rate(node_cpu_seconds_total{job="linux",mode="iowait"}[5m])) * 100
Code language: JavaScript (javascript)
Very useful for finding slow disk/storage issues.
7. RAM Usage %
100 * (1 - (node_memory_MemAvailable_bytes{job="linux"} / node_memory_MemTotal_bytes{job="linux"}))
Code language: JavaScript (javascript)
8. RAM Available GB
node_memory_MemAvailable_bytes{job="linux"} / 1024 / 1024 / 1024
Code language: JavaScript (javascript)
9. RAM Total GB
node_memory_MemTotal_bytes{job="linux"} / 1024 / 1024 / 1024
Code language: JavaScript (javascript)
10. RAM Used GB
(node_memory_MemTotal_bytes{job="linux"} - node_memory_MemAvailable_bytes{job="linux"}) / 1024 / 1024 / 1024
Code language: JavaScript (javascript)
11. Disk Usage %
100 * (1 - (
node_filesystem_avail_bytes{job="linux",fstype!~"tmpfs|overlay|squashfs"}
/
node_filesystem_size_bytes{job="linux",fstype!~"tmpfs|overlay|squashfs"}
))
Code language: JavaScript (javascript)
12. Disk Usage % Only Root /
100 * (1 - (
node_filesystem_avail_bytes{job="linux",mountpoint="/"}
/
node_filesystem_size_bytes{job="linux",mountpoint="/"}
))
Code language: JavaScript (javascript)
13. Disk Free GB
node_filesystem_avail_bytes{job="linux",fstype!~"tmpfs|overlay|squashfs"} / 1024 / 1024 / 1024
Code language: JavaScript (javascript)
14. Disk Total GB
node_filesystem_size_bytes{job="linux",fstype!~"tmpfs|overlay|squashfs"} / 1024 / 1024 / 1024
Code language: JavaScript (javascript)
15. Disk Read MB/s
rate(node_disk_read_bytes_total{job="linux"}[5m]) / 1024 / 1024
Code language: JavaScript (javascript)
16. Disk Write MB/s
rate(node_disk_written_bytes_total{job="linux"}[5m]) / 1024 / 1024
Code language: JavaScript (javascript)
17. Disk Read IOPS
rate(node_disk_reads_completed_total{job="linux"}[5m])
Code language: JavaScript (javascript)
18. Disk Write IOPS
rate(node_disk_writes_completed_total{job="linux"}[5m])
Code language: JavaScript (javascript)
19. Network Receive MB/s
rate(node_network_receive_bytes_total{job="linux",device!="lo"}[5m]) / 1024 / 1024
Code language: JavaScript (javascript)
20. Network Transmit MB/s
rate(node_network_transmit_bytes_total{job="linux",device!="lo"}[5m]) / 1024 / 1024
Code language: JavaScript (javascript)
21. Network Receive Packets/s
rate(node_network_receive_packets_total{job="linux",device!="lo"}[5m])
Code language: JavaScript (javascript)
22. Network Transmit Packets/s
rate(node_network_transmit_packets_total{job="linux",device!="lo"}[5m])
Code language: JavaScript (javascript)
23. Network Errors
rate(node_network_receive_errs_total{job="linux",device!="lo"}[5m])
+
rate(node_network_transmit_errs_total{job="linux",device!="lo"}[5m])
Code language: JavaScript (javascript)
24. Network Drops
rate(node_network_receive_drop_total{job="linux",device!="lo"}[5m])
+
rate(node_network_transmit_drop_total{job="linux",device!="lo"}[5m])
Code language: JavaScript (javascript)
25. Load Average 1 Minute
node_load1{job="linux"}
Code language: JavaScript (javascript)
26. Load Average 5 Minutes
node_load5{job="linux"}
Code language: JavaScript (javascript)
27. Load Average 15 Minutes
node_load15{job="linux"}
Code language: JavaScript (javascript)
28. Running Processes
node_procs_running{job="linux"}
Code language: JavaScript (javascript)
29. Blocked Processes
node_procs_blocked{job="linux"}
Code language: JavaScript (javascript)
30. Server Uptime
time() - node_boot_time_seconds{job="linux"}
Code language: JavaScript (javascript)
In hours:
(time() - node_boot_time_seconds{job="linux"}) / 3600
Code language: JavaScript (javascript)
In days:
(time() - node_boot_time_seconds{job="linux"}) / 86400
Code language: JavaScript (javascript)
Best 10 PromQL for Linux Dashboard
Use these first:
up{job="linux"}
Code language: JavaScript (javascript)
100 - (avg by(instance) (rate(node_cpu_seconds_total{job="linux",mode="idle"}[5m])) * 100)
Code language: JavaScript (javascript)
100 * (1 - (node_memory_MemAvailable_bytes{job="linux"} / node_memory_MemTotal_bytes{job="linux"}))
Code language: JavaScript (javascript)
100 * (1 - (node_filesystem_avail_bytes{job="linux",mountpoint="/"} / node_filesystem_size_bytes{job="linux",mountpoint="/"}))
Code language: JavaScript (javascript)
rate(node_disk_read_bytes_total{job="linux"}[5m]) / 1024 / 1024
Code language: JavaScript (javascript)
rate(node_disk_written_bytes_total{job="linux"}[5m]) / 1024 / 1024
Code language: JavaScript (javascript)
rate(node_network_receive_bytes_total{job="linux",device!="lo"}[5m]) / 1024 / 1024
Code language: JavaScript (javascript)
rate(node_network_transmit_bytes_total{job="linux",device!="lo"}[5m]) / 1024 / 1024
Code language: JavaScript (javascript)
node_load1{job="linux"}
Code language: JavaScript (javascript)
(time() - node_boot_time_seconds{job="linux"}) / 86400
Code language: JavaScript (javascript)
For Grafana variables, replace:
job="linux"
Code language: JavaScript (javascript)
with:
job="$job", instance="$instance"
Code language: JavaScript (javascript)
Example PromQL for Prometheus Server
prometheus_http_requests_total
prometheus_http_requests_total{job="prometheus",group="canary"}
prometheus_http_requests_total{environment=~"staging|testing|development",method!="GET"}
prometheus_http_requests_total{job=~".*"}
prometheus_http_requests_total{job=~".+"}
prometheus_http_requests_total{job=~".*",method="get"}
prometheus_http_requests_total[5m]
prometheus_http_requests_total{job="prometheus",group="canary"}[2h]
prometheus_http_requests_total{environment=~"staging|testing|development",method!="GET"}[60m]Code language: PHP (php)
Prometheus PromQL Example Query: node exporter
Metrics specific to the Node Exporter are prefixed with node_ and include metrics like node_cpu_seconds_total and node_exporter_build_info.
| Metric | Meaning |
|---|---|
| rate(node_cpu_seconds_total{mode=”system”}[1m]) | The average amount of CPU time spent in system mode, per second, over the last minute (in seconds) |
| node_filesystem_avail_bytes | The filesystem space available to non-root users (in bytes) |
| rate(node_network_receive_bytes_total[1m]) | The average network traffic received, per second, over the last minute (in bytes) |
Modern CPUs don't run at one constant frequency.
To save power CPUs can reduce the frequency they run at, which is quite useful for battery based devices like laptops. So while CPU metrics give you the proportion of time in each mode, one second of user time isn't always represent same amount of work as another second of user time. This can be a problem when running benchmarks.
Linux provides information about this under /sys/devices/system/cpuCode language: PHP (php)
CPU scheduling metrics from the node exporter
CPU frequency scaling metrics from the node exporter
ARP cache metrics from the node exporter
Using the group() aggregator in PromQL
Linux software RAID metrics from the node exporter
Time metric from the node exporter
Using Letsencrypt with the node exporter
Conntrack metrics from the node exporter
Kernel file descriptor metrics from the node exporter
Temperature and hardware monitoring metrics from the node exporter
Network interface metrics from the node exporter
Filesystem metrics from the node exporter
Analyse a metric by kernel version
Mapping iostat to the node exporter’s node_disk_* metrics
Using the textfile collector from a shell script
New Features in Node Exporter 0.16.0
Using group_left to calculate label proportions
Understanding Machine CPU usage
Monitoring directory sizes with the Textfile Collector
Find Trusted Cardiac Hospitals
Compare heart hospitals by city and services — all in one place.
Explore Hospitals
PakarPBN
A Private Blog Network (PBN) is a collection of websites that are controlled by a single individual or organization and used primarily to build backlinks to a “money site” in order to influence its ranking in search engines such as Google. The core idea behind a PBN is based on the importance of backlinks in Google’s ranking algorithm. Since Google views backlinks as signals of authority and trust, some website owners attempt to artificially create these signals through a controlled network of sites.
In a typical PBN setup, the owner acquires expired or aged domains that already have existing authority, backlinks, and history. These domains are rebuilt with new content and hosted separately, often using different IP addresses, hosting providers, themes, and ownership details to make them appear unrelated. Within the content published on these sites, links are strategically placed that point to the main website the owner wants to rank higher. By doing this, the owner attempts to pass link equity (also known as “link juice”) from the PBN sites to the target website.
The purpose of a PBN is to give the impression that the target website is naturally earning links from multiple independent sources. If done effectively, this can temporarily improve keyword rankings, increase organic visibility, and drive more traffic from search results.