CEPModeMon is a Prototype for a combined webapplication for modelling and monitoring Complex Event Processing Pipelines.
Tested on Ubuntu 20.04 and Chrome 83
nodejs & npm
dockercompose
In the root of CEPModeMon:
npm install
Start a simple kafka container
cd testenvironment
docker-compose up --force-recreate kafka zookeeper
Proceed with the Start CEPModeMon
The Pre-Processor can be started without Data Collector after all Event Streams are labeled within the model.
cd testenvironment
docker-compose up cepmodemon
Clone CEPTA Monitoring Version and configure your Mongo Database connection (TrainData) for the Replayer.
git clone --depth 1 --branch CEPModeMon [email protected]:bptlab/cepta.git
cd cepta
Start your prepared Mongo DB Container as State (optional) with Replay collection with station data:
./deployment/dev/devenv.sh up mongo
Build CEPTA Images and Run CEPTA Core with Pre-Processor Service (cepmodemon) in Docker:
BUILD=1 ./deployment/dev/devenv.sh up --force-recreate kafka zookeeper kafdrop cepmodemon
When Kafdrop Broker is reachable on http://localhost:9001/ proceed with the Start Of CEPModeMon and continue here
- In CEPModeMon click "Load".
- Choose:
./examples/CEPTA.json
- In CEPModeMon click "Start Monitoring".
- Start the CEPTA Replayer (replace
--mongo-port
option with your Datasource for TrainData ).
bazel run -- //auxiliary/producers/replayer:replayer --port 8083 --replay-log debug --pause 100 --mode proportional --no-repeat --mongodb-port 27018 --immediate --include-sources PLANNED_TRAIN_DATA,LIVE_TRAIN_DATA
Now you should see after a while that the line charts display the aggregated Event Count (per 5 second windows) on the Event Streams and individual Events along the Event Streams, like this:
If not all Streams get aggregate information the Pre-Processor might have missed the others on start up: Close everything and restart but Run Core and Pre-Processor separately:
./deployment/dev/devenv.sh up --force-recreate kafka zookeeper kafdrop core
After Kafdrop is reachable:
./deployment/dev/devenv.sh up cepmodemon
Proceed with Start of CEPModeMon.
In the root of CEPModeMon:
npm run start
In Chrome head to http://localhost:3000/
enjoy!
For Hot-Reload with nodemon
npm install -g nodemon
For rebuilding protobuf schemas you need to install protoc to run:
npm run build_proto
- F5 refresh in Client will reset CEPModeMon Client but not the Webserver.
- Actions like rename of Stream labels or Load cannot be canceled.
- Continue Monitoring after a Stop will not reset the Old Monitoring Data.
- Zooming may influence insertion of new Elements, if not on neutral zoom level.
- Pre-Processor might start too early.
- Chartjs labels might not work correctly.
- No Security precautions in any way.
CEPModeMons monitoring capabilities require an architecture like this:
This repository contains the Modelling and Monitoring Tool. It serves as a high level Consumer in the necessary Monitoring CEP Pipeline. Other components are necessary to get the Monitoring-Data and to pre-process the data before visualisation in CEPModeMon.
Serves as high level Producer.
The modified CEPTA version is located here: CEPTA-with-DataCollector
Serves as high level Event Processing Agent.
The Pre-Processor is located here: PreProcessor
or per Docker Container cepmodemon/prepro:v0.1.9
Drag'n'drop-able atomic conceptional Consumers, Producers and mostly Event Processing Agentss.
For scale toggling or element deletion use the + on the upper left.