In this post i am going to talk about how we started monitoring the performance of our grails application. We have a big release coming up in couple of months and development on the product was going on from last 10 months. In one of our reviews last month we started looking the SQL logs and we wanted to get a deep insight into the performance part. I started looking at few options available for grails performance monitoring and finally decided to go ahead with newrelic. This is how i installed it on our ubuntu server.

  • Signed up for a free account at newrelic.com
  • Login and follow the Get Started docs
  • Revealed my license Key and Downloaded the zip file on my system
  • Moved the zip to our server using SSH. You can use Putty or any other tool for the same
  • Extracted the zip file in $CATALINA_HOME. This was the most important part as i was using tomcat6 and by default $CATALINA_HOME is /usr/share/tomcat6. Use following command
    sudo unzip newrelic_agent3.2.2.zip /usr/share/tomcat6
    
  • Install newrelic by following command.
    sudo /usr/share/tomcat6/newrelic/newrelic.jar install
    
  • Restarted tomcat
    sudo /etc/init.d/tomcat6 restart
    

As soon as tomcat was restarted i logged into my newrelic account from https://rpm.newrelic.com and a new application with the name “My application” was listed there. I played around with my app using browser and i could see activity happening in newrelic dashboard. This is how my dashboard looks :

Dashboard

Dashboard

In case you are on of those who don’t like the default setting. Here are the basic changes that i made in newrelic config. The config file is named as “newrelic.yml” and it can be found inside /usr/share/tomcat6/newrelic

enable_auto_app_naming : Set this to true. It will get the name from your application server and you will be able to monitor multiple applications without making any significant change.

capture_params : Set this to true if you want to capture all HTTP params. You can ignore params using the next property.

ignored_params : For my case i provided a comma separated list of field like password, email, credit_card, cvv etc

record_sql : Set this to “Obfuscated” or “raw” if you want to log sql statements as well.

I was able to find out the problematic areas of our application very quickly using the reports provided by newrelic. I highly recommend newrelic for monitoring web applications. Going forward we will be using it in all of our projects.