当前位置: 首页 > 科技观察

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

时间:2023-03-15 20:38:50 科技观察

监控是当今生产环境中的一个重要特征。错误和性能问题随时都可能出现——不仅仅是在工作时间——所以好的监控工具需要24/7全天候可用。有许多工具可以从不同的角度解决这个问题,因此确定采用哪个工具并不简单。今天,我带来了7个监控工具及其新的一面,它们都值得考虑作为NewRelic或AppDynamics等工具的替代或补充。这些工具包括开源和SaaS模型的组合,每种模型在测量、可视化或跟踪错误方面都有自己的优势或劣势。SaaS工具1.DatadogDatadog是一款面向DevOps团队的SaaS监控工具,可以从你的app或其他各种工具中获取数据,并提供数据可视化功能。对您的基础设备和软件采集的数据进行统一处理和存储。允许您创建仪表板和搜索对您提供的数据的访问。他们目前提供数据聚合和展示,而不是数据分析。Datadog的优势之一是所有API都是开放的,这允许您灵活地开发自己的指标或集成。DatadogDashboardExample缺点:Datadog目前还没有提供很多统计功能,作为一款监控软件,这些功能可能正是你要找的。他们还需要植入您的代码,这会产生代码依赖性。成本:它有免费版和标准版,每月15美元。标准版的成本会上下波动,具体取决于主机数量。Java支持:根据官方文档,DatadogAPI支持Python、Ruby和C#。然而,因为它的API访问是开放的,Datalog社区已经编写了几个Java端库,包括对StatsD和Codahale测量的支持。其他:由于Datadog具有告警能力,可以监控性能,所以可以作为一个相对便宜的应用程序性能监控器(APM)。有许多集成选项可以让您毫不费力地将它集成到您??的运行时环境中。Datadog是用于收集和可视化测量的强大工具,而不是分析工具,因此如果您需要分析,请查看其他地方。2.RuxitRuxit是Dynatrace开发的一款基于SaaS模式的应用性能监控工具。它通过SaaS提供不同的APM体验,并在高度可扩展的环境中工作。它作为代理安装,不需要你配置环境,它提供了一个类似于NewRelic的易于安装的工具。他们监控用户活动、应用程序性能、服务器和网络活动。Ruxit面板缺点:Ruxit没有提供与其他APM工具一样多的空间深度功能。成本:Ruxit监控应用程序的成本为0.15美元/主机/小时,真实用户监控的成本为每1000名访客0.15美元。Java角度:Ruxit可以在任何具有Java1.5或更高版本的Java服务器上运行。Java是他们的首选语言,因此得到了更好的支持。要点:Ruxit是一个SaaSAPM工具,它很容易安装并集成到您的环境中。该工具为您的环境提供了广泛的范围,并提供了几个不同区域的视图。3.TakipiTakipi告诉您生产环境中的代码何时以及为何终止执行。它检测所有错误并给出错误发生时代码的位置和变量的状态。Takipi作为Java代理程序运行,独立于任何日志文件,可将CPU和IO开销减少不到%3。安装Takipi时,无需更改代码、安装二进制依赖项或设置构建配置。就像集成JIRA和Slack一样,Takipi可以非常简单地插入到工作流中。Takipi错误分析接口的缺点:它是一个只在JVM层工作的工具,所以不支持JVM不支持的语言。目前,它也没有与其他警报工具集成的API。费用:免费套餐;专业级,每月69美元/服务器;企业级。级别的划分基于保存的数据量、分析的错误数量和部署选项。Java支持:Takipi是一个运行在JVM层的工具。它支持无需任何其他环境即可在JVM上运行的任何语言。其他:不同于其他停留在stacktrace层面的工具,Takipi深入到JVM层面,可以根据你的需求向你展示实际运行的代码和变量状态,从而解决每一个错误。通过Takipi,您可以判断新的部署是否终止了正在运行的代码,并通过深入分析应用程序中出现的所有错误来关注问题的症结所在。4.RollbarRollbar专注于错误跟踪和监控。它使用堆栈跟踪来捕获应用程序中发生的错误。这样做的好处是可以支持更多的语言和环境。Rollbar还提供手动向下钻取异常和事件并提供报告的能力。除了提供强大的异常捕获能力外,它还提供了一些告警和分析能力。RollbarDashboard缺点:Rollbar只能捕获“ProgramUncaughtException”。如果您计划捕获程序以捕获异常或其他,则必须手动执行。依靠顶层的未捕获异常处理器,可以忽略框架产生的异常,避免线程死锁。费用:免费版,29美元/月、99美元/月和249美元/月,区别在于跟踪的事件数量和数据保留时间长短。Java支持:Rollbar不提供官方的Java支持库,但社区提供了一些实现,您可以将日志发送到Rollbar。概述:Rollbar是一个基于堆栈的错误跟踪应用程序,兼容大多数开发语言。但缺点是它只捕获未捕获的异常和手动发送的事件。开源(监控工具)#p#5。SensuSensu是一个用于应用程序和系统服务的开源监控框架。它收集和使用来自各种工具的指标,并针对定义的事件提供警报。Sensu在Ruby中实现,使用“检查和处理程序”设置,定期运行检查脚本,查找预定义的条件,并在满足条件时向处理程序报告。处理程序用于发送通知或执行其他操作。Sensu中的警告缺点:与Ruxit不同,Sensu并未真正实现APM工具。它专注于服务器监控。在安装方面,Sensu依赖于RabbitMQ和Redis,以及其他依赖项,这些依赖项可以在指定的存储库中找到。还有关于可扩展性和维护复杂性的担忧。当然,您的需求可能会有所不同。成本:SensuCore的核心版本(其中的开源项目)是免费的,但也提供企业版,提供额外的集成、支持和功能。企业版费用标准:$2/台/月,大规模部署享优惠。Java视角:Sensu的检测和处理器脚本可以用任何开发语言编写,Sensu社区提供了Java支持插件。概述:Sensu是用于云和服务器监控的开源替代框架实现。在可扩展性和复杂性方面仍然存在一些问题,但它仍然是度量参数值收集和服务监控的强大工具。6.ELKstackELKStack,严格来说,并不是什么新产品,只是我们经常忽略它,不把它放在我们的讨论列表中。ELK堆栈是一个流行的工具套件,涵盖监控、日志记录和数据可视化。它由三部分组成:ElasticSearch、Logstash和Kibana。其中,Elasticsearch负责搜索和分析,Logstash是日志聚合器,Kibana提供华丽的可视化仪表盘。我们在Takipi中使用ELKStack有一段时间了,使用java通过日志和Redis提供输入。这适用于开发人员,也适用于BI。如今,Elasticsearch已经完美内置了Logstash,而Kibana也是一个灵活的独立工具。它们易于集成和设置。您可以根据需要灵活使用这三个工具。在实施(推出)新部署时,仪表板将按照您设置的应用程序健康参数阈值指标进行工作。这些指标实时更新,还允许您在上传产品补丁代码时暂时关闭监控。ELKStack的缺点视图:ELKStack具有开源工具的共同缺点(即需要自己承担工具的安装成本和部署问题)。在大规模数据的情况下,需要运行ELKStack的机器数量呈指数增长,这就需要你自己监控和维护这些额外的机器。一种可能的解决方案是使用托管服务(例如Logz.io)来减轻这种监控的压力。成本:ELKStack作为一款开源工具,没有任何价格负担,同时还能提供Elastic的专业服务支持。Java视角:ELKStack转Java设计。事实上,ElasticSearch和Logstash在Java上运行。Elastic要求的最低Java版本为Java7,所有ElasticSearch节点必须具有相同的JVM版本。其他:ELKStack,包括ElasticSearchLogstash、Kibana,是一套开源的工具,提供搜索和分析日志的可视化功能。这套工具集成得很好,所以很容易使用(虽然不是必须的)。7.GraphiteGraphite是一款应用监控指标的可视化工具,包括三个组件(Carbon、Whisper和Graphite-web),其开源特性使其易于定制和改进。如何构建自己的Graphite框架,您可以在这里查看我们的文章。Graphite提供了强大的查询访问API和功能丰富的设置。它不需要设置自己的指标,而是提供Graphite指标协议,这是各种指标收集器选择的事实上的协议格式。所以提供给它的数据根本不是问题。使用Graphite可以为您的应用程序创建各种视图。默认的Graphite仪表板GUI缺点:Graphite存在开源工具的常见困境(即安装开销和部署问题)。此外,Graphite在规模上存在问题,这些问题源于Carbon和Whisper组件的设计决策。这是一个偏好问题,但对默认GUI也没有太大的热情。成本:下载Graphite是免费的,但您需要考虑硬件和运营成本。还有许多Graphite的替代品,例如Grafana和InfluxDB,它们也是免费的。如果您想在不自己部署的情况下使用Graphite,您也可以付费托管它。Java视角:Graphite与语言无关,有许多工具可以从Java应用程序收集指标并将它们发送到Graphite。分钟:Graphite是一种流行的开源软件工具,用于可视化从应用程序收集的指标。它具有开源软件的共同缺点,以及规模的限制。但是,如果您愿意为此付费或对其进行自定义,则可以通过许多不同的方式克服这两个缺点。结论监视工具是当今生产环境的重要组成部分。测量结果的可视化、错误跟踪、性能监控和应用程序分析是洞察应用程序健康状况的基本手段。认识到这种需求很容易,但决定选择哪种监控工具或一组监控工具却极其困难。我上面提到的7个工具:Datalog、Ruxit、Takipi、Rollbar、Sensu、ELKStack和Graphite都值得考虑。这些工具要么是最近创建的,要么是本文未提及的一些大型监控工具的替代品。选择要部署的监控工具需要知道在哪里搜索它们。这里提到的工具是一个很好的起点。