Events can be notified or published to external systems from WSO2 servers using event publishers. Event publishers enable you to manage event publishing and notifications. They allow publishing events via multiple transports in JSON, XML, Map, text, and WSO2Event formats to various endpoints and data stores.
Event publisher types
Event publishers publish events via various transport protocols. These transports are implemented as output event adapters. Following are the adapters that are available by default. You can write extensions to support other transports.
- Cassandra Event Publisher
- Email Event Publisher
- HTTP Event Publisher
- JMS Event Publisher
- Kafka Event Publisher
- Logger Event Publisher
- MQTT Event Publisher
- RDBMS Event Publisher
- SMS Event Publisher
- SOAP Event Publisher
- UI EventPublisher
- WebSocket Event Publisher
- WebSocket Local Event Publisher
- WSO2Event Event Publisher
Event publisher configuration
An event publisher configuration has four main sections as follows.
Event publisher configurations are stored in file system as hot deployable artifacts in the <PRODUCT
_HOME>/repository/deployment/server/eventpublishers/
directory as shown in the example below .
<eventPublisher name="WebSocketEventPublisher" statistics="disable" trace="disable" xmlns="http://wso2.org/carbon/eventpublisher"> <from streamName="testEventStream" version="1.0.0"/> <mapping customMapping="disable" type="text"/> <to eventAdapterType="websocket"> <property name="websocket.server.url">ws://localhost:9099</property> </to> </eventPublisher>
The above sections of an event publisher configuration are described below.
Section | Description |
---|---|
From | The event stream from which the event publisher will fetch the events for publishing. |
To | An output event adapter(transport) configuration that is used to send the events to. |
Adapter properties | Output event adapters contain three types of adapter properties in their configuration as explained below.
|
Mapping configuration | The format of the message that needs to be sent. You can configure custom mappings on the selected format via advanced settings. |
Creating event publishers
You can create event publishers either using the management console or using a configuration file as explained below.
Creating publishers using the management console
Follow the steps below to create an event publisher using the management console of WOS2 CEP/DAS.
To create an event publisher via the management console, you must at least have one event stream defined.
- Log in to the management console, and click Main.
- Click Publishers in the Event menu, and then click Add Event Publisher.
Enter a name for Event Publisher Name. (Do not use spaces between the words in the name of the event publisher.)
Select the Event Source with the published events.
- You view the Stream Attributes of the selected event source. You cannot edit the attributes of a created event stream in here.
Select the output transport to which you want to publish events for the Output Event Adapter Type, and enter the Adapter Properties accordingly. For instructions on the adapter properties of output transport types, see Event Publisher Types.
Select the Message Format which you want to apply on the published events. WSO2 servers allow users to configure events in XML, JSON, Text, Map, and WSO2Event event formats.
- Click Advanced to define custom output mappings based on the message format you selected, if you want to publish events that do not adhere to the /wiki/spaces/TESB/pages/32604416. For more information on custom input mapping types, see Publishing Events in Various Event Formats.
- Click Add Event Publisher , to create the event publisher in the system. When you click OK in the pop-up message on successful addition of the event publisher, you view it in the Available Event Publishers list as shown below.
Creating publishers using a configuration file
Follow the steps below to create an event publisher using a configuration file.
Create an XML file with the following event publisher configurations. An event publisher implementation must start with
<eventPublisher
as the root element.>
In the following configuration, specify the respective adapter properties based on the transport type of the publisher within the
<from>
element. For the respective adapter properties of the event publisher configuration based on the transport type, see Publishing Events via Various Transports.<eventPublisher name="EVENT-PUBLISHER-NAME" statistics="disable" trace="disable" xmlns="http://wso2.org/carbon/eventpublisher"> <from streamName="Test Stream" version="1.0.0"/> <mapping customMapping="disable" type="text"/> <to eventAdapterType="EVENT-ADAPTER-TYPE"> ..................... </to> </eventPublisher>
The properties of the above configuration are described below.
Adapter property Description name
Name of the event publisher statistics
Whether monitoring event statistics is enabled for the publisher trace
Whether tracing events is enabled for the publisher xmlns
XML namespace for event receivers streamName
Name of the event stream from which the publisher publishes events. version
Version of the event stream from which the publisher publishes events. customMapping
Whether a custom mapping is enabled on the receiver. type
Type of the enabled custom mapping. eventAdapterType
Type of the event adapter. Add the XML file to the
<PRODUCT_HOME>/repository/deployment/server/eventpublishers/
directory. Since hot deployment is supported in the product, you can simply add/remove event publisher configuration files to deploy/undeploy event publishers to/from the server.First define the stream to which the publisher is publishing data from to activate the publisher. When receiving WSO2Events, the outgoing stream definition that you select in the advanced input mappings must also be defined, to activate the event publisher. When you click Inactive Event Publishers in the Available Event Publishers screen, if an event publisher is in the inactive state due to some issue in the configurations, you view a short message specifying the reason why the event publisher is inactive as shown below. A similar message is also printed on the CLI.
After a publisher is successfully added, it gets added to the list of publisher displayed under Event in the Main menu of the product's management console. ClickEdit to change its configuration and redeploy it. This opens an XML-based editor allowing you to edit the event adapter configurations from the UI. Do your modifications and click Update. You can also delete it, enable/disable statistics or enable/disable tracing on it using the provided options in the UI as described below.
Enabling statistics for event publishers
Follow the steps below to enable monitoring statistics of events published by an existing event publisher.
For more information on monitoring event statistics of event publishers, see Event Metrics.
- Log in to the management console, and click Main.
- Click Publishers in the Event menu. You view the Available Event Publishers list.
- Click the Enable Statistics button of the corresponding event publisher to enable monitoring event statistics for it.
Enabling tracing for event publishers
Follow the steps below to enable tracing on events published by an existing event publisher.
For more information on monitoring event statistics of event publisher s, see Event Tracer.
- Log in to the management console, and click Main.
- Click Publishers in the Event menu. You view the Available Event Publishers list.
- Click the Enable Tracing button of the corresponding event publisher to enable event tracing for it.
Deleting event publishers
Follow the steps below to delete an existing event publisher.
- Log in to the management console, and click Main.
- Click Publishers in the Event menu. You view the Available Event Publishers list.
- Click the Delete button of the corresponding event publishe r to delete it.
Editing event publishers
Follow the steps below to edit an existing event publisher.
- Log in to the management console, and click Main.
- Click Publishers in the Event menu. You view the Available Event Publishers list.
- Click the Edit button of the corresponding event publishe r to edit it. This opens Edit Event Publishers Configurations XML editor.
- After editing, click Update, to save the configuration, or click Reset to reset the configuration to its original state.