Why Do Clients Nitpick?
summary
The talk examines measuring and acting on application performance metrics (max latency and response-time consistency) and demonstrates inaccuracies in a common monitoring stack: Graphite with the com.codahale (Dropwizard) metrics library. It uses JMeter to show how naive measurement and Graphite’s aggregation hide latency spikes, then shows tuning techniques and replacing aggregation with HdrHistogram to obtain reliable latency metrics and compares performance of different metric approaches.
AI-written summary · about
chapters (20)
- 0:00Intro
- 2:55SURVEY
- 6:10CARGO CULT
- 6:49MEASURING CORRECTLY IS IMPORTANT
- 9:42WHY DO THIS?
- 11:06WHAT METRICS CAN WE USE?
- 12:14DON'T LOOK AT MEAN
- 14:55MAYBE MEDIAN THEN?
- 15:51PROBABILITY OF EXPERIENCING LATENCY BETTER THAN MEDIAN
- 17:42PROBABILITY OF EXPERIENCING LATENCY BETTER THAN 99TH PERCENTILE OF MICROSERVICES
- 19:38DO NOT AVERAGE PERCENTILES
- 24:26TIMER TIMER NEVER CHANGES...
- 25:11TIMER'S HISTOGRAM RESERVOIR
- 27:02EXPONENTIALLY DECAYING RESERVOIR
- 29:33HDR HISTOGRAM
- 31:41RECORDER
- 33:28RESERVOIR PERFORMANCE - GC
- 40:13COORDINATED OMISSION SOLUTIONS
- 42:17SUMMARY
- 43:44SOURCES, THANK YOUS AND RECOMMENDED FOLLOW-UPS
related talks
43mHow NOT to Measure Latency
36mMetrics - What's your code actually doing?
38mTechniques and Tools for a Coherent Discussion about Performance in Complex...
46mHow to Properly Blame Things for Causing Latency
32mSoftware Performance: A Shape Not a Number
40mPerformance Testing Done Right
37mLies, Damn Lies, and Metrics
49mResponding in a Timely Manner
