Skip to content
Snippets Groups Projects

detect reason for no output

Merged Hahn Axel (hahn) requested to merge docker-checks into master
1 file
+ 22
7
Compare changes
  • Side-by-side
  • Inline
+ 22
7
@@ -14,7 +14,7 @@
# https://docs.docker.com/engine/reference/commandline/docker/
# ----------------------------------------------------------------------
# 2024-01-26 v1.0 <axel.hahn@unibe.ch> init
# 2024-01-29 v1.1 <axel.hahn@unibe.ch> fix help
# 2024-01-29 v1.1 <axel.hahn@unibe.ch> fix help; detect reason for no output
# ======================================================================
@@ -104,11 +104,11 @@ esac; done
sLabel="Docker stats"
case "$sMode" in
"cpu") sLabel="Docker CPU usage total of all containers: %s percent"; sUnit="1"; sumkey="CPUPerc"; sColumns=".Container, .${sumkey}, .Name" ;;
"mem") sLabel="Docker Memory max usage in most consuming container: %s percent"; sUnit="1"; maxkey="MemPerc"; sColumns=".Container, .${maxkey}, .MemUsage, .Name" ;;
"netio") sLabel="Docker Network I/O of all containers: %s MB IN .. %s MB OUT"; sUnit="M"; sumkey="NetIO"; f2=1; sColumns=".Container, .${sumkey}, .Name" ;;
"memtotal") sLabel="Docker Memory usage of all containers: %s MB"; sUnit="M"; sumkey="MemUsage";f2=0; sColumns=".Container, .${sumkey}, .Name" ;;
"blockio") sLabel="Docker Network I/O of all containers: %s MB IN .. %s MB OUT"; sUnit="M"; sumkey="BlockIO"; f2=1; sColumns=".Container, .${sumkey}, .Name" ;;
"cpu") sLabel="Docker CPU usage total of all containers: %s percent"; sUnit="1"; sumkey="CPUPerc"; sColumns=".Container, .${sumkey}, .Name" ;;
"mem") sLabel="Docker Memory max usage in most consuming container: %s percent"; sUnit="1"; maxkey="MemPerc"; sColumns=".Container, .${maxkey}, .MemUsage, .Name" ;;
"netio") sLabel="Docker Network I/O of all containers: %s MB IN .. %s MB OUT"; sUnit="M"; sumkey="NetIO"; f2=1; sColumns=".Container, .${sumkey}, .Name" ;;
"memtotal") sLabel="Docker Memory usage of all containers: %s MB"; sUnit="M"; sumkey="MemUsage"; f2=0; sColumns=".Container, .${sumkey}, .Name" ;;
"blockio") sLabel="Docker Block I/O of all containers: %s MB IN .. %s MB OUT"; sUnit="M"; sumkey="BlockIO"; f2=1; sColumns=".Container, .${sumkey}, .Name" ;;
"all") ;;
*) ph.setStatus critical
echo "ERROR: mode [$sMode] is unknown. Use -h to get help."
@@ -127,7 +127,22 @@ _detectDockerenv
# --- get stats data
data=$( sudo -n --preserve-env docker stats --no-stream --format '{{ json . }}' )
_detectDockererror "$data"
if [ -z "$data" ]; then
# zero output could mean:
# - connect to docker failed
# - no data because no container is running
# --> let's detect it...
infos=$( sudo -n --preserve-env docker system info --format '{{ json . }}' )
_detectDockererror "$infos"
typeset -i iCRunning;
iCRunning=$(_getString "$data" ".ContainersRunning" )
if [ "$iCRunning" -eq "0" ]; then
ph.status "$sLabel >> Do data. No container is running"
ph.exit
fi
fi
# --- checks to detect maximum
Loading