Top Banner
WSO2 BAM2 Integration with Mule ESB Kasun Weranga Gunathilake Software Engineer – WSO2 BAM
32

WSO2 Advantage Webinar WSO2 BAM2 Integration with mule esb

May 15, 2015

Download

Documents

WSO2
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

WSO2 BAM2 Integration with Mule ESBKasun Weranga Gunathilake

Software Engineer – WSO2 BAM

Page 2: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Why server monitoring?

Analyze all business transactions To find a root cause for a failure Prevent outages with rapid problem identification and resolution Monitor performance and availability of all ESBs Understand resource utilization for tuning and capacity planning

Page 3: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Business Activity Monitoring

“The aggregation, analysis, and presentation of real-time information about activities inside organizations and involving customers and partners.” - Gartner

Page 4: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Aggregation

● Capturing data● Data storage● What data to

capture?

Page 5: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Analysis● Data operations● Building KPIs● Operate on large

amounts of historic data or new data

● Building BI

Page 6: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Presentation

● Visualizing KPIs/BI● Custom Dashboards● Visualization tools● Not just dashboards!

Page 7: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

BAM Architecture

Page 8: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Things to Monitor

● Server logs● Server resource consumption● Statistics of services in Mule ESB ● Analyzing business transactions ( by inspecting

payload)

Page 9: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Monitor Server logs

● Mule ESB uses log4j for logging.● A Log4j appender can be used to capture log

events.● Write a custom BAM agent to publish log

events from Mule ESB to BAM.

Page 10: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Monitor Server logs

Page 11: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Custom Agents

● Java SDK provided● Asynchronous & non-blocking● Use Thrift for high performance message

throughput● Due to Thrift, different languages can be

supported● Compatible with CEP/BAM

Page 12: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Log4jAppender

● log4j.appender.LOGEVENT=org.wso2.carbon.mule.log.appender.LogEventAppender

log4j.appender.LOGEVENT.receiverUrl=tcp://localhost:7611

log4j.appender.LOGEVENT.authenticationUrl=ssl://localhost:7711

log4j.appender.LOGEVENT.trustStorePassword=wso2carbon

log4j.appender.LOGEVENT.columnList=%-5p,%d,[%t],%c:,%m%n

log4j.appender.LOGEVENT.userName=admin

log4j.appender.LOGEVENT.password=admin

log4j.appender.LOGEVENT.processingLimit=1000

log4j.appender.LOGEVENT.maxTolerableConsecutiveFailure=20

● log4j.rootCategory=INFO, console, LOGEVENT

Page 13: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

The Analyzer Engine

● Analyzers are based on Easy to learn, SQL like Hive query language

● Runs locally or delegates to Hadoop cluster● Scalable analytics● Cluster can range from a couple of nodes to 1000s

● Analyzers can be scheduled● Supports Polyglot data architecture

Page 14: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Advantage of Using BAM

● Provide central place to analyze all the log information (ex:- logs of ESB cluster).

● Ability to analyze large amount of historical log events

● Efficient way to analyze the root cause for a failure.

Page 15: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Analyze Mule logs

● select logTime, logType, threadName, category, logMessage, logTimestamp from LogCollector where logtype='WARN' and logTimestamp > unix_timestamp('2013-01-06 11:00:00') order by logTimestamp;

Page 16: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Demonstration..

● Configure Mule ESB to send log events to BAM● Analyze logs using BAM

Page 17: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Monitor Business Transactions

● Capture useful information by inspecting payloads

● A Mule ESB interceptor can be used to capture data from payloads

● Write a custom BAM agent to publish captured data from Mule ESB to BAM

Page 18: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Monitor Business Transactions

Page 19: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Mule Interceptor

● Use Bookstore example comes with Mule● Capture order details using Interceptor

<flow name="OrderService">

<http:inbound-endpoint address="http://0.0.0.0:8777/services/order" exchange-pattern="request-response" doc:name="Public order interface"/>

<cxf:jaxws-service serviceClass="org.mule.example.bookstore.OrderService" />

<custom-interceptor class="org.wso2.carbon.mule.interceptor.BAMInterceptor"/>

<component doc:name="Order Service">

<singleton-object class="org.mule.example.bookstore.OrderServiceImpl"/>

</component>

<async>

<vm:outbound-endpoint path="emailNotification" exchange-pattern="one-way" doc:name="Email Notification"/>

<vm:outbound-endpoint path="dataWarehouse" exchange-pattern="one-way" doc:name="Data Warehouse"/>

</async>

</flow>

Page 20: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Analyze and present information

● Hive queries use to analyze the captured data.● Schedule Hive scripts to do the periodic

summarizations.● Gadget gen tool can be used to generate

gadgets and deploy on dashboard.● Plug 3rd party reporting engines to present

information

Page 21: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Demonstration...

● Capture order details from Mule bookstore sample

● Summarize sales against book titles and authors

● Visualize in dashboard

Page 22: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Monitor Server via JMX

● Server resource consumption (CPU, heap/non-heap memory, threads, etc..)

● Statistics of services deployed in Mule ESB

Page 23: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Monitor Server via JMX

● Enable JMX in Mule ESB (can use <jmx-default-config> )

● Configure JMX agent to pull statistics and store in BAM

– Provide the JMX server (Mule ESB)– Select JMX attributes need to monitor– Configure publisher

● Install JMX statistics toolbox in BAM

Page 24: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Monitor Server via JMX

Page 25: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Demonstration

● Monitor server resources (CPU, Memory)● Monitor statistics of order service in Mule ESB

Page 26: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Real time Monitoring of Mule ESB

● Improve Risk Management by rapid problem identifications

● Detect specific business conditions or patterns to enable instantaneous response.

● To take timely business decisions

Page 27: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Real time Monitoring

● Real time analytics via CEP● Based on Siddhi - A high performance complex

event processing engine developed at WSO2

● Can be seamless integrated with BAM to form a complete analytics solution

Page 28: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Real time Monitoring

Page 29: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Demonstration...

● Notify sudden increase in sales● Notify users about unusual system errors

Page 30: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Summary

● Importance of Monitoring the server● BAM architecture● Monitor server logs● Monitor business transactions● Monitor server via JMX● Realtime monitoring via CEP

Page 31: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Questions?

Page 32: WSO2 Advantage Webinar  WSO2 BAM2 Integration with mule esb

Useful Links....● BAM Docs

http://docs.wso2.org/wiki/display/BAM201

● Setting up JMX agenthttp://docs.wso2.org/wiki/display/BAM210/Setting+Up+JMX+Agent+for+BAM

● Write a custom data-agent http://wso2.org/library/articles/2012/07/creating-custom-agents-publish-events-bamcep

● CEP docs http://docs.wso2.org/wiki/display/CEP201

● Hive query language https://cwiki.apache.org/confluence/display/Hive/LanguageManual

● Mule docs http://www.mulesoft.org/documentation/display/MULE3USER/Using+Interceptors

http://www.mulesoft.org/documentation/display/MULE3USER/JMX+Management