随着Java生态系统的不断发展,可满足不断增长的请求和用户对高性能需求的Web应用程序成为了新型的现代开发工具。 具有快速新部署的快速节奏环境需要跟踪错误并获得应用程序行为的洞察力,而传统方法无法维持这种水平。 在这篇文章中,我们决定收集其中的5种工具,看看它们如何与Java集成,并找出它们掌握了哪些技巧。 现在该粉碎一些错误了 。
射线枪
Mindscape的Raygun是基于Web的错误管理系统,可跟踪来自您应用程序的异常。 它支持各种桌面,移动和Web编程语言,包括Java,Scala,.NET,Python,PHP和JavaScript。 除此之外,还可以通过REST API向Raygun发送错误,并且由于开发人员社区的参与,更多的提供程序(它们称为语言和框架集成)得以实现。
主要特点:
- 错误分组–每次出现的错误都在一个组中呈现,可以访问该错误的单个实例,包括其堆栈跟踪。
- 全文搜索–可搜索错误组和所有收集的数据。
- 查看应用程序活动–对错误组的每项操作都会显示给您的所有团队,以供查看:状态更新,评论等。
- 受影响的用户–每个错误都会显示受影响的用户数。
- 外部集成– Github,Bitbucket,Asana,JIRA,HipChat等。
Java角度:要将Raygun与Java结合使用,如果您使用Maven或手动添加jar,则需要向pom.xml文件中添加一些依赖项。 第二步是添加一个UncaughtExceptionHandler,它将创建RaygunClient实例并将异常发送给它。 此外,您还可以将自定义数据字段添加到异常中,并将它们一起发送给Raygun。 完整的演练可在此处获得 。
幕后 花絮 :认识Raygun认证的操作员Robie Robot 。 就像实际的射线枪一样。
在以下位置查看: https : //raygun.io
哨兵
Sentry从一个附带项目开始,是一个基于开源 Web的解决方案,可作为实时事件记录和聚合平台。 它监视错误并显示错误发生的时间,地点和对象,并承诺不会完全依靠用户反馈来做到这一点。 支持的语言和框架包括Ruby,Python,JS,Java,Django,iOS,.NET等。
主要特点:
- 实时查看新部署的影响
- 为因错误而中断的特定用户提供支持
- 检测并阻止欺诈行为–通知有关购买,身份验证和其他敏感区域的异常失败数量
- 外部集成– GitHub,HipChat,Heroku等
Java角度: Sentry的Java客户端称为Raven,它支持现有的主要日志记录框架,例如java.util.logging,Log4j,Log4j2和带有Slf4j的Logback。 还提供了将事件直接发送到Sentry的独立方法。 例如,要使用Logback设置Sentry for Java,您需要手动或通过Maven添加依赖项,然后添加新的Sentry附加程序配置,您就可以做到。 此处提供说明。
幕后花絮: Sentry是2010年在Disqus上的内部项目,用于解决Chris Jennings和David Cramer在Django应用程序上记录异常的问题
在以下位置查看: https : //www.getsentry.com/
塔基皮
与大多数其他工具不同,Takipi远不只是堆栈跟踪修饰符。 它的构建考虑了一个简单的目标:告诉开发人员确切的时间和原因破坏生产代码。 每当引发新异常或发生日志错误时,Takipi都会捕获该异常,并在方法和机器之间向您显示导致该异常的变量状态。 Takipi会将其覆盖在错误发生时执行的实际代码上,因此您可以分析异常,就像发生异常时一样。
主要特点:
- 检测-捕获/未捕获的异常,Http和记录的错误。
- 优先排序–错误在群集中发生的频率,是否涉及新代码或修改后的代码以及错误率是否在不断提高。
- 分析–即使在不同的机器和应用程序之间,也可以查看实际的代码和变量状态。
- 易于安装–无需更改代码或配置。
- 开销不到2%。
Java角度: Takipi是为Java和Scala中的生产环境而构建的。 安装过程不到1分钟,包括将Java代理附加到JVM。
在幕后:每种异常类型和错误都有一个代表它的独特怪兽。 你可以在这里找到这些怪物。
在以下位置查看: http : //www.takipi.com/
气刹
Rackspace的Airbrake是另一个使异常跟踪更为醒目的工具,其使命是“不再搜索日志文件”。 它为用户提供了基于Web的界面,其中包括带有错误详细信息的仪表板和特定于应用程序的视图。 支持的语言包括Ruby,PHP,Java,.NET,Python甚至是Swift。
主要特点:
- 详细的堆栈跟踪,按错误类型,用户和环境变量分组
- 团队生产力–从噪音中滤除重要度错误
- 团队协作–查看谁造成了错误并由谁修复
- 外部集成– HipChat,GitHub,JIRA,Pivotal和其他30多个
Java角度:虽然还提供了Logback库,但Airbrake官方仅支持Log4j。 当前缺少Log4j2支持。 安装过程类似于Sentry,手动或通过Maven添加一些依赖项,添加附加程序,您就可以开始了。 同样,AirbrakeNotice和AirbrakeNotifier也提供了直接向Airbrake发送消息的方法。 更多详细信息在这里 。
幕后花絮: Airbrake被Exceptional收购,然后被Rackspace 收购 。
在以下位置查看: https : //airbrake.io/
StackHunter
Stack Hunter当前处于测试版,提供了一个自托管工具来跟踪您的Java异常。 与过去托管工具相比,情况发生了变化。 除此之外,它的目的是提供类似的功能集,以告知开发人员其异常并帮助更快地解决它们。
主要特点:
- 一个自托管的Web界面,可查看所有异常
- 堆栈跟踪数据和上下文的收集,包括关键指标,例如总异常,唯一异常,受影响的用户和受影响的会话
- 发生异常时的即时电子邮件警报
- 按根本原因对异常进行分组
Java角度: StackHunter专为Java构建,可在任何运行Java 6或更高版本的servlet容器上运行。 安装包括在本地Servlet上运行StackHunter,配置用于警报的传出邮件服务器以及配置希望记录的应用程序。 完整说明可在此处获得 。
幕后花絮: StackHunter由Dele Taylor开发,他还致力于Data Pipeline –一种用于在Java中转换和迁移数据的工具。
在以下位置查看它: http : //stackhunter.com/
奖励:ABRT
值得一提的另一种错误跟踪方法是ABRT,它是来自Fedora生态系统的自动错误检测和报告工具,它是Red Hat赞助的社区项目。 与我们在此介绍的5种工具不同,该工具不仅旨在供应用程序开发人员使用,而且还应供其用户使用。 将错误报告给具有更丰富上下文的Red Hat,否则将很难理解和调试。
Java角度:对Java异常的支持仍处于概念验证阶段。 由JakubFilák开发的Java连接器可在此处获得 。
幕后花絮: ABRT是Red Hat开发的一个开源项目。
在以下位置查看: https : //github.com/abrt/abrt
我们还错过任何其他工具吗? 您如何跟踪例外情况? 请在下面的评论部分中告诉我
翻译自: https://www.javacodegeeks.com/2014/09/5-error-tracking-tools-java-developers-should-know.html