7个监控工具,可防止您下一次生产的世界末日

什么是Java开发人员最有用的监视工具?

监控是当今生产环境中的一项基本功能。 错误和性能问题一直在弹出,而不仅仅是在工作时间内出现,因此良好的监视工具需要24/7全天候处于活动状态。 有很多工具可以从不同角度解决这个问题,因此很难理解要考虑的工具。 7种监控工具

今天,我将介绍7种监视工具,这些工具处于较新的方面,或者值得考虑作为New Relic和AppDynamics等工具的替代或补充。 这些工具包括开放源代码和SaaS模型的混合,并且每种工具都有其自己的专业或精益,无论是指标,可视化还是错误跟踪。

新帖:7种监视工具,可防止您的下一个生产世界末日http://t.co/kcaQgZica4 pic.twitter.com/UxWT2IXDUN

— Takipi(@takipid) 2015年6月29日

SaaS工具

1.数据狗

Datadog是面向DevOps团队的SaaS监视工具,可从您的应用程序和各种其他工具中获取数据,并提供洞察力和可视化效果。 它将从基础架构和软件生成的数据统一到一个位置,从而使您可以构建仪表板或搜索所提供的数据。 目前,它们是围绕汇总和呈现数据而不是自己进行分析而构建的。

Datadog的好处之一是,它们提供了对其API的完全访问权限,这为开发自己的指标或集成提供了灵活性。

示例Datadog仪表板

示例Datadog仪表板

缺点 :Datadog在今天无法提供自己的分析方法,这可能是您在监视工具中可能需要的东西。 它们还要求您将它们编织到代码中,从而创建依赖关系。

成本:他们有一个免费版本,以及一个标准版本,可按每台主机每月15美元的价格浮动。 该比例取决于主机数。

Java角度:正式而言,Datadog API支持Python,Ruby和C#。 但是,由于开放的API访问权限,Datadog社区已经为Java编写了多个库,其中包括StatsD和Codahale指标的库。

总结:凭借其警报功能和性能监控,Datadog可以用作更便宜的APM替代产品。 它们的集成范围有助于将它们轻松插入您的环境。 Datadog是用于收集和可视化指标的可靠工具,但它们不是分析工具,因此,如果需要这些功能,请查看其他地方。

2. Ruxit

由Dynatrace开发的Ruxit是一种应用程序性能监视工具,可在SaaS模型中运行。 它的开发旨在通过SaaS提供不同的APM体验,并可以在大规模环境中工作。 它作为单个代理程序安装,不需要您为其配置环境,与New Relic等类似工具相比,它提供了易于设置的优势。 它们监视用户活动,应用程序性能,服务器和网络活动。

Ruxit仪表板

Ruxit仪表板

缺点: Ruxit不能提供与该空间中其他APM工具一样多的功能深度。

成本: Ruxit的应用程序监视费用为每主机/小时0.15美元/小时,实际用户监视费用为每1000次访问0.15美元/小时。

Java角度: Ruxit可与任何Java服务器和Java 1.5+版本一起使用。 Java是其最早的语言之一,因此它具有一些更好的支持。

总结: Ruxit是一个SaaS APM工具,易于设置并集成到您的环境中。 该工具为您的环境提供了广泛的选择范围,并提供了几个不同区域的视图。

3. 塔基皮

Takipi会告诉您代码何时何地中断生产。 它检测所有类型的错误,并在发生错误时为您提供代码和变量状态。 Takipi作为Java代理运行,并且不依赖于日志文件,这使其可以维持不到3%的CPU和IO开销。 在安装方面,它不需要更改代码,二进制依赖项或构建配置。 通过JIRA和Slack等集成,Takipi可以轻松地滑入现有工作流程。

Takipi中的错误分析视图

Takipi中的错误分析视图

缺点:它仅是JVM级的工具,因此不支持非JVM语言。 如今,它没有与其他警报工具集成的API。

成本:免费层,按比例缩放的专业层(每服务器每月69美元)和企业层。 等级基于数据保留,错误分析编号和部署选项。

Java角度: Takipi是JVM级别的工具。 它适用于任何基于JVM的语言,而无需解决方法。

总结:与其他在堆栈跟踪级别停止的工具不同,Takipi降至JVM级别,为您提供解决每个错误所需的实际代码和变量状态。 使用Takipi ,您可以判断新部署是否破坏了代码,可以深入了解应用程序中发生的所有错误,并可以放大关键问题。

4.滚动条

Rollbar专注于错误跟踪和监视。 他们使用堆栈跟踪来捕获应用程序中的错误。 这样做的好处是可以与多种语言和环境一起使用。 Rollbar还提供手动进入并报告异常和事件的功能。 除了跟踪未捕获的异常外,它们还提供了一些警报和分析功能。

滚动条仪表板

滚动条仪表板

缺点: Rollbar只能捕获未捕获的异常。 如果要捕获捕获的异常或其他任何东西,则必须手动捕获。 通过依赖未捕获的顶级异常处理程序,它可以丢失框架所吞下的异常,以防止线程死亡。

费用:免费版本,每月29美元,每月99美元和每月249美元,具体取决于跟踪的事件数量和数据保留时间。

Java角: Rollbar没有Java的官方库,但是他们的社区已经编写了一些可以将您的日志发送到Rollbar的库。

总结: Rollbar是一个基于堆栈跟踪的错误跟踪应用程序,可以很好地与大多数语言配合使用。 代价是它们只能捕获未捕获的异常和您手动发送的事件。

开源的

5.千寿

Sensu是一个用于应用程序和系统服务的开源监视框架。 它可以收集指标并将其运送到各种工具,并为已定义的事件提供警报。 Sensu用Ruby编写,使用“检查和处理程序”设置,其中运行定期检查脚本以查找预定义的条件,然后将其报告给处理程序(如果存在)。 处理程序用于发送通知或执行其他操作。

Sensu中的警报

Sensu中的警报

缺点: Sensu没有像Ruxit这样的真正APM工具广泛涉猎。 它的重点是服务器监视。 在安装方面,Sensu依赖RabbitMQ和Redis,以及包装在所需存储库中的其他几个依赖项。 扩展功能和维护复杂性存在一些问题,但是您的里程可能会有所不同。

成本: Sensu Core(他们的开源项目)是免费的,但他们还提供Sensu Enterprise,后者增加了其他集成,支持和功能。 Sensu Enterprise的费用为每月每台服务器$ 2,并具有大规模批量折扣。

Java角度: Sensu检查和处理程序脚本可以用任何语言编写,并且Sensu社区已经为Java编写了一些插件

总结: Sensu是用于云和服务器监控的开源框架替代方案。 围绕高规模和复杂性存在一些问题,但这是度量收集和服务监视的强大工具。

6. ELK堆栈

ELK Stack并非完全是新的,但我们会遗漏列出此清单并将其保留。 ELK堆栈由ElasticSearch,Logstash和Kibana组成,是一组流行的开源工具,用于监视,记录和可视化数据。 Elasticsearch负责搜索和分析,Logstash是日志聚合器,Kibana进行精美的仪表板可视化。 我们已经在Takipi上使用了一段时间,通过日志和Redis从Java提供它,并且开发人员和BI都在使用它。 如今,Elasticsearch几乎是Logstash内置的,而Kibana也是Elastic产品,使集成和设置非常简单。 如果愿意,也可以混合使用三种工具。

当新的部署推出时,仪表板会遵循自定义指标,您可以针对这些指标设置应用的运行状况。 这些指标实时更新,可以在新交付的代码上载到生产环境后的第一步时进行密切监视。

ELK堆栈视图

ELK堆栈视图

缺点: ELK Stack面临开源工具的标准缺点(即安装成本和部署问题由您自己承担)。 在更大的规模上,运行ELK Stack所需的计算机数量开始激增,这需要您自己进行维护和监视。 一种可能的解决方案是使用Logz.io之类的托管服务来帮助解决这一压力。

成本:作为开源工具,ELK Stack没有价格障碍,尽管Elastic提供了专业的支持和服务。

Java角度: ELK堆栈是为Java设计的。 实际上,需要Java运行时来运行ElasticSearch和Logstash。 Elastic建议至少具有Java 7,并且所有ElasticSearch节点应在相同的JVM版本上运行。

总结: ELK堆栈(ElasticSearch,Logstash和Kibana的名称)是一组开源工具,可提供搜索和分析,日志记录和可视化功能。 这些工具可以很好地集成在一起,因此使用整套工具很简单(尽管不是必需的)。

7.石墨

Graphite是用于监视应用程序中指标的可视化工具。 它由三个部分(碳,耳语和石墨网)组成,其开源特性使其易于定制和修改。 我们在此处撰写了有关构建自己的Graphite体系结构的文章。

Graphite具有强大的查询API和功能丰富的设置。 它不捕获自己的度量标准,但是对于许多度量标准收集器来说,通常选择Graphite度量标准协议为事实上的格式,因此,向其提供数据很少有问题。 使用Graphite可让您在应用程序中创建各种视图。

默认的Graphite仪表板GUI

默认的Graphite仪表板GUI

缺点: Graphite面临开源工具的标准缺点(即安装成本和部署问题由您自己承担)。 此外,由于石墨为其碳和耳语组件做出的设计决策,石墨可能会在更大范围内遇到问题。 这是一个优先选择的问题,但是很多人也不太喜欢默认的GUI。

成本:免费下载Graphite,但是您需要考虑硬件和相关的成本才能运行它。 Graphite的许多替代组件(例如Grafana和InfluxDB)也是免费的。 如果您想使用Graphite而不需要自己部署它,则还可以提供托管选项,需要付费。

Java角度: Graphite与语言无关,并且有许多工具可以从Java应用程序收集指标并将其发送到Graphite。

总结: Graphite是一种流行的开源工具,用于可视化和查询您从应用程序中收集的指标。 它具有标准的开源缺点,以及在扩展方面的一些限制,但是如果您愿意付费或自定义,则可以通过多种方式克服这两个方面。

结论

监控工具是当今生产环境中必不可少的内容。 可视化指标,跟踪错误,监视性能以及分析应用程序都是获取对应用程序工作情况的洞察力的关键活动。 认识到需求很容易,但是选择要使用的监视工具或工具集可能很困难。

我在这里写的七个工具-Datadog,Ruxit,Takipi,Rollbar,Sensu,ELK Stack和Graphite-值得一试。 它们全都在较新的方面,或者提供了一些较大的工具的有价值的替代品。 选择部署哪种工具的一部分就是知道从哪里开始搜索。 这里的工具是一个很好的起点。

翻译自: https://www.javacodegeeks.com/2015/07/7-monitoring-tools-to-prevent-your-next-production-doomsday.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值