- API Reference
- Tests
- Coverage
- Compatible with Python 3.7, 3.8 and 3.9
Website monitoring with Kafka and Postgres.
The project is split in two binaries:
aiven-monitor-checker
: runs the monitoring probes and sends the result to Kafka.aiven-monitor-writer
: reads from Kafka and stores the result in Postgres.
The monitoring probes are configurable from a file:
[probe.aiven]
url = https://www.aiven.io
interval_secs = 20
expected_pattern = Perf.?rmant|\bFree\b|Scalable
[probe.github]
url = https://www.github.com
interval_secs = 60
[probe.google]
url = https://www.google.fr
interval_secs = 120
python3 -m venv --clear --upgrade-deps venv
source venv/bin/activate
venv/bin/pip install --constraint constraints.txt --requirement dev-requirements.txt
This runs local Postgres and Kafka instances along with the checker and writer.
This still requires Python, OpenSSL and keytool (from the Java JRE/JDK) in addition to Docker.
Docker Swarm is used to handle SSL secrets between the different services.
docker swarm init
tests/integration/deploy.py
docker service logs aiven-monitor-test_writer --timestamps 2>&1 -f
See the Checker documentation for the configuration options.
aiven-monitor-checker --config=/path/to/checker.ini
See the Writer documentation for the configuration options.
aiven-monitor-writer --config=/path/to/writer.ini
The tests are also configured with Github Actions to run against real Aiven services after each push.
pytest
sphinx-build -a docs target/docs