If events are dropped at the artifact then we have to inspect the artifact in detail (Step 3)
If the events have not even arrived at the artifact then we can use the event flow to identify the artifacts that feed events to the current artifact (Step 1) and then inspect the statistics of those artifacts (Step 2) till we find the artifact causing the root cause.
Step 3: Investigating Artifacts
After identifying an artifact for investigation there are several options that you can try depending on the artifacts type you are investigating.
With Siddhi Try-it feature you can test the execution plan or query in detail. Here you can define the queries and their expected inputs, and this feature will produce the outputs of the queries at different levels helping you to find the root course of the issue.
Step 4: Simulating Execution Environment
In this step we can simulate the whole execution environment to understand its behaviour on different conditions and to fix issues if they exist. This can be done by constructing a sample dataset or recording the events and replying them.
Collecting/recording events from streams
To collect events from a stream create an RDBMS publisher for that stream and configure it to insert the events in the database by configuring the publisher similar to below.
The configuration for the REDMS publisher is given below.
<?xml version="1.0" encoding="UTF-8"?> <eventPublisher name="BusArrivalDepartureRDBMSPublisher" statistics="disable" trace="disable" xmlns="http://wso2.org/carbon/eventpublisher"> <from streamName="busArrivalDepartureStream" version="1.0.0"/> <mapping customMapping="disable" type="map"/> <to eventAdapterType="rdbms"> <property name="datasource.name">WSO2_GEO_EVENTS_DB</property> <property name="table.name">BusArrivalDepartures</property> <property name="execution.mode">insert</property> </to> </eventPublisher>