#!/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 < /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