Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel3
minLevel3

Introduction

This sample demonstrates how to set up an execution plan to process events of one stream and forward the processed events to two other streams. This with triggers. This sample uses the Event simulator for inputs and the logger publisher for logging the outputs to the CEP console.

...

  • The following query triggers an event in the periodicalTriggerStream event stream every 5 seconds. The purpose of this trigger is to generate events in the periodicalTriggerStream event stream in order to merge it with the sensorStream event stream.

    Code Block
    languagesql
    define trigger periodicalTriggerStream at every 5 sec ;
  • The following query forwards a processed event as an output to the cronTriggerStream event stream every 10 seconds.

    Code Block
    languagesql
    define trigger cronTriggerStream at '*/10 * * * * ?' ;
  • The following query merges the periodicalTriggerStream and sensorStream event streams. Only the values of the attributes specified in the query are merged. Attribute values are taken from the sensorStream event stream and inserted into the  periodicalTriggerStream event stream.

    Code Block
    languagesql
    from periodicalTriggerStream join sensorStream#window.time(10 sec)
    select meta_timestamp, meta_isPowerSaverEnabled, meta_sensorId, meta_sensorName, correlation_longitude, correlation_latitude, triggered_time, humidity, sensorValue
    insert into periodicalTriggeredSensorStream;
  • The following query merges the  cronTriggerStream and sensorStream event streams.  Only the values of the attributes specified in the query are merged. Attribute values are taken from the sensorStream event stream and inserted into the cronTrigerredSensorStream event stream.

    Code Block
    languagesql
    from cronTriggerStream join sensorStream#window.time(10 sec)
    select meta_timestamp, meta_isPowerSaverEnabled, meta_sensorId, meta_sensorName, correlation_longitude, correlation_latitude, triggered_time, humidity, sensorValue
    insert into cronTriggeredSensorStream;

Prerequisites

See Prerequisites in the CEP Samples Setup pageSet up the prerequisites required for all samples.

Building the sample

Start the WSO2 CEP server with the sample configuration numbered 0119. For instructions, see Starting sample CEP configurations. This sample configuration does the following:

  • Creates the following event streams.
    • org.wso2.event.sensor.stream:1.0.0
    • periodicalTriggeredSensorStream:1.0.0
    • cronTriggeredSensorStream:1.0.0
  • Creates an execution plan named ExecutionPlan.
  • Creates the following event publishers.
    • periodicalTriggeredSensorStreamLogger
    • cronTriggeredSensorStreamLogger

Executing the sample

Follow the steps below to execute the sample.

  1. Log into the CEP Management Console.
  2. Click on the Tools tab and then click Event Simulator to open the Event Stream Simulator page. A file named events.csv containing sample data is displayed in the Send multiple events section as follows. Click Play to start sending events to the CEP from this file.

    As a result, the following output is displayed in the CLI.

    Code Block
    languagetext
    [2016-02-09 15:14:20,005] INFO {org.wso2.carbon.event.output.adapter.logger.LoggerEventAdapter} - Unique ID: cron, Event: meta_timestamp:199008131245, meta_isPowerSaverEnabled:false, meta_sensorId:100, meta_sensorName:temperature, correlation_longitude:23.45656, correlation_latitude:7.12324, triggered_time:1455011060002, humidity:100.34, sensorValue:23.4545 [2016-02-09 15:14:23,399] INFO {org.wso2.carbon.event.output.adapter.logger.LoggerEventAdapter} - Unique ID: periodical, Event: meta_timestamp:199008131245, meta_isPowerSaverEnabled:false, meta_sensorId:100, meta_sensorName:temperature, correlation_longitude:23.45656, correlation_latitude:7.12324, triggered_time:1455011063398, humidity:100.34, sensorValue:23.4545 [2016-02-09 15:14:23,399] INFO {org.wso2.carbon.event.output.adapter.logger.LoggerEventAdapter} - Unique ID: periodical, Event: meta_timestamp:199008131245, meta_isPowerSaverEnabled:true, meta_sensorId:101, meta_sensorName:temperature, correlation_longitude:23.45656, correlation_latitude:7.12324, triggered_time:1455011063398, humidity:100.34, sensorValue:23.4545 [2016-02-09 15:14:23,400] INFO {org.wso2.carbon.event.output.adapter.logger.LoggerEventAdapter} - Unique ID: periodical, Event: meta_timestamp:199008131245, meta_isPowerSaverEnabled:false, meta_sensorId:103, meta_sensorName:temperature, correlation_longitude:23.45656, correlation_latitude:7.12324, triggered_time:1455011063398, humidity:100.34, sensorValue:23.4545 [2016-02-09 15:14:23,400] INFO {org.wso2.carbon.event.output.adapter.logger.LoggerEventAdapter} - Unique ID: periodical, Event: meta_timestamp:199008131245, meta_isPowerSaverEnabled:true, meta_sensorId:104, meta_sensorName:temperature, correlation_longitude:23.45656, correlation_latitude:7.12324, triggered_time:1455011063398, humidity:100.34, sensorValue:23.4545 [2016-02-09 15:14:28,399] INFO {org.wso2.carbon.event.output.adapter.logger.LoggerEventAdapter} - Unique ID: periodical, Event: meta_timestamp:199008131245, meta_isPowerSaverEnabled:false, meta_sensorId:100, meta_sensorName:temperature, correlation_longitude:23.45656, correlation_latitude:7.12324, triggered_time:1455011068398, humidity:100.34, sensorValue:23.4545 [2016-02-09 15:14:28,399] INFO {org.wso2.carbon.event.output.adapter.logger.LoggerEventAdapter} - Unique ID: periodical, Event: meta_timestamp:199008131245, meta_isPowerSaverEnabled:true, meta_sensorId:101, meta_sensorName:temperature, correlation_longitude:23.45656, correlation_latitude:7.12324, triggered_time:1455011068398, humidity:100.34, sensorValue:23.4545 [2016-02-09 15:14:28,399] INFO {org.wso2.carbon.event.output.adapter.logger.LoggerEventAdapter} - Unique ID: periodical, Event: meta_timestamp:199008131245, meta_isPowerSaverEnabled:false, meta_sensorId:103, meta_sensorName:temperature, correlation_longitude:23.45656, correlation_latitude:7.12324, triggered_time:1455011068398, humidity:100.34, sensorValue:23.4545 [2016-02-09 15:14:28,400] INFO {org.wso2.carbon.event.output.adapter.logger.LoggerEventAdapter} - Unique ID: periodical, Event: meta_timestamp:199008131245, meta_isPowerSaverEnabled:true, meta_sensorId:104, meta_sensorName:temperature, correlation_longitude:23.45656, correlation_latitude:7.12324, triggered_time:1455011068398, humidity:100.34, sensorValue:23.4545 [2016-02-09 15:14:30,004] INFO {org.wso2.carbon.event.output.adapter.logger.LoggerEventAdapter} - Unique ID: cron, Event: meta_timestamp:199008131245, meta_isPowerSaverEnabled:true, meta_sensorId:101, meta_sensorName:temperature, correlation_longitude:23.45656, correlation_latitude:7.12324, triggered_time:1455011070003, humidity:100.34, sensorValue:23.4545 [2016-02-09 15:14:30,004] INFO {org.wso2.carbon.event.output.adapter.logger.LoggerEventAdapter} - Unique ID: cron, Event: meta_timestamp:199008131245, meta_isPowerSaverEnabled:false, meta_sensorId:103, meta_sensorName:temperature, correlation_longitude:23.45656, correlation_latitude:7.12324, triggered_time:1455011070003, humidity:100.34, sensorValue:23.4545 [2016-02-09 15:14:30,004] INFO {org.wso2.carbon.event.output.adapter.logger.LoggerEventAdapter} - Unique ID: cron, Event:

    The events triggered in the CEP are logged in your CLI as shown in the extract below.

    • The events that are triggered in the periodicalTriggerStream event stream every 5 seconds have periodical as the unique ID. 
    • The events that are triggered in the cronTriggerStream event stream every 10 seconds have cron as the unique ID.

Image Added