Skip to content

Instantly share code, notes, and snippets.

@diyfr
Last active September 19, 2019 14:15
Show Gist options
  • Save diyfr/ab8db16b434501374f311a85df926f45 to your computer and use it in GitHub Desktop.
Save diyfr/ab8db16b434501374f311a85df926f45 to your computer and use it in GitHub Desktop.
Return Docker stats to Json file (and expose it in static nginx server)

Start bash

./stats.sh &
#!/bin/bash
while true; do
CONTENT=$(docker stats --no-stream --format "{\"id\":\"{{.Container}}\",\"name\":\"{{.Name}}\",\"cpu\":\"{{.CPUPerc }}\",\"memory\":{\"usage\":\"{{.MemUsage}}\",\"percent\":\"{{.MemPerc}}\"},\"netIO\":{\"in\":\"{{.NetIO }}\"}}")
CONTENT=$(echo "$CONTENT" | sed "s/ \/ /\",\"limit\":\"/1")
CONTENT=$(echo "$CONTENT" | sed "s/ \/ /\",\"out\":\"/1")
CONTENT=$(echo "$CONTENT" | sed "s/$/,/")
CONTENT=${CONTENT//[$'\t\r\n']}
CONTENT=[${CONTENT:0:$((${#CONTENT}-1))}]
DATE_STATS=$(date -u +"%FT%T.000Z")
CONTENT="{\"date\":\"${DATE_STATS}\",\"stats\":${CONTENT}}"
echo "${CONTENT}" > stats.json
sleep 1
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment