- connects to a WIS2 Global Broker, subscribed to the following:
origin/a/wis2/#
cache/a/wis2/#
- connects to a WIS2 Global Cache, subscribed to the following:
cache/a/wis2/#
- connects to one or more WIS2 Nodes, subscribing to the following:
origin/a/wis2/{centre_id}/#
- on all notifications:
- verfies message is WIS2 compliant
- ensures the message is unique, not previously recieved from any other subscription
- publishes the message to the Global Broker
- performs metric accounting
- Python 3
- virtualenv
Dependencies are listed in requirements.txt. Dependencies are automatically installed during pywis-pubsub installation.
# setup virtualenv
python3 -m venv --system-site-packages wis2-gb
cd wis2-gb
source bin/activate
# clone codebase and install
git clone https://github.com/wmo-im/wis2-gb.git
cd wis2-gb
pip3 install .
The Docker setup uses Docker and Docker Compose to manage the following services:
- wis2-broker: MQTT broker
- pywis-pubsub: MQTT subscription relay. Subscribes to WIS2 participants, performs message verification and de-duplication and then publishes the message to the Global Broker.
- grafana:
Grafana
provides administrator dashboards, log monitoring and browsing prometheus metrics. - loki:
Grafana Loki
provides administrator dashboards, log monitoring and browsing prometheus metrics. - prometheus:
Prometheus
provides time-series metrics collections
See wis2-gb.env
for default environment variable settings.
To adjust service ports, edit docker-compose.override.yml
accordingly.
The Makefile
in the root directory provides options to manage the Docker Compose setup.
# build all images
make build
# build all images (no cache)
make force-build
# start all containers
make up
# start all containers in dev mode
make dev
# view all container logs in realtime
make logs
# login to the wis2-gb-management container
make login
# restart all containers
make restart
# shutdown all containers
make down
# remove all volumes
make rm
All bugs, enhancements and issues are managed on GitHub.