But not really.
Let's talk about what kind of metrics we think are important or impact user happiness, and dive into the changes in thinking around monitoring and what that means in 2020.
• Testing in production doesn’t mean not testing at all. • Monitoring isn’t just about if things are up • Testing in prod means verifying that things are working the way we intended • Continually testing our application in prod is how we determine if our customers are happy
mangle in a small data set with large outliers • Important information can easily be obfuscated in a big enough data set • They can cause false positives/negatives which will probably wake you up at 2am (at some things)
negatives • In many cases the 90th percentile is treated as though most of our users have been affected by performance degradation • What does the 90th percentile tell us?
baselining • A standard deviation represents 33% of the bell curve • 2x standard deviation can be seen as erroneous • e.g. you can raise an alert if response times are in the 2x standard deviation or the slowest 16.5% • One problem. • Most real-world scenarios are not bell- curved. Michael Kopp - https://www.dynatrace.com/news/blog/why-averages-suck-and-percentiles-are-great/
You can now turn any metric into a distribution • APM Metrics are all available in percentiles • You can calculate percentiles using histogram quantiles • histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le)) // gets a p95 • Automatically does metric aggregation • Use “agg” object when getting a metric to get the percentile breakdown
on Error Rates • Tie your alerting in with your SLOs and detection time of errors will go down If my Error SLO is 99.9%, alerting on a 0.01% breach means I am finding an error within 10 minutes of deploying a change SRE Workbook - https://landing.google.com/sre/workbook/chapters/alerting-on-slos/
benefit most from looking at load averages like CPU, memory, disk, etc. • Percentiles are good sometimes too. • Percentiles give us an easy way of understanding how our applications are being used