Previously, the team checked out NewRelic and all its capabilities. Even though we were impressed with the app monitoring and UI as-is, we missed out on some detailed server resource monitoring. We looked forward to the next player in the app and server monitoring services, AppFirst. At first glance, AppFirst is more simplified and monitors some of the same apps as NewRelic such as Java, PHP, and Ruby. In this post, I will go through the team’s experiences with AppFirst as a monitoring tool.


Like last time, the first thing to do was get the agent. AppFirst calls them “collectors” but they are essentially the same thing as agents. The AppFirst support team reached out to us beforehand to make sure the collectors were configured properly. This was helpful to me because I had not set up the collector to monitor MySQL properly. All in all, installing and configuring the collector was not difficult; later there were some confusing aspects about how servers were organized that I didn’t like.


My first glimpse of the user interface was the Dashboard. Upon initially logging in, the Dashboard was empty. This should imply two things:

  1. There is a lot of customization needed.
  2. This is not for users who want data right away.

This is in contrast to NewRelic which had the graphs specialized for app performance. AppFirst however, makes you choose those settings on your own.

appfirst image 1

The next tab over is the Workbench, which gives in-depth data of things like servers, alert statuses, and a summary table. You can dig deeper into a selected server. In our case, we are monitoring three Magento app servers. You can then check one of those servers and see alerts, running processes, and historical CPU and memory usage.

The Dataflow tab gives us insight into how AppFirst perceives our network. It does so in an interesting way. Just take a look at the screenshot of how the dataflow is represented for our 3-server Magento store.

appfirst image 2

You can hover your mouse over the nodes and get a glimpse of data transfer. I find this presentation awkward, especially when compared to how other app monitoring tools handle this. The Browse tab mostly shows running processes. This is not as useful for us at the moment. The Correlate tab on the other hand, lets you select two of any data types present in AppFirst and compare them. For example:

  • Application
  • Server
  • Polled data
  • Log
  • StatsD

These are the kind of potentially useful features that the Web Performance Lab really look for. A downside about this page is that it doesn’t give you the option to filter out unavailable data. This means you manually have to find usable data; so it’s important to make sure your collectors are getting valid data!
In Logs, you can diagnose problems with the server from the AppFirst web app. You can actually specify monitoring for any plaintext file not just logs. The functionality here is similar to running tail -f on a log file, which is nice to have.


Overall, the monitoring software is satisfying. Most pages give a hyperlink that allows you to share your monitoring data with 3rd party sources. An AppFirst account is required though, which I think defeats the purpose of having a shareable link in the first place. In addition, there are no transaction traces in AppFirst like with NewRelic. The server scope is confusing at times and there are annoying feedback forms that keep popping up. On the other hand, the user interface is straightforward and highly usable. One metric AppFirst has that other monitoring services lack is the server cost over time. With AppFirst, you know if you’re meeting Service Level Agreements to the dollar amount.

We’ve got one more application monitoring service to review. Coincidentally, their name is AppDynamics (App just seems to be a popular prefix). We’ll be checking in with them next time!