Supervisor
About
This is a small web application to monitor OGC Web Service implementations, such as
SOS and
WPS. It was formely known as "OWS Supervisor", but we realized this is useful beyond the context of
OWS.
In the current state, it supports the following features:
- config file based check configuration
- scheduling of service checks (repetition at arbitrary interval)
- a web front end to inspect the latest checks, including both successful and failed results.
- notification of failed checks via email
Checks
The following checks are available.
- Simple service availability check using a GetCapabilities request. If the service does not respond with a valid document, the check fails.
- SOS GeotObservation: Checking for the age of the latest time an of an observation in a SOS. If the sampling time is older than the maximum age then the test fails.
Example Server
An example deployment (web interface) is available at CURRENTLY NO LIVE DEMO.
Screen Shot
The following screen shot shows the AngularJS - based web interface of Supervisor.
Installation
Download
There are no binary releases, so please check out the source code and build the project with Maven:
git clone https://github.com/52North/Supervisor.git
cd Supervisor
mvn clean install
The .war file for deployment is in the directory
/target
.
Adding a Check
There are two ways of addings checks to a supervisor. First, creating a Java class implementing
ICheckerFactory
. This factory creates the checks. The class must be made available on the classpath and added to the config parameter
CHECK_CLASSES
. There must also be a constructor without any parameters.
Example: CHECK_CLASSES=org.n52.owsSupervisor.data.SWSL
Second, creating a Java class implementing
IServiceChecker
with a constructor that accepts only strings. This class must be made available on the class path and can then be created by adding a constructor call to the config parameter
CHECKS
.
Example: CHECKS=org.n52.owsSupervisor.checks.SirCapabilitiesCheck(http://serviceurl, notification@email.com, 43200000);
In both cases, multiple checks or classes must be seperated by a
;
.
Development
Source Code
The source code can be found on
GitHub:
https://github.com/52North/Supervisor
Documentation
Developer documentation can be found in the
README file.
Development Backlog
We use GitHub issues for a development backlog and GitHub milestones to organize development sprints.
The tasks status is organized in a board at Waffle.io:
https://waffle.io/52North/Supervisor
Developers and Contributions
We use the
fork & pull development model.
Developer contact:
Daniel Nüst,
Eike H. Jürrens,
Matthes Rieke