We host a monthly Monitoring, Alerting & Uptime meetup for those in the Front Range. Our DevOps evangelist, Jason Hand, does a wonderful job as host and the group continues to grow in membership every month. Earlier this week, we had the first gathering of the year and Jeff Simpson, a senior software engineer at VictorOps, gave a talk about his open source project, Rearview.
Rearview is a passive monitoring tool that measures the effect of an application via queries to a time series database (TSDB), such as Graphite. Jeff started this project when he was working at LivingSocial and is now actively developing the Scala version of it. He created Rearview as an internal tool that talks to a TSDB and then runs Ruby script-fragements against the data from the time period you’ve chosen. Rearview can currently send alerts to an email or to your favorite alerting platform (cough, VictorOps, cough).
Jeff created Rearview due to a need to be able to alert off Graphite data. The initial deployment process involved using ad hoc Ruby scripts, run via cron, was painful to deploy and led to a lot of copied code. With Rearview, there is no need to edit Chef or Nagios to deploy monitors, which makes the entire process much less painful. Rearview handles running a script with a supporting runtime designed to reduce the boiler plate.
Rearview is not the only player in the space. Riemann takes a different approach and can process streams of data directly with no need to poll. Riemann is well documented and is definitely worth a look. Jeff also mentioned Grafana, a newer dashboard that supports Graphite, InfluxDB and OpenTSDB. It’s actively developed and is based on the Kibana framework.
Jeff has a few ideas on the future directions of Rearview, including:
— the ability to handle recovery notifications
— support for InfluxDB (modern, well-supported, scalable)
— support streaming data
— port to Rust, Nim?
— having Docker support to run these scripts?
— a potential name change?
If you want to learn more about Rearview, check out Jeff’s slides (including additional resources) below. And if you want to contribute to the project, you can fork it on GitHub or send ideas for better names to Jeff.