This project contains all of the infrastructure and background services that
form part of the Provenance Workflow Infrastructure. The services sit on a
messaging backbone implemented using Apache Kafka to send messages between
services.
The project uses the gradle build system and contains the gradle wrapper script
which will automatically obtain the specified version of gradle. Building the
software for the first time maybe slow.
gradlew buildgradlew cleangradlew :renoir-service:buildgradlew :gladys-service:cleanContribution of code to this project should follow the following rules:
There are 2 mechanisms to load the project into the Eclipse IDE:
gradlew eclipse, you can then import the project in as an existing project. When you add a new dependency in you will need to run this again to regenerate the eclipse project files and then refresh the project in eclipse and it will pick up the new settings. If you want to just generate the eclipse files for a specific sub module then run the command gradlew :store:eclipse for the store sub project.This is the generic high performance message backbone that underpins the
asynchronous messages used by the provenance infrastructure.
For zookeeper and kafka installation instructions:
Kafka consists of multiple topics that the subscribers can receive notifications
on. The topics configured are:
Consuming a topic on the commandline to check the contents of the messages can
be done with the following command:
kafka-console-consumer --zookeeper localhost:2181 --topic publish
This is a service required by Apache Kafka and is used for service registration
and discovery.
Receives webhook events, currently from git repositories and publishes these
events onto the webhook-event topic.
Translates webhook vcs events into concrete VCS events and posts them onto the
vcs-event topic.
Converts events into provenance documents through configured templates and posts
them onto the prov-payload topic.
Receives provenance documents and uploads them to provstore.
Spring boot admin console, not a required part of the infrastructure so is not
installed as part of the vagrant machine by default.
Exposes web interface for posting messages onto kafka topics.
This is a sub module with multiple submodules and is the provenance store
implementation. See the README.md file in the root of this project for details.
The project contains a Vagrant virtual machine definition that commissions a machine with the following:
To start the virtual machine use vagrant up. Note that this can take a long time
on initial startup as it will need to download the base image and then commission
the software on the machine.
A useful utility for monitoring the kafka topic lag is Kafka Offset Monitor. You will need to
download the application and then use the following commandline:
java -cp KafkaOffsetMonitor-assembly-0.2.1.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --zk localhost --port 8080 --refresh 10.seconds --retain 2.days
Copyright 2016, Mango Solutions Ltd - All rights reserved.
SPDX-License-Identifier: AGPL-3.0