...
- Start the CEP, log in to its management console, select Execution Plans and click Add Execution Plan.
- Enter details in the form that appears and click the Add Execution Plan button at the end of the form.
Execution Plan form can be divided into three main parts. Please go-through the below contents to get more information on this.
Siddhi Configuration and Execution Plan Info
Above fields in the form are described below:- Execution Plan Name : Can contain only alphanumeric characters and '_' character
- Description : Description for the execution plan.
- Snapshot time interval : Defines how often the state of the processing engine should be persisted, which is used to restore after a system crash. The default value is 0, which disables this feature. If snapshot is enabled, you must start the CEP with the embedded Cassandra server enabled. To do this, specify -Ddisable.cassandra.server.startup=false option at server startup.
- Distributed Processing - Can enabled the distributed processing for Siddhi, To enable distributed processing CEP needs to be started with clustering.
Query Expressions
Here, Sidhhi query expressions can written. And also user can create custom event builders if they want to do.- Query expressions: See Siddhi Language Specification on how to write queries. When writing query expressions, you must import the required streams. The As field maps the incoming stream to a stream name suitable for the Siddhi processing engine. It can contain only alphanumeric characters and '_' character.
In the text field that follows imported streams, you can enter any number of CEP statements, each ending with a semicolon.
Exported StreamsThe Exported streams section allows you to expose the output streams from Siddhi to the event formatter with preferred stream IDs.
For the StreamId, provide a character string that starts with an alphabetic because it is considered as a java variable in Siddhi. Stream Id is a combination of stream name and version. E.g., testStream:1.0.0.
- After an execution plan is successfully created, you can change its configuration and redeploy it. To do this, click the Edit link associated with it.
An XML based editor opens allowing you to edit the event builder configuration from the UI itself, without having to edit the file in the file system. Do your modifications and click Update.
Alternatively,
y ou can specify an execution plan configuration using an XML file and save it inAnchor step5 step5 <PRODUCT_HOME>/repository/deployment/server/executionplans
directory, which is the execution plan deployment directory. Since hot deployment is enabled, you can simply add/remove files to deploy/undeploy from the server.
Create the XML file with the following XML based configurations. Execution plan implementation must start with<executionplan>
root element as in the example below:Code Block language html/xml <?xml version="1.0" encoding="UTF-8"?> <executionPlan name="MediationStatsPassthru" statistics="enable" trace="enable" xmlns="http://wso2.org/carbon/eventprocessor"> <description>A sample passthru query</description> <siddhiConfiguration> <property name="siddhi.enable.distributed.processing">disabled<>false</property> <property name="siddhi.persistence.snapshot.time.interval.minutes">0</property> </siddhiConfiguration> <importedStreams> <stream as="stats"InMediationStatsStream" name="org.wso2.sample.mediation.stats" version="1.0.0"/> </importedStreams> <queryExpressions><![CDATA[from stats InMediationStatsStream select meta_host,timestamp,resource_id,direction,fault_count,count insert into outStreamOutMediationStatsStream;]]></queryExpressions> <exportedStreams> <stream name="org.wso2.sample.out.mediation.stats" valueOf="outStreamOutMediationStatsStream" version="1.0.0"/> </exportedStreams> </executionPlan>
Info To enable distributed processing in the CEP, start the server with Hazlecast enabled by setting the following element to true in
<PRODUCT_HOME>/repository/conf/axis2/
axis2.xml
file:<clustering class="org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent" enable="true">