New Relic 为 Heroku Java 用户提供实时性能监控

  • Charles Humble
  • 郑柯

2011 年 10 月 8 日

话题:Java云计算性能调优DevOps语言 & 开发架构

Heroku声明现在支持 Java 应用,紧随其后的是New Relic,他们声明:运行 Java 应用的 Heroku 客户将可使用他们的服务。这个产品与 Heroku 紧密整合,客户可以用其在 Heroku 控制台中看到 New Relic 的性能数据。该产品提供两个版本,一个是免费的标准版,一个是专业版订阅服务,目前价格为每 dyno 小时 0.06 美分。(dyno 是 Heroku 的一个度量标准,定义为“在 Heroku 平台上运行的、任何类型的单一进程”。)除主动报警和更长的数据保存期之外,专业版还提供一种机制,让开发人员可以深入到事务层面的细节,让他们可以钻到代码层面,诊断问题。比如:开发人员可以看到 SQL 语句,对于超过响应时间阈值的特定用户事务,还可以看到其执行计划。市场总监 John Essex 告诉 InfoQ:

换句话说,使用标准版,你可以看到事务分析,以当前和历史数据图表的形式,针对不同类型的 web 事务展示整体数据(平均响应时间、吞吐量、错误率等等,比如针对‘将商品放入购物车’功能)。但是使用专业版,你可以进一步深入,在代码层面上,钻入到单个客户的交易事务。

Heroku 是在 2007 年后期上线的多语言 PaaS 平台,目前被Salesforce.com收购,它最近对 Java 作为第一级语言予以支持。类似于Google 的 App Engine或 VMware 的Cloud Foundry,Heroku 提供构建、部署和扩展应用的在线服务。它最开始仅仅支持 Ruby,后来扩展到覆盖 node.js、基于 JVM 的 Clojure,现在是 Java。

Heroku 的 Java 服务抛弃了完整的 Java EE 软件栈,使用更简单的基于 servlet 的方式,以 Jetty 作为内置的 Servlet 容器。在发布 beta 版的那篇博客中,Heroku 提出:传统 Java EE 应用服务器提供的很多服务,包括日志、服务绑定和水平扩展,Heroku 平台都已经提供,额外的好处是:这些服务是语言中立的。

不管使用什么语言,部署、日志、扩展相关的技术对于所有应用的部署都适用。使用通用的部署基础设施,对编程语言的选择变为只要考虑语法和库就可以了。降低应用和基础设施之间的耦合,使得人们可以针对不同的工作选择不同的语言。

所有人都在用基于 servlet 的方式,但是目前只是诸多 Java PaaS 服务中的一种。RedHat 的OpenShift是个例外,他们使用自己的 JBoss AS 7 来提供 Java EE 6 支持。

New Relic 的创始人和 CEO Lewis Cirne 告诉我们:New Relic“目前是 Heroku 上使用最广泛的插件。”Essex 补充道:

在我们与 Heroku 合作的这段时间里,通过他们,我们获得了 1 万 5 千个用户注册。Java 这块,我们已经有 30 个用户注册,考虑到我们一周前刚刚发布对 Java 的支持,这还挺不错的!

除 Heroku 的插件外,New Relic 还与其他多个平台有合作关系,包括 Acquia、Amazon、CloudBees、Engine Yard、Joyent 和 Rackspace。他们也提供独立版的产品,可以安装在一个数据中心中,或是通过常规的托管提供商。独立版产品目前支持 Ruby、Java、PHP 和任何.NET 2.0 以及以上兼容版本的开发语言,比如 C#、VB.NET 和 C++/CLI。对 Python 的支持目前正在研发中,beta 版本已经可用。Cirne 告诉我们:

对于这些语言,我们已经开发了一个代理,运行在 web 应用服务器进程之中,并测量进程内关键方法的性能,比如页面呈现实现、数据库占用时间、memcache 调用时间等等。这个代理对资源消耗很低,7x24 方式运行,并将诊断数据报告回 New Relic 的服务。New Relic 的客户可以登录到我们的 SaaS 应用,分析他们应用的性能,识别热点、瓶颈、产品错误和扩展方面的问题。

New Relic 还提供免费的“实时用户监控”,集成在我们的核心产品之中,它使用一个小 JavaScript 库,测量浏览页面呈现时间,并以此测量真实客户的体验。它的运行方式与 Google Analytics 类似,但是重点关注实时性能。作为 New Relic 基本版本和专业版的一部分,它是免费提供的。

除了基本的语言支持之外,产品还包括对多种框架的支持,包括:

  1. Ruby:Rails、Sinatra
  2. Java:Spring、Grails、Struts、Java EE;应用服务器和 Servlet 容器:Tomcat、Jetty、GlassFish、WebLogic、WebSphere
  3. PHP:Drupal、WordPress、CakePHP
  4. .NET:标准的微软.NET 软件栈
  5. Python:Django,Cirne 指出后续会有更多支持

独立版产品提供四个版本,价格从免费到 149 美元每服务器每月,并从 12 个月起订阅。批量购买也有折扣。

查看英文原文:InfoQ: New Relic Offers Real-time Performance Monitoring for Heroku Java users

Java云计算性能调优DevOps语言 & 开发架构