Monitoring ColdFusion Servers
December 23, 2008
Proper monitoring of you ColdFusion servers is important, sure you can use the monitor in ColdFusion Enterprise but this is next to useless when ColdFusion grinds to a halt.
FusionReactor is a web based server monitor specifically for ColdFusion. I installed it on a server to help diagnose an performance issue that we had. I blogged about this a while back, but now that the server is healthy I thought I'd mention what else FusionReactor can do.
When I say that it is a server monitor don't think that it just sits on your server and then sends you an email when the ColdFusion dies, it is much more sophisticated than that! Like ColdFusion's own Server Monitor, FusionReactor allows you to see the health of your server in real-time. However, unlike the server monitoring bundled with ColdFusion it runs as a seperate instance so it won't die when your ColdFusion server does! I can't stress how important that is. It even has it's own webserver so it doesn't have to really on your web server.
I'm running the v3.0.1. of the standard edition of FusionReactor (which starts from $299), which offers real time monitoring of:
- Requests per sec
- JDBC requests (calls to your database)
- Memory usage (this is the allocated memory for ColdFusion rather than global server memory - big difference!)
- Average Request Time
- Average JDBC Time
- System CPU
Whilst these graphs all look nice and offer a lot of valuable information they aren't what I find the most useful. This is where the other reports come into play.
The Requests section allows you to view current requests to your server and also a history of those requests. The amount of information that you get per request is really rather impressive. For any given request I can see information such as the URL and any parameters passed in the query string (great if your using a front controller framerwork!), time taken to execute, http status code, memory usage, request & response headers, cookies and even SQL statement.
What is really useful for tracking down slow scripts are the Longest Requests and Slow Requests. As you can probably guess these reports show potential bottlenecks in your applications. You can sort by any of the columns (I tend to sort by the execution time) and then drill down to view the details of each request. The same level of detail that I mentioned before is available here and really helps you track down any issues.
There is also a report on the Longest JDBC requests. This does require you to configure datasources that you wish to monitor so that they are routed via a FusionReactor wrapper for the database driver. Whilst I haven't noticed any overhead you may want to be wary of this on sites that make heavily use of the database. The payoff for the potential downside of performance is the metrics you get. The SQL statement, execution time, recordcount and crucially, the ColdFusion template are all shown. If you are using cfqueryparam (and you should be), then the values passed are shown in the SQL statement rather than a question mark. Databases are often a bottleneck of web applications and FusionReactor has really helped me tune some queries. It's surprising what a queries a search engine can execute (think keyword searches etc) that you wouldn't normally be aware of.
Setting up all your datasources to use the wrapper can be a labouroous process, but one of the FusionReactor team has created a JDBC Wrapper Tool to do it for you. I haven't used it myself and I believe it is still in beta it is worth a look if you have multiple datasources to update.
The above is pretty much what I use FusionReactor for on a day-to-day basis but it still has plenty of other features. I'm not going to go into them in any detail here as you can read about them on the FusionReactor website. In summary they are a powerful crash protection system (which thankfully I haven't had to make use of yet!), URL exclusion, custom filters, reporting options, the ability to disable FusionReactor and notification options.
So there you go, hopefully I've persuaded you to have a serious look at how your should monitor your servers (and no, checking that a ping request responds isn't good enough!)
More can be found about FusionReactor on their website at http://www.fusion-reactor.com/fr/
- Posted in:
- ColdFusion
- Reviews
No comments
Leave a comment
If you found this post useful, interesting or just plain wrong, let me know - I like feedback :)




