Skip to content

Latest commit

 

History

History
106 lines (73 loc) · 2.96 KB

README.md

File metadata and controls

106 lines (73 loc) · 2.96 KB

flake8

wis2-gb

A Reference Implementation of a WIS2 Global Broker.

WIS2 Global Broker C4 diagram

Workflow

  • 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

Installation

Requirements

Dependencies

Dependencies are listed in requirements.txt. Dependencies are automatically installed during pywis-pubsub installation.

Installing wis2-gb

# 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 .

Docker

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

Development

Code Conventions

Bugs and Issues

All bugs, enhancements and issues are managed on GitHub.

Contact