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>/libdirectory.
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)
bottomKcounts 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)
bottomKLengthBatchcounts 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)
bottomKTimeBatchcounts 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 thebottomKresults for each chunk of received events. - kalmanMinMax (Stream Processor)
kalmanMinMaxuses 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 asminormaxas relevant. - kernelMinMax (Stream Processor)
kernelMinMaxuses 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 asminormaxas relevant. - minMax (Stream Processor)
minMaxfinds 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 thepreBoundChangemust have arrived within themaxPreBoundlength window before the event with the minimum value.
An event where the value for the specified attribute is greater by the percentage specified as thepostBoundChangemust have arrived within themaxPostBoundlength 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 thepreBoundChangemust have arrived within themaxPreBoundlength window before the event with the maximum value.
An event where the value for the specified attribute is less by the percentage specified as thepostBoundChangemust have arrived within themaxPreBoundlength 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 theMaxPreBoundwindow.
postBound: The actual distance between the minimum/maximum value and the threshold value. This value must be within theMaxPostBoundwindow. - topK (Stream Processor)
topKcounts the frequency of different values of a specified attribute, and emits the (k) number of values with the highest frequency. - topKLengthBatch (Stream Processor)
topKLengthBatchcounts 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)
topKTimeBatchcounts 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)
maxByLengthreturns the event with the maximum value for the given attribute in the specified sliding window. - maxByLengthBatch (Window)
maxByLengthBatchcalculates and returns the maximum value of a specified attribute inside a batch window. - maxbytime (Window)
maxbytimecalculates 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.lengthspecified. - maxbytimebatch (Window)
maxbytimebatchcalculates the maximum value of a specified attribute within a time window, and emits it. - minByLength (Window)
minByLengthderives the minimum value for the given attribute in the specified sliding window. - minByLengthBatch (Window)
minByLengthBatchcalculates the minimum value of a specified attribute inside a batch window and emits it. - minbytime (Window)
minbytimecalculates 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.lengthspecified. - minbytimebatch (Window)
minbytimebatchcalculates 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 : dev@wso2.org
Architecture List : architecture@wso2.org
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/.