Skip to content

wmo-im/wis2-gb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

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

About

WIS2 Global Broker Reference Implementation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published