15个适用于您的业务的最佳API监控工具
如果在当今竞争激烈的商业环境中,有一件事情是企业不能承受的,那就是次优的系统性能。
更糟糕的是,一个或多个子系统出现故障,技术团队并不知情。在银行、股票交易等重要行业中,停机时间可能每分钟造成数百万美元甚至更高的损失,而在其他行业中,可能会导致致命的客户反弹。现在已经到了一个地步,即在客户发现错误之前,你要先了解错误才是明智之举,而不仅仅是明智;它是强制性的。
到处都是APIs
这是一个由APIs主导的世界,你可能每天都听到并使用这个术语。如果你是任何类型的服务提供商,你拥有其他人依赖的APIs,你也使用APIs来保持业务运行(例如Google Maps API,SERP APIs,等)。但这只是冰山一角。对于计算机编程世界的人来说,应用程序编程接口(API)是一个广泛的术语,涵盖的范围不仅仅是地图和购买。
在你意识不到的情况下,软件系统中的一切(是的,几乎一切)都是API或者公开API。
在我们开始监控APIs之前,让我们花点时间了解一下API是什么,以及它覆盖了我们软件系统的哪些范围。这将帮助你减少选择,并更好地决定你想要覆盖哪些APIs,因此,哪些工具将更适合你独特的用例。
什么是API?
我们先从标准的教科书定义开始,然后再使用日常商业词汇深入探讨。如果我们询问维基百科关于API的定义,它会这样说:
在计算机编程中,应用程序编程接口(API)是一组子程序定义、通信协议和构建软件的工具。一般来说,它是一组在各个组件之间进行明确定义的通信方法。一个好的API通过提供所有构建块,使得开发计算机程序更容易,然后由程序员将这些构建块组合在一起。
一个API可以是基于Web的系统、操作系统、数据库系统、计算机硬件或软件库。
第二行是关键(重点在于我)。不仅仅是网络服务被视为APIs。操作系统调用、数据库系统交互、硬件信号、软件库(其他代码可以重用的代码)都属于API的范畴,因为它们都提供了明确定义的、被充分理解的接口和协议。
现在,在任何给定的日子里,这些API中的任何一个都可能停止工作。也许硬盘达到了每秒的输入/输出操作限制,或者SSL certificate expired,或者最新版本的代码中存在一个未被发现的错误-所有这些情况都需要持续监控,并在问题发生时(最好是之前)立即采取行动。
恰当地说,本文将介绍可以监控应用程序在所有领域中的工具,而不仅仅是两个系统之间的数据交换。
API停机的代价
很难量化停机造成的损失,但Gartner发布了一份报告,将停机的损失定为每小时30万美元。当然,这只是一个适度的平均值。想象一下在黑色星期五打折季期间停机一小时造成的业务损失。有关API故障或无法正常工作如何破坏业务或员工士气的更多可怕故事,请参阅here和here。
虽然API停机时间对业务影响重大,但长期来看,团队士气的损失可能更大。开发人员喜欢自动化和系统的可靠性(实际上,我们所有人都喜欢;想象一下你的邮件服务器每天多次崩溃!),停机时间会破坏他们的代码并使他们感到沮丧。如果这些问题持续存在,它们很快将开始影响其他业务功能(销售和市场营销),他们将厌倦在客户面前不断丢脸。
我亲眼目睹两家企业因为内部监控系统不佳而濒临死亡,我不忍再见到这种情况发生。😐
现在,无法消除停机时间;在现实世界中,任何事情都可能在任何时候出错。但是通过建立适当的监控系统,我们可以在错误发生时了解到,并且有时甚至比客户更早!
有了这个想法,让我们来看看市场上一些最好的API监控工具。
Uptrends
一种适用于各种API监控(记住我们之前广义定义的API)的完整解决方案,Uptrends提供网站、API、服务器等的监控。它以2.5万个快乐的客户为基础,其中包括Vimeo、Microsoft、大众等知名客户。
Uptrends的一个独特功能是基于浏览器的测试。该服务启动实际的不同浏览器来运行您的应用程序/网站,并提供详细的性能指标。
但是,响应时间和指标只是冰山一角。Uptrends还为您提供了详细的资产性能报告,因此您可以准确知道导致瓶颈的原因在哪里。当遇到错误时,该服务会截取屏幕截图并发送给您,这样您就可以准确了解对方的感受。🙂
总而言之,Uptrends是一个可靠而令人愉悦的服务,得到了许多知名公司的信任。
Dotcom-Monitor
Dotcom-Monitor平台允许您使用HTTP/S任务配置多任务监视设备。通过复制一个或多个终端客户端请求并监视SOAP Web服务,Dotcom-Monitor代理验证API与Web应用程序之间可以正确交换数据。
当代理检测到错误时,它会将其与设备的过滤器进行比较。如果错误未被过滤掉,设备将触发警报。您可以配置多个警报组,并设置自定义的警报计划和升级选项。报告可以以CSV、PDF和TXT格式提供。它们显示多个有用的指标,如响应时间、停机时间和按位置的平均性能。
Dotcom-Monitor的定价计划从每月1.99美元起,提供对HTTP/S、Web API SOAP/REST、SSL证书检查、响应验证、即时警报和30个监测位置等功能的Web服务监控支持。
Checkly
Checkly声称是一种先进的监控和测试解决方案,特别受到JavaScript社区的关注,其客户包括Vercel和Humio。您可以监控Web API,以及在真实浏览器中的站点事务和流程。单个仪表板可随时显示您对应用程序的正确性和性能的所有了解。
我真的很喜欢Checkly将轻松设置和易用性与强大的工具相结合,以自定义您的检查。它使用全面可配置的HTTP检查来监控API,而不仅仅是简单的ping。这还包括安装/拆卸脚本,在需要签署请求或清理测试数据时非常方便。
另一个引人注目的是强大的REST API,它可以让您编排和自动化您的检查,例如使用Terraform。它还使用户能够与Opsgenie、Pagerduty或Slack结合设置细粒度的警报。总的来说,这是我认为对现代DevOps团队最有趣的一个很棒的解决方案。
Checkly为开发人员提供了一个免费计划,包括1分钟的检查间隔和全球数据中心位置。
Better Uptime
Better Uptime是一个现代的监控服务,将API、ping和可用性监控、事故管理和状态页面结合为一个设计精美的产品。
设置只需3分钟。之后,每当您的API终点不正确工作时,您将收到电话、电子邮件或Slack警报。其主要特点包括:
- API、Ping、HTTP(s)、SSL和TLD到期、Cron作业检查
- 无限电话呼叫警报
- 轻松的值班计划
- 事故的截图和错误日志
- Slack、Teams、Heroku、AWS和其他100多个集成
Sematext
Sematext现在在DevOps团队中相当出名,因为它们的监控工具套件旨在确保对应用程序和网站的端到端可见性。API监控是其合成监控服务的一部分,Sematext Synthetics。
Sematext提供了一个先进的API monitoring通知系统,您可以根据错误和指标自定义其在多个不同条件下的工作。这样,您可以设置工具在发送警报之前进行两次或三次检查。您基本上通过这个过程消除了误报,并获得了更准确的警报,并避免了警报疲劳。
此外,除了您在一个良好的合成监控和测试工具中期望的简单而强大的HTTP监视器之外,Sematext还通过其全面的浏览器监视器脱颖而出。该工具使您能够基于scripted user interactions对您的站点收集Web性能指标并持续测试关键用户进程。
这意味着您可以测试超出页面加载时间的内容,深入了解并查看有关网站的详细模拟用户交互,例如登录和注册、添加到购物车以及在网站上运行搜索查询等。一些常见的用户交互已经提供了现成的解决方案。
Amazon CloudWatch
如果您在AWS上有基础架构,则强烈推荐使用CloudWatch。除了应用程序监控,CloudWatch还具有基础架构监控,帮助您的DevOps团队在夜间安心入眠。
根据官方描述,CloudWatch提供以下功能:
- 应用程序监控
- 全系统可见性
- 资源优化
- 统一操作健康状况
因此,只要您有一个仅限于AWS的部署,CloudWatch将能够监控您的应用程序的可用性、性能、资源使用情况、网络带宽、磁盘/CPU使用情况等,为各种监控提供了一个强大的解决方案。
也许CloudWatch最重要的优势是您几乎不需要设置任何东西。AWS服务会生成相关日志并直接与CloudWatch共享,这些日志会出现在一个整洁且易于理解的仪表板上。
从仪表板上,您不仅可以阅读指标(免费计划提供最多一分钟的准确度,付费计划可以提供最接近一秒的准确度,实际上允许您实时监控),还可以创建自定义规则,设置告警以及何时触发它们,以尽可能详细的方式扫描系统日志,等等。
当然,并不是每个人都使用AWS,但大多数关键和知名的数字业务都在使用,这就是我认为应该在这个列表中介绍CloudWatch的原因。在这一点上,我可能会开始听起来像一个打破的喇叭,但老实说,如果你使用AWS,没有比CloudWatch更简单的设置监控的方式了。
想要了解AWS CloudWatch,请从expert here学习。
至于定价,亚马逊也保持了简单。没有每月或年度锁定。你决定你的需求有多大,你只需根据你的使用量支付费用。
但最重要的是,看看免费套餐的优惠,并告诉我不可能选择这项服务。🙂
Rigor
如果你以性能指标为生,并将客户体验置于首位,Rigor值得一看。这个名字选择得很好,因为你可以根据自己的意愿对工具进行严格的测试。🙂
Rigor最有用的功能之一是功能测试。如果你对测试术语不熟悉,不用担心;功能测试是指测试整个事务流程,而不仅仅是关注单个终点。
在某种程度上,功能测试比单元测试更重要,因为它隐含地涵盖了单元测试并直接提供客户体验预测。
如上图所示,这个功能测试有一系列的七条规则构成一笔交易。
规则 #1是对API中特定艺术家进行搜索的请求;然后,规则 #2是一个断言,表示我们希望强制执行我们搜索到的艺术家是可用的;如果这两个测试通过,系统将继续执行规则 #3,以此类推。
在上面的示例中,功能测试在规则 #7 处中断,相关方立即收到通知,告知“Funky Kingston”专辑的副本不足。说到专注于企业而不担心技术细节!
Rigor是一个严肃的服务,适用于愿意为惊人的东西付费的严肃的企业,所以如果你是其中之一,一定要试试。
Assertible
Assertible自称为最简单的API监控工具,主要面向测试和QA团队。所以如果你认为自己没有内部技术能力来处理JSON、XML和编写代码,那么Assertible值得一看。
Assertible的独特卖点是简单而易用:您的QA和测试团队可以使用Assertible界面创建测试并验证/监控它们。它与GitHub完美集成,因此您的知识库始终与您同在,并与Slack无缝配合使用。
完整的循环集成和审查功能允许您团队中的任何人(甚至是project managers)创建测试并审查性能指标。
好吧,上面的截图中的情况可能看起来有点不切实际(一分钟问题解决),但当反馈清晰和及时时,这是可能的。不需要编写代码意味着测试可以像QA团队输入的速度一样快速创建,并且一旦完成,可以一次又一次地应用。这与大多数公司遵循的“手动测试”做法形成鲜明对比,在这种做法中,一个测试人员可能需要花费几天的时间来覆盖应用程序,然而由于疏忽或过度劳累而遗漏更多细节。
Assertible的价格只需每月100美元(顺便说一句,这是他们的最高plan),您就可以监控多达50个网络服务、总共50,000个测试和20个团队成员。考虑到需要全职QA来创建和手动运行测试的成本,很明显Assertible提供了指数级的效率。
BlazeMeter
谈到应用程序的端到端测试和监控,BlazeMeter是吃掉其他所有东西的庞然大物。但与此同时,它不适合胆小或寻找简单的API监控解决方案的人,这种解决方案不要求太多。
BlazeMeter是你一结婚就会得到的东西,然后它会在应用程序的整个生命周期中持续产生回报。
BlazeMeter最大的优点是与Apache JMeter的集成,这可以说是大型Web应用程序的默认性能测量工具。是的,使用BlazeMeter,您可以自由选择开源测试框架,并通过简单的仪表板轻松分析它们。
计划价格昂贵,如果您的应用程序最多可以同时使用5,000个用户,那么使用BlazeMeter将需要每月支付649美元。针对更大工作量的固定成本计划也是可用的,这是BlazeMeter的常规,因为它的客户有:辉瑞、Adobe、GAP、NFL、Atlassian等。
这并不意味着BlazeMeter不能以更简单的方式使用。与大多数其他API监控工具一样,它确实提供功能测试(他们称之为“场景”),可以使用直观的GUI前端完成。
也就是说,BlazeMeter是为开发人员构建的。通过其专用测试工具Taurus,BlazeMeter公开了一个可以用于编写通用测试用例的DSL(特定领域语言),这些测试用例可以针对JMeter、Selenium和其他流行的开源工具运行。不要让DSL的提及让您担心;它只不过是一个华丽的YAML(.yml扩展名)文件:
execution: - concurrency: 100 ramp-up: 1m hold-for: 1m30s scenario: simple scenarios: simple: think-time: 0.75 requests: - http://blazedemo.com/
花点时间了解Taurus,您的开发人员将对能够编写复杂、可重用的测试表示感谢!
总而言之,BlazeMeter是重量级选手的选择。
AppDynamics
现在是思科的一部分,AppDynamics已经在Web应用程序监控领域活动了很长时间,非常有名。目前,AppDynamics是解决现代SaaS团队广泛需求的一套工具。
就纯API/微服务监控而言,该套件提供了Microservice IQ。通过该服务,您可以监控和分析几乎任何规模的微服务集群,并保留历史记录,让您可以将其与集群中的更改相关联。无论如何,这至少允许您模拟向集群添加/删除节点的影响。
对于实时指标的监控也是如此,可以在集群级别或节点级别进行,根据需要呈现整体情况和极端细节。
如屏幕截图所示,Docker监控已经内置在其中,这将受到基于Docker运行基础架构的团队的欢迎(几乎是每个人)。
此外,还提供了云监控和DevOps监控,可在Amazon AWS、Azure、Pivotal等各种IaaS提供商中使用。可以在整个交付流程中提供持续反馈,为您的DevOps团队提供信心和坚实的基础。
最重要的是,将机器学习集成到系统的核心。例如,有时候您不知道应用程序的理想基线是什么,但由于业务运行顺利,您可以接受当前的指标作为基线。
那么,如何计算基线呢?当您每小时有数千个数据点流入时,这很困难,但如果有一个强大的机器学习系统运行,那就不会了。
这如何帮助企业?下面是一个例子。如果你知道你的正常运行时间的基准是98.5%,而你当前的运行时间是98.6%,那么你就可以真正放心了。此外,拥有真实、硬性的基准可以避免过度工程和昂贵的迁移,一些顾问可能会推荐“六个九”(99.9999%的正常运行时间)。
机器学习系统还足够智能,可以在代码内部找出并报告一组微服务中的单个故障原因(这是最令人印象深刻的部分!),因此您的团队清楚地知道要修复什么。下面的截图显示了该系统如何深入到基于Java Spring的REST服务并指向失败的Bean。
这里不可能涵盖所有令人惊叹的功能,所以请随意查看official docs。
New Relic
根据许多人的说法,New Relic是应用程序性能监控工具市场的领导者,原因很简单。它被大大小小的公司使用,从财富500强巨头到小而灵活的初创公司,提供了精准和详细的组合。
New Relic团队以其对DevOps的深刻理解而自豪,因此这个产品旨在提供对基础设施的完整、实时的视图。
New Relic最大的卖点是整个系统直观的布局,可以立即看到一切的流动情况以及任何瓶颈所在。很难用言语来描述用户界面的布局,所以这里有一张截图:
正如您所见,很容易在系统之间的数据流动以及相应的性能指标上进行可视化追踪。缓慢和停机会触发即时警报,使他们能够在业务受到损害之前解决问题。
New Relic不仅覆盖了DevOps方面,还可以为客户体验设置目标和规则,并获得详细报告,以确定需要更多工作的地方。任何值得一提的数字营销人员都知道,这些信息非常宝贵。
New Relic的仪表板设计别具一格。例如,看看这个仪表板,它将整个应用集群按节点进行了映射,并提供了每个节点上发生的实时反馈。
因此,无论您的应用程序是简单还是复杂,New Relic都可以提供许多有趣的见解。
API Fortress
接下来是API Fortress,它旨在成为组织中各个团队的API监控瑞士军刀,并且做得非常好。
针对测试人员和开发人员,API Fortress允许创建像其他现代API监控工具一样的可视化协作测试,然后在方便性和功能方面进一步进行改进。我最喜欢的两个功能是负载测试和模拟。
对于开发人员,API Fortress可以根据给定的API规范创建一个测试套件。因此,如果您遵循Swagger、OpenAPI或RAML,一半的工作已经完成。API模拟允许您的开发团队将新API的接口定义为模拟服务,QA团队可以立即开始构建测试套件。不再需要等待实际API完成,然后QA才能开始测试了。
API Fortress还可以与所有主要的CI/CD系统配合使用,减轻了集成的一个痛点。最后,API Fortress还内置了坚固的负载测试和监控功能,使其成为开发和测试团队快速测试和监控API的完整解决方案。
API Science
使用API Science,您可以使用API测试您的API。虽然听起来像是说相同的事情的一种花哨的方式,但API Science确实具有一些新颖的功能,可能会吸引很多人。第一个是对API堆栈进行全栈监控,这意味着也覆盖了外部API。
很多时候,您的API效能和响应速度都很好,但您业务所依赖的API却宕机了。此外,在某些情况下,并没有任何客观的依据来证明哪个API在何时宕机,这可能会成为两个API提供商之间的一种冷战。