The 4 Pillars of Effective Database Observability

SolarWinds just dropped a whitepaper, From Monitoring to Mastery: Optimizing Database Performance…

Latest Posts

A tutorial on how to use Go’s database/sql package

We found ourselves wishing for a tutorial to complement the database/sql documentation in Go, so we wrote one and shared it on Github. Please send pull requests to contribute improvements!

Streaming Approximate Histograms in Go

If you’re looking at response time, what’s more useful: a mean or a percentile? Not sure? You probably know how to calculate the average or mean of a sample, but…

4 Statistical Process Control Rules That Detect Anomalies in Systems

Statistical Process Control (SPC), or using numbers or data to study the characteristics of our process to make it behave the way we want it to behave, has been around…

Quantifying Abnormal Behavior

At Velocity last week, I spoke about how we quantify abnormality in a system’s time-series metrics cheaply, in realtime, at high frequency. Note that this is not the same thing as…

Replacing Clever Code with Unremarkable Code in Go

Not too long ago, my primary programming language was Perl. I’ve written a lot of Perl, including some things that I think are quite clever. And therein lies the problem.…

How Does Adaptive Fault Detection Work? Does It Eliminate Thresholds?

In previous posts, I claimed that thresholds are a root of much evil in monitoring systems (not the root of all evil, but a root of much evil), and that…

Using Socat to Simulate Networking Traffic to Test and Debug

If you don’t know socat, you probably should. From its man: Socat is a command line based utility that establishes two bidirectional byte streams and transfers data between them. Because the…

Two Reasons Why Threshold-Based Monitoring Is Hopelessly Broken

Why is a threshold-based alert such a disaster? There are two big reasons. Thresholds are always wrong. They’re worse than a broken clock, which is at least right twice a…

A Sure-Fire Recipe For Monitoring Disaster

In this post I’ll tell a story that will feel familiar to anyone who’s ever monitored MySQL. Here’s a recipe for a threshold-based alert that will go horribly wrong, beyond…

Why You Should Almost Never Alert On Thresholds

This post is part of an ongoing series on the best practices for effective and insightful database monitoring. Much of what’s covered in these posts is unintuitive, yet vital to understand. Previous…