All Posts

Godaemon, a Library to Daemonize Go Apps
August 27, 2013
Baron Schwartz
At SolarWinds® Database Performance Monitor we have a specific need to daemonize one of our Go applications, which must safely run detached from terminals, with a working directory that won’t…
A tutorial on how to use Go’s database/sql package
July 22, 2013
Baron Schwartz
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
July 8, 2013
SolarWinds
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
June 26, 2013
SolarWinds
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
June 25, 2013
Baron Schwartz
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
June 4, 2013
Baron Schwartz
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?
April 17, 2013
Baron Schwartz
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
April 15, 2013
SolarWinds
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
April 10, 2013
Baron Schwartz
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
April 9, 2013
Baron Schwartz
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…
1179180181