#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
An Application Performance Monitoring Tool
1. Development of an Open Source Application
Performance Monitoring Tool
Lee HunJae / 2013.11.29
2. Objectives
•
Application Performance Monitoring
– Provide (near) real-time performance measures of Java-based Web Applications
• Arrival rates, Throughput, Response Time, Number of Unique Clients, …
•
Features
– Enabling end-to-end performance monitoring
• Not only server application performance values, but also client performance; e.g., response
times of HTTP requests from web browsers.
– Architecture-centric performance monitoring
• In addition to collecting performance values of end-point URLs, significant execution points of
an application are also monitored; e.g., Controller and DAO methods in Spring Framework
– Deliver raw performance event data
• All performance events collected in monitoring system are also available for other use; e.g., raw
performance data can be consumed by a CEP engine to emit meaningful time-based query.
4. Architecture of Monitoring System
1
2
3
Enabling end-to-end performance monitoring
Architecture-centric monitoring, by re-construction of call graphs
Real-time alarm or notification, by delivering raw performance events
App. under Monitor
Monitoring Back
Monitoring Front
Web Browser
3
User
Web Pages
JavaScript
3
Event
Processing
1
Timebased
Real-time
Alarms
Timebased
Query
Performance Events
Streaming
API
Monitoring Client
Event
Receiver
Graph DB
Query
2
User Application
Chart
Storage
D3.js
Spring Framework
Servlet Container
AOP
Application Server
1
CEP engine
ZMQ
Thrift
Titan
Cassandra
Play
5. Example deployment
CEP engine
JSON/HTTP
Web Pages
JavaScript
notification.example.com
Client-side
Titan Event Writer
Request/Response
Node1.example.com
UI Event Receiver
Play Framework
Event Hub
Application
Application
Development
Framework
Servlet Container
Cassandra
Event Streamer
Thrift/ZMQ(Pub)
JSON API
datastore1.example.com
Titan Event Writer
Play Framework
AspectJ
(beta.owlab.com)
Server-side
Application under
Monitoring
datastore2.example.com
Charts
Application under
Monitoring
Application under
Monitoring
…
Application under
Monitoring
Cassandra
JSON Service
Titan Event Writer
Monitoring Client
Cassandra
datastore3.example.com
…
datastoreN.example.com