MOM: Memcached Operations Monitoring
    Dustin Sallings 
    dustin at spy.net
       
    Thu Oct 11 22:17:46 UTC 2007
    
    
  
On Oct 11, 2007, at 14:16 , Randy Wigginton wrote:
> I have modified memcached as well as the java client library; with  
> these modifications, and very few lines of code in the application,  
> I can tell precisely how many URLs and SQLs are executing on a  
> particular machine in any given minute or in any given hour.  I can  
> tell you the average execution time, the maximum execution time, as  
> well as the number of failures.  I can tell you which URLs were  
> expensive, which URLs invoked SQL statements, which urls failed  
> most often.  Coupled with a small mysql database, I can give you  
> more operational statistics on our site than many larger sites have  
> available.
	I do a similar thing in application with a small amount of java  
code.  If I had to guess, it sounds like you want to do the same kind  
of thing I'm doing, but in memcached instead of in a server instance.
	Mine has a couple of forms:
	@TimedMethod("blah.doSomething")
	public Something doSomething(...) {
		// expensive stuff
	}
	With the above, I automatically get stats that look like this (time  
units in milliseconds):
blah.doSomething = compstat: count=26345 sum=461399.000000  
min=7.000000 avg=17.513722 davg=17.517460 max=1731.000000  
stddev=66.180928
	You can also directly use the stats and do your own timings within  
code (or use a simple counter variant).
	The counter variant is analogous to incr.  Adding a similar data  
structure to keep running timing stats would be pretty cheap and  
easy, but I don't know how generally applicable it'd be.  You'd lose  
the general discoverability I rather like, and you'd have to modify  
your key space to include the origin server somehow.
	How does yours work?
-- 
Dustin Sallings
    
    
More information about the memcached
mailing list