39 lines
1.3 KiB
Bash
Executable File
39 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Opus WIRE V81 POC - KPI feeder for Operations module
|
|
# Produces /opt/weval-l99/kpi-cache/ops.json (read by WTP)
|
|
|
|
mkdir -p /opt/weval-l99/kpi-cache
|
|
|
|
DOCKER_RUNNING=$(docker ps -q 2>/dev/null | wc -l)
|
|
DOCKER_HEALTHY=$(docker ps --filter health=healthy -q 2>/dev/null | wc -l)
|
|
UPTIME_DAYS=$(awk '{print int($1/86400)}' /proc/uptime)
|
|
LOAD=$(awk '{print $1}' /proc/loadavg)
|
|
DISK_PCT=$(df / | awk 'NR==2 {gsub("%",""); print $5}')
|
|
MEM_PCT=$(free | awk '/Mem:/ {printf "%.1f", $3/$2*100}')
|
|
FPM=$(pgrep -c php-fpm 2>/dev/null || echo 0)
|
|
CRONS=$(crontab -l 2>/dev/null | grep -cv "^#")
|
|
GIT_COMMITS_TODAY=$(cd /var/www/html && git log --since="24 hours ago" --oneline 2>/dev/null | wc -l)
|
|
NGINX_ALIVE=$(pgrep -c nginx 2>/dev/null || echo 0)
|
|
|
|
cat <<JSON > /opt/weval-l99/kpi-cache/ops.json
|
|
{
|
|
"ts": "$(date -Iseconds)",
|
|
"module": "Operations & IT",
|
|
"source": "V81 POC Opus WIRE",
|
|
"kpis": {
|
|
"docker_running": $DOCKER_RUNNING,
|
|
"docker_healthy": $DOCKER_HEALTHY,
|
|
"uptime_days": $UPTIME_DAYS,
|
|
"load_1min": $LOAD,
|
|
"disk_pct": $DISK_PCT,
|
|
"memory_pct": $MEM_PCT,
|
|
"fpm_workers": $FPM,
|
|
"crons_active": $CRONS,
|
|
"git_commits_today": $GIT_COMMITS_TODAY,
|
|
"nginx_alive": $NGINX_ALIVE
|
|
}
|
|
}
|
|
JSON
|
|
chmod 644 /opt/weval-l99/kpi-cache/ops.json
|
|
cat /opt/weval-l99/kpi-cache/ops.json
|