Add Docker container discovery with stats, image display, and CPU usage bars
This commit is contained in:
@@ -279,4 +279,31 @@ if command -v virsh &>/dev/null; then
|
||||
done
|
||||
fi
|
||||
|
||||
# Docker containers
|
||||
if command -v docker &>/dev/null; then
|
||||
_sudo docker ps -a --format '{{.Names}}\t{{.State}}\t{{.Image}}\t{{.Status}}' 2>/dev/null | while IFS=$'\t' read -r name state image status_text; do
|
||||
[ -z "$name" ] && continue
|
||||
echo "[container:docker-${name}]"
|
||||
echo "type=docker"
|
||||
echo "platform=docker"
|
||||
echo "name=$name"
|
||||
echo "status=$state"
|
||||
echo "image=$image"
|
||||
echo "status_text=$status_text"
|
||||
if [ "$state" = "running" ]; then
|
||||
# Get IP from docker inspect
|
||||
docker_ip=$(_sudo docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' "$name" 2>/dev/null)
|
||||
[ -n "$docker_ip" ] && echo "ip=$docker_ip"
|
||||
# Get memory/cpu stats (one-shot, no stream)
|
||||
stats=$(_sudo docker stats --no-stream --format '{{.MemUsage}}\t{{.MemPerc}}\t{{.CPUPerc}}' "$name" 2>/dev/null)
|
||||
if [ -n "$stats" ]; then
|
||||
mem_pct=$(echo "$stats" | cut -f2 | tr -d '%')
|
||||
cpu_pct=$(echo "$stats" | cut -f3 | tr -d '%')
|
||||
echo "mem_percent=${mem_pct}"
|
||||
echo "cpu_percent=${cpu_pct}"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
echo "[end]"
|
||||
|
||||
Reference in New Issue
Block a user