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
