No one likes waiting, Kyle Kingsbury least of all. As a long-time sysadmin and developer, he was growing weary of the standard monitoring tools when when he began working on Riemann five years ago. Named after German mathematician Georg Friedrich Bernhard Riemann, Kingsbury’s tool pulls streams of monitoring data into a manageable form that can instantly show what’s going on in your network of applications.
The origins of Riemann came from Kingsbury’s need to see the results of an IT change instantly. With existing tools and monitoring software, he said, it can take two to three minutes to see what a change has done to an application cluster. But with Riemann, all that information can be seen instantly.
(Related: Why Riemann may be a big deal)
Kingsbury said he built Riemann because using brittle things like Nagios and shell scripts is time consuming and, in the end, still has a delay between observing and gathering metrics. “I wanted everything: from user metrics to CPU and load distributions,” he said.
“When you’re looking for correlations, you, don’t need six different tools. A lot of people take Riemann and use it as a system-monitoring tool, but I built it for application-level things, so you can ask quesitions like, ‘I’ve got 10 thumbnailers. Which one is hung?’
“I wrote it just for me. I thought anyone else who used it would have to be crazy. I made zero compromises. The design specifically rejects a lot of things that would be important to people because I had a specific need. No instrument can make every sound. The beauty of the tool is how well the design space has been constrained. The thing people like about Riemann is it’s extremely focused in its design. You can’t do historical state; it’s difficult to reason about simultaneity. A lot of people come at it from a traditional monitoring perspective and it doesn’t work. But it excels in the fuzzy, low-latency, high- throughput space. You get most of the answers now in exchange for nothing later.”
Those compromises are indeed quite large for a monitoring tool. While Riemann presents itself as a library and a domain-specific language with handlers for stream processing, it’s atavistically focused on just this use case: seeing what’s happening right now while ignoring the past. As Kingsbury said, there is no support for metric histories in Riemann; that task is left to whatever log aggregation solution you choose, he said.
Thus, Riemann is almost like an odometer or speedometer: It shows you only what’s happening right now. Paul Kim, software engineer at Apigee, said that Riemann is “written in Clojure and runs on the JVM.” He is currently evaluating Riemann for use at Apigee.