Add export script

This commit is contained in:
Alban Bronisz 2021-02-13 17:05:42 +01:00
commit 15d979e9c6
3 changed files with 63 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
stats.json

34
README.md Normal file
View File

@ -0,0 +1,34 @@
Ultra-light docker monitor
=========================
This light tool permits:
- to export docker container memory usage in a JSON file `stats.json`
- display curves of the memory usages using the JSON file
The export and the display are two different parts. This allow to run the display in another machine.
Setup the stats export
----------------------
To add it to the cron tab:
crontab -e
The add new line (to run the check once per hour)
*/10 * * * * /path.io/docker-stats-histo/save_docker_stats.sh >>/dev/null 2>&1
**Note:**
- Normaly cron send task outputs (echo) via mail. As the MTA (Mail Transfert Agent), may not be set up,
the crontab line redirect the outputs into `/dev/null`. Can also be a path to a log file.
- No sudo is needed, crontab is called with current user.
Display stats
-------------
To be done...

28
save_docker_stats.sh Executable file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env bash
set -eu
SCRIPT_PATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
OUTPUT="stats.json"
# Move in repo folder
pushd ${SCRIPT_PATH} > /dev/null
# If file does not exist, create it with JSON bracket
if [ ! -f $OUTPUT ]; then
echo "[" >> ${OUTPUT}
fi
# Append stat data
now=$(date -Iseconds)
echo "{" >> ${OUTPUT}
echo " \"data\": \"${now}\"" >> ${OUTPUT}
/snap/bin/docker stats --no-stream --format " ,\"{{.Name}}\": \"{{.MemUsage}}\"" >> ${OUTPUT}
echo "}," >> ${OUTPUT}
# Back to original path
popd