Java Melody
Java Melody Performance Monitoring Tool
Currently all four Production KFS and KR back end application servers are instrumented using Melody. UCONN's configuration takes advantage of the 'collect server' option. Therefore, all of the results are viewable from a single separate location (the above link).
Server: MELODY_COLLECT (137.99.109.7)
Usage
Selecting Nodes
It's important to note the JavaMelody collect server does not aggregate the results of all instrumented machines into a single interface. Instead, you must select which node you want to view the results on from the top ( see below screenshot "Choice of application"). By default it shows whichever application server was added first.
Adding Nodes
If you are adding an application that is load balanced in a multi-node environment, use the following syntax to add it. "http://<IP address>:8080/<app-context>" for example "http://137.99.109.7:8080/kfs-uat"
Selecting Time interval
Just above the graph grid, you will find a 'choice of period' selection. Day, Week, Month, and Year, all back from the current time (for instance, everything up until a week ago). There is also an "all" which will show everything that was ever collected. There is also a custom time option that uses mm/dd/yyyy format, this is the only way to make melody not display results up until the current date/time.
Memory / CPU / #HTTP Sessions
Once you have selected the node that you want to view the results of, you will see a grid of graphs. The top three graphs show (from left to right) Java's used memory, %cpu used, and # of HTTP sessions. These aforementioned graphs are the most useful for monitoring daily performance and operations.
"# of HTTP sessions" is not equivalent to the number of logged on users in the node.
Zooming into a graph
If you click on a graph it will bring up a larger full screen version of the graph. It still might be hard to see what time an event occurred. In order to mitigate this, use the slider at the top of the expanded graph to zoom in completely. Once you are completely zoomed , each X axis block is a 10 minute period.
HTTP Statistics
Directly below the grid of graphs is a table for HTTP statistics. This is most useful for identifying problematic requests. Melody classifies requests in three categories Global (Green), Warning(Yellow), and Severe(Red). Yellow could be a concern, Red is a serious concern, and Green is not a concern. These classifications are based off of the average amount of time it takes to process each request. In order to see the full picture, you must click the blue link at the bottom right hand corner of the table "+Details". This will expand the last requests in the given time interval with more detail. Each request is classified on its average time, but it's also important to look at the max items for worst case scenarios. It's possible to drill deeper into each request by clicking on the request type names in the left hand corner.
Known Issues
- Melody IS NOT TO BE USED AS A LOG INTERPRETER: Melody incorrectly tries to interpret the application logs and its 'System Error logs' section is completely erroneous. Use SPLUNK instead.
- Some graphs are not applicable to our environment due to the units of measurement (ie: half-utilized database connections). Be conscious of inaccurate or misleading graphs.
- SQL statistics for KFS aren't as helpful because almost all queries in the UConn KFS environment are generated on the fly by OJB.
- Database statistics differ from 'lsof' calls in the OS. This is most likely a result of how connection pooling is configured in KFS.
- The Collect server copies data off each node instead of simply reading from it, this means the Collect server needs large amounts of disk space when adding new nodes.
CM Reference:
http://kualigan.blogspot.com/2012/02/adding-java-melody-to-kuali-project.html