For Activity monitoring we will capture Activity Start and Activity Finished events as two input streams. ActivityStart and ActvityFinished.
the event structure is same for ActivityFinished.
the next step is to create a time based buckets for these events so that relations are based on a finite size of events. In the sample project the time based window is used for this purpose with window size of 5 hours. We combined the result from these time based buckets into a relation map like following
with condition
TimeBasedWindow0.activityID=TimeBasedWindow1.activityID and TimeBasedWindow0.processID=TimeBasedWindow1.processID
Next step is to aggregate the relation into required groups as following
After the aggregation with required groupings is available we'll save the result into an Output Global table as following which will then can be accessed to see the KPIs.
The complete IEP process for Activity Monitoring looks like this
For BPEL Instance level KPI monitoring BPInstance Start and BPInstance Complete events are captured by using two Input Stream Operators BPInsatnceStartEventStream and BPInstanceComplete the message structure follows the instance event generated by BPEL engine.
Rest of the IEP process design is same as that of Activity monitoring with time based buckets and a relation map followed by an relation aggregator to aggregate time elapsed into required categories. The result are saved into a global table to be accessed by other applications.