kiwi
- simple, consistent, powerful
A lightweight monitoring solution for kiwi-scp
, created with uptime-kuma
in mind. Also on Docker Hub.
The minimal config to add to one of your docker-compose.yml
is this:
metrics:
image: yavook/kiwi-simple-metrics:0.1
- admittedly not useful, but it does run monitoring
- every 600 seconds (10 minutes), metrics are evaluated
- measures cpu, memory and swap, and disk usage at "/"
- does not log to stdout
- does not trigger any webhooks
Every aspect of kiwi-simple-metrics can be tweaked by environment variables, so this is a more reasonable configuration example:
metrics:
image: yavook/kiwi-simple-metrics:0.1
environment:
METRICS__LOG__ENABLED: "True"
METRICS__WEBHOOK__URL: "https://my.webhook.host/success?report={result}"
METRICS__WEBHOOK__FAIL: "https://my.webhook.host/failure?report={result}"
- same metrics as above
- logs reports to stdout
- triggers webhooks (
{result}
is the placeholder for the result string)
These are the environment variables you most likely need:
METRICS__INTERVAL
: Time in seconds between metrics evaluation (default:600
, i.e. 10 minutes)METRICS__LOG__ENABLED
: If truthy, logs reports to stdout (default:False
)METRICS__[M]__ENABLED
,METRICS__[M]__THRESHOLD
(with[M]
fromCPU
,MEMORY
,DISK
): Enable or disable each metric, and set its failure thresholdMETRICS__MEMORY__SWAP
: How swap space is handled in the "memory" report (default:include
)METRICS__DISK__PATHS
: At which paths the disk usage is measured (default:["/"]
)METRICS__EXTERNAL__ENABLED
,METRICS__EXTERNAL__EXECUTABLES
: Setup forexternal values
, as further defined inmetrics/external.py
(default:False
,[]
)METRICS__WEBHOOK__URL
,METRICS__WEBHOOK__FAIL
: Which webhooks to push the reports to (default:None
,None
)
All settings can be found in the SETTINGS
variable defined by module kiwi_simple_metrics.settings
in settings/__init__.py
. For default values, refer to the respective python files.
Example: The above METRICS__LOG__ENABLED
refers to SETTINGS.log.enabled
, defined by model LogSettings
in settings/misc.py
.