By Hovhannes Avoyan | Article Rating: |
|
October 12, 2012 11:24 AM EDT | Reads: |
225 |

When it comes to monitoring various applications, it is critical to define the key metrics to monitor, in order to get the precise picture of how your application is performing. That sounds easy enough, but the “simple” idea of defining key metrics is hard to implement in reality, because:
- The absolute number of metrics may be quite large (i.e. 250+)
- It can be hard to evaluate the importance of each metric by just looking at their names
- This process can be extremely time-consuming
Here at Monitis, we’ve spent a lot of time and effort endeavoring to come up with the right metrics for whatever application that needs to be monitored. That’s why when you set up your Monitis account, you don’t have to choose from dozens of metrics for Apache or MySQL. Instead, our research team has pre-selected the most important metrics for you.
Today we would like to share with you a method we use for defining the right metrics for every application. This research is an ongoing experiment and we’d like to ask you to contribute to our research by discussing the idea and suggesting your own ideas.
The Problem
We have an application written in Java , and we need to define what are the metrics we should monitor , in order to get the most realistic picture of the application’s performance.
The Goal
Our goal is to define a minimal set of descriptive metrics which will fully describe the state of the system.
The preconditions
- The monitored system is considered as a black-box system with one input and several outputs.
- The input parameter of the system is generated load. You can also consider as an input parameter the configuration settings, but for simplicity we will build our example using a fixed configuration and environment.
- Observational parameters – all numeric outputs are available through Monitis. In our example, we used a simple Java application to get all available data provided trough JMX, the output is a CSV file with one minute interval measurements.
- In order to get the most from the behavior pattern of system, observations will be made under a stress test.
We used simple load simulator, increasing load by fixed steps in equal intervals. Sure, you can use any, e.g. JMeter, httperf, etc.
The Proposed Solution
We suggest using a combination of two methods for defining the minimal set of descriptive metrics. These methods are described below, giving you the core idea behind them.
In the first step we need to filter the unnecessary information (metrics) from the necessary ones, by applying a method that might be familiar to those of you who have learned mathematical analysis at university. The magic method is called Principal Component Analysis.
Principal Component Analysis- a mathematical procedure that uses an orthogonal transformation to convert a set of observations of possibly correlated variables into a set of values of linearly uncorrelated variables called principal components. The number of principal components is less than or equal to the number of original variables. This transformation is defined in such a way that the first principal component has the largest possible variance (that is, accounts for as much of the variability in the data as possible), and each succeeding component in turn has the highest variance possible under the constraint that it be orthogonal to (i.e., uncorrelated with) the preceding components.
We will use this method to find optimal k components with cumulative variance close to the threshold (95 – 99%)
The second step would be to group the necessary metrics in clusters, wherein the metrics correlate with each other to some degree.
For this we will use another mathematical method, called «K-Medoid clustering». As wikipedia explains, this model is a clustering algorithm related to the k-means algorithm and the medoidshift algorithm. Both the k-means and k-medoids algorithms are partitional (breaking the dataset up into groups) and both attempt to minimize the distance between points labeled to be in a cluster and a point designated as the center of that cluster. In contrast to the k-means algorithm, k-medoids chooses datapoints as centers (medoids or exemplars) and works with an arbitrary matrix of distances between datapoints instead of .
The Outcome
Although the common count of metrics reaches 250 (in our case), as an outcome we’ll have 7 distinct clusters of metrics, where the metrics within a given cluster are correlated but the metrics of two or more distinct clusters are not correlated with each other. This would mean that there are potentially at least 7 metrics which we absolutely must use, in order to get an idea about how the application works.
The challenge we face here is that we now need to figure out the metrics to be used from each cluster. This can be a difficult task, since there might be dozens of metrics in each cluster.
One way of filtering the important ones is to look at the ones which have the smallest distance from the «center» of the cluster.
Another way is to dive one layer deeper and create sub-clusters in each cluster and find even more correlated metrics. This way we would have a bigger cluster that has three sub-clusters, for example. That would mean that the bigger cluster can be described by monitoring the metrics from the sub-clusters.
Share Now:











Read the original blog entry...
Published October 12, 2012 Reads 225
Copyright © 2012 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Hovhannes Avoyan
Hovhannes Avoyan is the CEO of Monitis, Inc., a provider of on-demand systems management and monitoring software to 50,000 users spanning small businesses and Fortune 500 companies.
Prior to Monitis, he served as General Manager and Director of Development at prominent web portal Lycos Europe, where he grew the Lycos Armenia group from 30 people to over 200, making it the company's largest development center. Prior to Lycos, Avoyan was VP of Technology at Brience, Inc. (based in San Francisco and acquired by Syniverse), which delivered mobile internet content solutions to companies like Cisco, Ingram Micro, Washington Mutual, Wyndham Hotels , T-Mobile , and CNN. Prior to that, he served as the founder and CEO of CEDIT ltd., which was acquired by Brience. A 24 year veteran of the software industry, he also runs Sourcio cjsc, an IT consulting company and startup incubator specializing in web 2.0 products and open-source technologies.
Hovhannes is a senior lecturer at the American Univeristy of Armenia and has been a visiting lecturer at San Francisco State University. He is a graduate of Bertelsmann University.
- Cloud People: A Who's Who of Cloud Computing
- Twelve New Programming Languages: Is Cloud Responsible?
- Agile Adoption – Crossing the Chasm
- TOGAF Foundation Level Certification – Another Practice Test
- TOGAF Foundation Level Certification – Practice Test
- What Makes Agile Agile?
- Examining the True Cost of Big Data
- Rackspace Lets Go of OpenStack
- Thanks to Big Data, Analytics Will Be a $51B Business by 2016: IDC
- Here Comes Rackspace & Amazon’s Latest Rival
- Cloud Expo Silicon Valley | Cloud Computing Adoption: Where Are We Really?
- Network Add-Ons for Web Traffic and Cloud Technology
- Cloud People: A Who's Who of Cloud Computing
- Twelve New Programming Languages: Is Cloud Responsible?
- Agile Adoption – Crossing the Chasm
- TOGAF Foundation Level Certification – Another Practice Test
- TOGAF Foundation Level Certification – Practice Test
- What Makes Agile Agile?
- Examining the True Cost of Big Data
- Monotype Imaging Appoints Timothy B. Yeaton to its Board of Directors
- Rackspace Lets Go of OpenStack
- Thanks to Big Data, Analytics Will Be a $51B Business by 2016: IDC
- Here Comes Rackspace & Amazon’s Latest Rival
- Cloud Expo Silicon Valley | Cloud Computing Adoption: Where Are We Really?
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- JavaServer Faces (JSF) vs Struts
- The i-Technology Right Stuff
- Rich Internet Applications with Adobe Flex 2 and Java
- Java vs C++ "Shootout" Revisited
- Bean-Managed Persistence Using a Proxy List
- Reporting Made Easy with JasperReports and Hibernate
- Creating a Pet Store Application with JavaServer Faces, Spring, and Hibernate
- Why Do 'Cool Kids' Choose Ruby or PHP to Build Websites Instead of Java?
- What's New in Eclipse?
- i-Technology Predictions for 2007: Where's It All Headed?