Update doc

This commit is contained in:
Alban Bronisz 2021-11-21 19:02:31 +01:00
parent 5b8b73a424
commit de08178784
3 changed files with 65 additions and 43 deletions

View File

@ -3,40 +3,52 @@
WIP
===
- [ ] Ajouter parsing des noms
- [ ] tester python avec le cron root et venv
- [ ] Log dans fichier
- [ ] exporter anciennes stats dans JSON
- [ ] mettre en place le nouveau cron
- [ ] ajouter un 2e cron pour la generation du html
- [ ] Date de génération dans la page html
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
- to export docker container memory usage in a database `data.sqlite`
- display curves of the memory usages in an interactive html report
The export and the display are two different parts. This allow to run the display in another machine.
The export and the display are two different parts. This allows to run the display in another machine.
Install python virtual env
--------------------------
```bash
sudo apt install python3.8 python3.8-venv
python3.8 -m venv venv
. venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
```
The python env is now callable in `venv/bin/python`.
Or by activating the virtual env:
```bash
./venv/bin/activate
python --version
...
deactivate
```
Setup the stats export
----------------------
Configure the stats export
--------------------------
Open the cron tab in edition mode:
```bash
crontab -e
```
crontab -e
Then add a new line (to run the check each ten minutes)
*/10 * * * * /path.io/docker-stats-histo/save_docker_stats.sh >>/dev/null 2>&1
Then add a new line (to run the check each 10 minutes)
```bash
*/10 * * * * /path/to/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),
- Normally cron send task outputs (echo) via mail. As the MTA (Mail Transfer Agent),
may not be set up, the crontab line redirect the outputs into `/dev/null`.
It can also be a path to a log file.
- No sudo is needed, crontab is called with current user.
@ -44,28 +56,24 @@ It can also be a path to a log file.
Display stats
-------------
This step permits to generate an html interactive render from the sqlite stats file.
It is simple, just run:
```bash
venv/bin/python generate_html.py
```
This step permits to generate a render from a stats file (generated by the script
called by the crontab, see stats export section).
### Install
Need python3 with `venv` module
sudo apt install python3 python3-venv
### Run
Go in [display](display) folder
cd display
Then to generate a png, just run (install is automatically done if needed)
./render_stats.sh stats.json
It is also possible to see a web version fo the render :
./render_stats.sh stats.json -w
The report is now accessible in `stats.html.
`
**Note:** if the stats file is in a remote server, one can use `scp` to get it:
scp alban@eunuque.caracals.org:/path/to/docker-stats-histo/stats.json .
```bash
scp eunuque.caracals.org:/home/caracals/outils/docker-stats-histo/stats.sqlite .
```
Advanced parameters
-------------------
Both python scripts can have a finer configuration. To see all accepted parameters use `-h` flag, like
```bash
python save_dcker_stats.py -h
python generate_html.py -h
```

View File

@ -1,4 +1,4 @@
# For HTML rendering
# For HTML generation
pandas
plotly

14
save_docker_stats.sh Normal file
View File

@ -0,0 +1,14 @@
#!/usr/bin/env bash
set -eu
# Move in repo folder
SCRIPT_PATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
pushd ${SCRIPT_PATH} > /dev/null
venv/bin/python save_docker_stats.py
# Back to original path
popd > /dev/null