Add extended server metrics

This commit is contained in:
Ochenstarik 2026-07-16 19:23:47 +07:00
parent 01968d79a7
commit 4baf8f8b3c
3 changed files with 30 additions and 0 deletions

View file

@ -52,3 +52,6 @@ jobs:
- name: Test Server Monitor Manager lifecycle
run: bash tests/test-monitor-manager-lifecycle.sh
- name: Test Server Monitor Manager extended metrics
run: bash tests/test-monitor-manager-metrics.sh

View file

@ -137,9 +137,21 @@ printf 'LOAD1=%s\n' "$(cut -d' ' -f1 /proc/loadavg)"
printf 'CPU_COUNT=%s\n' "$(getconf _NPROCESSORS_ONLN)"
printf 'MEM_TOTAL_KB=%s\n' "$(read_mem_value MemTotal)"
printf 'MEM_AVAILABLE_KB=%s\n' "$(read_mem_value MemAvailable)"
printf 'SWAP_TOTAL_KB=%s\n' "$(read_mem_value SwapTotal)"
printf 'SWAP_FREE_KB=%s\n' "$(read_mem_value SwapFree)"
df -Pk / | awk 'NR == 2 {
printf "DISK_TOTAL_KB=%s\nDISK_AVAILABLE_KB=%s\n", $2, $4
}'
df -Pi / | awk 'NR == 2 {
printf "DISK_INODES_TOTAL=%s\nDISK_INODES_FREE=%s\n", $2, $4
}'
awk 'BEGIN { rx=0; tx=0 }
FNR == 1 && FILENAME !~ "/lo/" { rx += $1 }
FNR == 1 && FILENAME !~ "/lo/" { getline value < (FILENAME ~ /rx_bytes/ ? gensub(/rx_bytes$/, "tx_bytes", 1, FILENAME) : FILENAME); tx += value }
END { printf "NETWORK_RX_BYTES=%.0f\nNETWORK_TX_BYTES=%.0f\n", rx, tx }
' /sys/class/net/*/statistics/rx_bytes 2>/dev/null || printf 'NETWORK_RX_BYTES=0\nNETWORK_TX_BYTES=0\n'
printf 'SYSTEMD_SSH=%s\n' "$(systemctl is-active ssh 2>/dev/null || true)"
printf 'SYSTEMD_WIREGUARD=%s\n' "$(systemctl is-active wg-quick@smm0.service 2>/dev/null || true)"
printf 'KERNEL=%s\n' "$(uname -r)"
EOF
chown root:root "$MONITOR_COMMAND"

View file

@ -0,0 +1,15 @@
#!/usr/bin/env bash
set -Eeuo pipefail
cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.."
script="ochenstarik-server-monitor-manager.sh"
for key in \
SWAP_TOTAL_KB SWAP_FREE_KB \
DISK_INODES_TOTAL DISK_INODES_FREE \
NETWORK_RX_BYTES NETWORK_TX_BYTES \
SYSTEMD_SSH SYSTEMD_WIREGUARD; do
grep -Fq "$key" "$script"
done
printf 'Server Monitor Manager extended metrics checks passed.\n'