Easy Business Activity Monitoring

A few years back I started work on a prototype low footprint business activity monitoring solution built around Activi version 5 before the Camunda fork. This was based on many years of experience in this area and was designed from the outset to be very easy to use. With the addition of some simple extensions to your BPMN 2.0 process definitions, and an extra JAR file, it would give you powerful monitoring capabilities. Tracking key measures as events occur, detecting conditions you define, and then triggering appropriate alert handling processes. For example detecting anomalous order values by customer in a sales process, spotting increasing duration trends for task execution, or predicting peaks in workload for particular individuals. These are just a few examples, it is very flexible and could be applied in many ways.

For various reasons this work got put to one side, but I’m now looking to return to it, and I’m keen to hear from anyone who may have a requirement in this area to help me gauge what interest there may be in this.

This is something we’ve been working on through our Camunda Optimize project.

Hi Niall, I did take a look at Optimise, and from what I could see that is a much nore fully featured reporting and analytics solution, built around a seperate data store. My extension did not require anything additional, effectively using a PVM to drive the monitoring, It does not make queries but continuouslly tracks measures and evaluates them. Much more limited in scope of course, but very quick and easy to get up and running.

Can you explain a little bit more about the use case? some in-practice examples would help me understand what you’re trying to achieve.

Niall, it could be used by Developers and Process Modellers wanting to add specific monitoring capabilities to applications they are building or modifying. These capabilities are defined as part of the BPMN 2.0 process definitions. To take a simple order processing example - when the value of open orders for any specific customer exceeds a set value you want to trigger action via a process you’ve defined to handle ‘Supervisor Intervention’. To do this you would simply add event listeners to the relevant process or tasks, and then add some simple XML extensions to the process BPMN definition. As soon as events are detected the monitoring system initialises itself and starts tracking the required calculations, starting instances of the intervention process whenever the value of open orders exceeds the limit for any customer.

Alerting like this can be done out of the box with optimize. You can setup specific criteria to be matched for a running possess and then have optimize send an email or an alarm of some kind if a threshold is reached. You can see more about it here: https://docs.camunda.org/optimize/2.1/user-guide/alerting/

The main benefit here would mean you wouldn’t need to a developer to change the process in any way.

@pault if you are looking at the event listener route and you are looking for monitoring (not reporting) then this might be what you are looking for: https://github.com/StephenOTT/camunda-prometheus-process-engine-plugin

2 Likes

Thanks, that looks more in line with what I was talking about - will take a closer look