Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News New Relic Offers Real-time Performance Monitoring for Heroku Java users

New Relic Offers Real-time Performance Monitoring for Heroku Java users

This item in japanese

Following Heroku's announcement that it is now supporting applications running in Java, New Relic is making its service available to Heroku customers running Java applications. The product is tightly integrated with Heroku, allowing customers to see their New Relic performance data from within the Heroku console. It is offered in two versions, a free standard version, and a professional subscription version that costs $0.06 per dyno hour. (A dyno is a Heroku metric defined as being a "single process of any type running on the Heroku platform".) As well as pro-active alerts and longer data retention, the professional edition provides a mechanism for developers to get additional in-depth transaction visibility, that allows them to drill down to the code level for problem diagnosis. For example, a developer could see SQL statements and explain plans for specific end-user transactions that exceed a response-time threshold. Marketing Director John Essex told InfoQ

Put another way, with Standard you can get transaction analysis in the form of current and historical graphs and charts with summary data for each type of web transaction (average response time, throughput, error rate, etc. for 'place item in cart' for example). But with Pro you can go even further and drill down into individual customer transactions at the code level.

Heroku – the multi-language PaaS launched in late 2007 and now owned by – recently added support for Java as a first class language. Akin to Google's App Engine, or VMware's Cloud Foundry, Heroku is an online service for building, deploying and scaling applications. It originally supported only Ruby, but has since expanded to cover node.js, the JVM-based Clojure, and now Java.

Heroku's Java offering discards the full Java EE stack for a simple servlet-based approach, using Jetty as the embedded Servlet Container. In a company blog post announcing the beta, the firm argues that many of the services provided by traditional Java EE application servers, such as logging, service binding and horizontal scaling are offered by the Heroku platform, with the added advantage that these services are language neutral

Techniques for deployment, logging, and scaling are applicable to all app deployments, regardless of language. A common deployment infrastructure reduces language choice to just a question of syntax and libraries. Reduced coupling between app and infrastructure enables picking the right language for each job.

The servlet-based approach is used by all but one of the Java PaaS offerings available to date. The exception is Red Hat's OpenShift, which uses their JBoss AS 7 to offer Java EE 6 support.

New Relic Founder and CEO Lewis Cirne told us that New Relic is "by far the most popular plugin available on Heroku". Essex added

Throughout the life of our partnership with Heroku we've had 15,000 sign-ups through them. For Java we've had about 30 sign-ups, and that's not bad at all considering that we just announced our support for Java on Heroku a week ago!

As well as the Heroku add-on, New Relic have partnered with a number of other Platform as a Service companies including Acquia, Amazon, CloudBees, Engine Yard, Joyent and Rackspace. They also offer a stand-alone version of the product that can be installed in a data centre or through a conventional hosting provider.The stand-alone product currently supports Ruby, Java, PHP and any .NET 2.0 and above compliant language such as C#, VB.NET and C++/CLI. Python support is also in the works, with a beta version available. Cirne told us

For each of these languages, we have written an agent that runs inside the web application server process and measures the performance of key methods inside that process, such as page rendering time, time spent in the database, time spent calling memcache, etc. The agent runs at very low overhead 24x7 and reports diagnostic data back to the New Relic service. New Relic customers can log in to our SaaS application to analyze the performance of their application, identify hotspots, bottlenecks, production errors and scaling issues.

New Relic also offers free Real User Monitoring - integrated right within our core product - that measures the real customer experience by measuring browser page rendering time with a small JavaScript library. It works kind of like Google Analytics, but it focuses on real time performance. And it's free as a part of New Relic Basic or Pro.

Over and above the basic language support, the product includes specific support for various frameworks, including:

  1. Ruby: Rails, Sinatra.
  2. Java: Spring, Grails, Struts, Java EE. App Servers/Servlet Containers: Tomcat, Jetty, GlassFish, WebLogic, WebSphere
  3. PHP: Drupal, WordPress, CakePHP
  4. .NET. Standard Microsoft .NET stack
  5. Python: Django, with more to come according to Cirne

The stand-alone product is offered in four versions, with prices from free to $149/server/month based on a 12 month subscription. Volume discounts are also offered.

Rate this Article