I am working on AS-BAM application & server monitoring. Kalpa will work
with me for three weeks. He will do the BAM related work for HTTP call
monitoring.

AS monitoring with BAM is the first step towards a monitoring product based
on BAM to monitor the entire WSO2 product stack including their
infrastructure.

*Current AS monitoring with BAM:*

There are some BAM toolboxes which gives some limited capabilities of
monitoring.

HTTPD Logs Analysis Toolbox (Sample) [1]
Real-time Traffic Monitoring Toolbox (Sample) [2]
Service Statistics Toolbox [3]
Activity Monitoring Toolbox [4]

*Limitations:*

All above comes as different features
aggregated results are not provided
Drill down capabilities are limited.
duplicate data pushes from AS to BAM slow down the overall system.
The end-user should do some of the technical work to extract the result
(writng queries etc...).
Presentation of the result is not use friendly.

*Solution:*

Coming up with a new product to monitor WSO2 Application Server cluster.
The product's monitoring capabilities are categorized in to four (4)
categories.

   - HTTP call Monitoring (Http call throughput, average response time
   etc...)
   - JDBC & Third-party call monitoring (Number of queries per each Data
   source etc...)
   - JVM level monitoring (GC, Threads etc...)
   - Infrastructure monitoring (CPU utilization, Memory etc...)

*Overall Architecture:*

​

Each AS Node has three Agents running on it. These agents pushes data
through several data streams to BAM.

*The Agents:*


   - Node Agent

The Hardware level & Operating System level data are gathered and pushed by
this agent. (CPU, Memory, Network, ...) There will be an implementations
per each Operating System.


   - Java Agent

The JVM details like Garbage Collection, Threads are gathered and pushed by
this agent. this will be implemented as a javaagent [5]


   - AS Agent

The data that can be gathered as AS level are gathered and pushed by this
Agent. Examples: Http call response time, headers, payload, session
details, JDBC connections etc...

*Streams:*

There can be many streams used to push data to BAM. The only constraint is
"Non of the data streams should publish duplicate data"

*BAM:*

The AS agents only pushes raw data. We develop a BAM toolbox (or a UES
dashboard) which manipulate the data from streams and show them on a
user-friendly dashboard with many inter-connected data visualizations.

*First Step:*

Implementing the HTTP call monitoring capability is the first step. It will
be discussed in a separate thread to limit the length of the email.



[1] https://docs.wso2.org/display/BAM240/Analysing+HTTPD+Logs
[2] https://docs.wso2.org/display/BAM241/Monitoring+Realtime+Traffic
[3] https://docs.wso2.org/display/BAM240/Service+Statistics+Toolbox
[4] https://docs.wso2.org/display/BAM240/Activity+Monitoring+Toolbox
[5]
http://docs.oracle.com/javase/6/docs/api/java/lang/instrument/package-summary.html
-- 
K.D. Chamil Jeewantha
Associate Technical Lead
WSO2, Inc.;  http://wso2.com
Mobile: +94716813892
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to