For as long as I’ve been paid to know stuff about computers, I’ve been a fan of Zabbix (http://www.zabbix.com). It’s been my go-to monitoring application because it’s incredibly powerful, tune-able and isn’t hard to get up and running (especially considering the power and tune-ability).
However, recently I’ve been presented with a new product that is making me re-think my stance that there is one best monitoring application in modern IT. I was introduced to New Relic (http://www.newrelic.com). Normally this ‘cloudy’, ‘monitoring-as-a-service’ application wouldn’t get my attention. But I was made to use recently at a customer site and I have to admit that it has some really good points.
Big Bang For Your Network Traffic
New Relic condenses down the data into a JSON object that you POST into their API. So if you have 1000 characters in your JSON post and you send the data once per minute, you have 1000 bytes of data uploaded per minute per server for your monitoring solution. 1K per minute isn’t too bad for 1 minute granularity with your monitoring application.
For comparison, a Linux Zabbix agent monitoring 40-50 items with various frequency averages 2-3Kbps of data per second to its server.
Simple to Configure
You can monitor anything you like, with a caveat. As long as you can gather the data as an numeric value (integer/float), then you can upload it to their API and track it over time. The server plugin is a little thin (I’d imagine because it has to work with any OS), so I wrote my own RHEL-centric plugin (end of personal plug).
Presentation is Key
The New Relic UI is really gorgeous. It’s also intuitive and pretty powerful. You can customize dashboards for your plugin to present data in ways that make sense to you and your purpose. All very web 2.0.
It’s Free, as in food.
You can register for a New Relic account at their free level and get a pretty usable monitoring platform. Of course $$ unlocks cooler features.
It’s Not ALL Cupcakes and Sunshine
New Relic is what I call a ‘track and graph’ monitoring application. Simply, you can track data and graph it to analyze and look for performance trends. With their application-level analytics they can do all sorts of neat stuff. I’ve seen some Java thread analysis that would knock your socks off. But from a DevOps perspective, New Relic can be likened to a lightweight 1-minute granularity replacement for ‘sar’ data and all of those scripts we’ve all written over the years to track stuff.
The alerting is somewhat limited as well. You can set threshold alerts, but that’s about all. There’s no staggered alerts and as far as I know, there’s not the ability to script alerts from within New Relic either.
New Relic is not a replacement for a monitoring solution that is as robust as something like Zabbix. It’s not designed to be, and it doesn’t try to be. From a DevOps perspective (and that’s not even really its best use case), it can be a great way to get useful data on your systems quickly and with very little overhead. On top of that, a box only needs to be able to use New Relic is outbound web access to their API or to an HTTP/HTTPS web proxy.