Add extended server metrics
This commit is contained in:
parent
01968d79a7
commit
4baf8f8b3c
3 changed files with 30 additions and 0 deletions
3
.github/workflows/bash-syntax.yml
vendored
3
.github/workflows/bash-syntax.yml
vendored
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
15
tests/test-monitor-manager-metrics.sh
Normal file
15
tests/test-monitor-manager-metrics.sh
Normal 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'
|
||||
Loading…
Reference in a new issue