siddhi-execution-extrema
The siddhi-execution-extrema extension is an extension to Siddhi that processes event streams based on different arithmetic properties. Different types of processors are available to extract the extremas from the event streams according to the specified attribute in the stream.
Find some useful links below:
Latest API Docs
Latest API Docs is 5.0.0.
How to use
Using the extension in WSO2 Stream Processor
-
You can use this extension in the latest WSO2 Stream Processor that is a part of WSO2 Analytics offering, with editor, debugger and simulation support.
-
This extension is shipped by default with WSO2 Stream Processor, if you wish to use an alternative version of this extension you can replace the component jar that can be found in the
<STREAM_PROCESSOR_HOME>/lib
directory.
Using the extension as a java library
- This extension can be added as a maven dependency along with other Siddhi dependencies to your project.
<dependency>
<groupId>org.wso2.extension.siddhi.execution.extrema</groupId>
<artifactId>siddhi-execution-extrema</artifactId>
<version>x.x.x</version>
</dependency>
Jenkins Build Status
Branch | Build Status |
---|---|
master |
Features
- bottomK (Stream Processor)
bottomK
counts the frequency of different values for a specified attribute, and returns the number of least frequently occurring values. The events are returned only if there is a change in the 'bottomK' results for each chunk of received events. - bottomKLengthBatch (Stream Processor)
bottomKLengthBatch
counts the frequency of different values of a specified attribute inside a batch window, and returns the number of least frequently occurring values. The bottom K frequency values are returned per batch. - bottomKTimeBatch (Stream Processor)
bottomKTimeBatch
counts the frequency of different values for a specified attribute inside a time window, and outputs a specified number of least frequently occurring values. Events are output only if there is a change in thebottomK
results for each chunk of received events. - kalmanMinMax (Stream Processor)
kalmanMinMax
uses the Kalman filter to smooth the values of the time series in the given window size, and then determines the maxima and minima of that set of values. It returns the events with the minimum and/or maximum values for the specified attribute within the given window length, with the extrema type asmin
ormax
as relevant. - kernelMinMax (Stream Processor)
kernelMinMax
uses Gaussian Kernel to smooth values of the series within the given window size, and then determines the maxima and minima of that set of values. It returns the events with the minimum and/or maximum values for the specified attribute within the given window length, with the extrema type asmin
ormax
as relevant. - minMax (Stream Processor)
minMax
finds the minimum and/or the maximum value within a given length window (maxPreBound+maxPostBound), where following conditions are met.
For minimum:
An event where the value for the specified attribute is greater by the percentage specified as thepreBoundChange
must have arrived within themaxPreBound
length window before the event with the minimum value.
An event where the value for the specified attribute is greater by the percentage specified as thepostBoundChange
must have arrived within themaxPostBound
length window after the event with the minimum value.
For maximum:
An event where the value for the specified attribute is less by the percentage specified as thepreBoundChange
must have arrived within themaxPreBound
length window before the event with the maximum value.
An event where the value for the specified attribute is less by the percentage specified as thepostBoundChange
must have arrived within themaxPreBound
length window after the event with the maximum value.
The extension returns the events with the minimum and/or maximum for the specified attribute within the given window length, with the extrema type as min or max as relevant. These events are returned with the following additional parameters.preBound
: The actual distance between the minimum/maximum value and the threshold value. This value must be within theMaxPreBound
window.
postBound: The actual distance between the minimum/maximum value and the threshold value. This value must be within theMaxPostBound
window. - topK (Stream Processor)
topK
counts the frequency of different values of a specified attribute, and emits the (k) number of values with the highest frequency. - topKLengthBatch (Stream Processor)
topKLengthBatch
counts the frequency of different values of a specified attribute, within a batch window of a specified length, and emits the (k) number of values with the highest frequency. - topKTimeBatch (Stream Processor)
topKTimeBatch
counts the frequency of different values of a specified attribute within a time window, and emits the (k) number of values with the highest frequency. - maxByLength (Window)
maxByLength
returns the event with the maximum value for the given attribute in the specified sliding window. - maxByLengthBatch (Window)
maxByLengthBatch
calculates and returns the maximum value of a specified attribute inside a batch window. - maxbytime (Window)
maxbytime
calculates the maximum value of a specified attribute within a sliding time window and emits it. The output is updated for every event arrival and expiry during thetime.window.length
specified. - maxbytimebatch (Window)
maxbytimebatch
calculates the maximum value of a specified attribute within a time window, and emits it. - minByLength (Window)
minByLength
derives the minimum value for the given attribute in the specified sliding window. - minByLengthBatch (Window)
minByLengthBatch
calculates the minimum value of a specified attribute inside a batch window and emits it. - minbytime (Window)
minbytime
calculates the minimum value of a specified attribute within a sliding time window and emits it. The output is updated for every event arrival and expiry during thetime.window.length
specified. - minbytimebatch (Window)
minbytimebatch
calculates the minimum value of a specified attribute within a time window, and emits it.
How to Contribute
-
Please report issues at GitHub Issue Tracker.
-
Send your contributions as pull requests to master branch.
Contact us
-
Post your questions with the "Siddhi" tag in Stackoverflow.
-
Siddhi developers can be contacted via the mailing lists:
Developers List : [email protected]
Architecture List : [email protected]
Support
-
We are committed to ensuring support for this extension in production. Our unique approach ensures that all support leverages our open development methodology and is provided by the very same engineers who build the technology.
-
For more details and to take advantage of this unique opportunity contact us via http://wso2.com/support/.