The value of instrumentation

As I’m continuing to take measurements on the recommendation engine’s performance I’m becoming increasingly aware of the value of instrumentation. Several noteworthy bloggers and companies repeatedly talk about it. The mantra follows something along the lines “if you don’t instrument, you have no clue what is happening.” It couldn’t be more true.

Being a project that has mostly been confined to my development machine and small-scale tests, there hasn’t been a strong need for looking inside. Various log.debug() messages coupled with some grep/awk magic have so far been sufficient.

At the time of writing a 5-minute performance test is running. During this time I have essentially no insight into what the system is up to. Only when I get the results back and can plot the graphs will I know how it performed. Considering that I do not trust the software that I’ve written (I wouldn’t do that till I see it run for a substantial amount of time) it seems it would have been a good time investment to set up better run-time metrics.

Developed by the guys behind Yammer, I found Metrics – a Java library to easily extract information from deployed code. It can export the information to both jconsole (handy tool to see what’s happening inside your JVM), as well as the more large-scale tools Graphite and Ganglia. It looks promising for code running in production (which it was designed for), but perhaps not the most optimal tool for development/performance testing.

At the moment I don’t have the time to explore Metrics further, but will definitely put it in my toolbox.

Posted on 23 May 2012 in notes

Older posts

Progress! - 23 May 2012 in notes
When all else fail - 15 May 2012 in results
Unix tools - 15 May 2012 in notes
Weaving the fabric - 12 May 2012 in notes
Configuration management - 08 May 2012 in rant
Balancing the cluster - 04 May 2012 in notes
Towards distributed evaluation - 03 May 2012 in notes
Illustrating matrix factorisation - 02 May 2012 in notes
Planning evaluation - 30 Apr 2012 in notes
More on Evaluation - 26 Apr 2012 in notes
How to evaluate a recommendation system? - 24 Apr 2012 in notes
Follow your guts - 23 Apr 2012 in notes
Towards real-world testing - 19 Apr 2012 in notes
Performance evaluation with JMeter - 19 Apr 2012 in notes
First user interface - 17 Apr 2012 in notes
Working with Scala - 16 Apr 2012 in notes
New popular items - 12 Apr 2012 in notes
REST confusion (again) - 05 Apr 2012 in notes
Supervisor meeting - 03 Apr 2012 in notes
Paper review - Fast Top-k retrieval for Model Based Recommendation - 02 Apr 2012 in review
Rewriting the core - 29 Mar 2012 in code
Re-run with bigger dataset - 27 Mar 2012 in notes
Writing every day - 22 Mar 2012 in links
Iteration 2 - Routing - 20 Mar 2012 in notes
Code coverage in Scala - 20 Mar 2012 in notes
Routing to the most relevant itemset(s) - 15 Mar 2012 in notes
Work process - 08 Mar 2012 in ideas
Worth migrating from Akka 1.3 to 2.0? - 08 Mar 2012 in notes
Status update - 05 Mar 2012 in notes
Mind your language - 05 Mar 2012 in random
Curse of Dimensionality - 02 Mar 2012 in notes
Meeting my supervisor - 01 Mar 2012 in notes
Finding a needle in a haystack - 27 Feb 2012 in notes
Handling failures - 20 Feb 2012 in notes
Drawing sequence diagrams - 14 Feb 2012 in tips
Math libraries (cont) - 09 Feb 2012 in notes
Evaluating math libraries - 09 Feb 2012 in notes
Recommendations from a philosophical view - 07 Feb 2012 in thoughts
On-line computation cost - 06 Feb 2012 in notes
Load test prototype - 03 Feb 2012 in notes
Reducing dimensions of the problem - 02 Feb 2012 in notes
Usage analysis - 31 Jan 2012 in notes
A set of requirements for a recommendation framework - 30 Jan 2012 in ideas
Architecting Recommendation Systems for Web-Scale Data - 27 Jan 2012 in ideas
A day of tutorials and code - 25 Jan 2012 in notes
Production recommender systems - 24 Jan 2012 in links
Mahout vs GraphLab - 23 Jan 2012 in notes
Head-banging - 20 Jan 2012 in notes
Survey paper on CF recommendation algorithms - 19 Jan 2012 in notes
Summary of "Google News Personalization Scalable Online Collaborative Filtering" - 19 Jan 2012 in summaries
Motivating my thesis topic - 19 Jan 2012 in notes
Summary of "A case for distributed recommender system architecture" - 18 Jan 2012 in summaries
More Matrix Factorization - 17 Jan 2012 in maths
Time Computing vs Accuracy - 16 Jan 2012 in ideas
Singular Value Decomposition - 16 Jan 2012 in maths
Summary of Toward the Next Generation of Recommender Systems - 13 Jan 2012 in summaries
First day at Tuenti - 12 Jan 2012 in random
Entry 4 - 07 Jan 2012 in random
Entry 3 - 06 Jan 2012 in references
Entry 2 - 25 Dec 2011 in references
Entry 1 - 15 Dec 2011 in random

Listing all posts