10个最佳工具来监视和调试无服务器应用程序
了解您的函数在做什么,一种更好的监控无服务器应用程序的方法。
有许多复杂的工具来监控传统的application performance,但无服务器仍在兴起。无服务器架构是不同的,因此您需要专为此而设计的工具。这些工具与serverless runtime platform紧密集成,以收集关键数据以获得更好的可见性和调试能力。
它们帮助您更快、更自信地开发应用程序。如果您是无服务器的新手,您可以考虑查看此introduction article或考虑参加一项online course。
准备好探索了吗?
开发工具
SLS-dev-tools(也称为无服务器开发工具)是一个开源项目,其中包含用于无服务器应用程序和平台的开发者工具。它由位于伦敦的软件公司-Theodo开发。他们在无服务器方面的云原生方法提供了更强大的创新能力和速度。
此工具的导航通过箭头键完成,使用Tab键切换到不同的窗格。选择任何Lambda函数,按Enter键以查看函数的详细统计信息。
它们采用按使用付费的模式,因此您在应用程序不运行时无需支付任何费用。
这个工具有一个称为SLS-dev-tools Guardian的高级版本。该工具用于自动化无服务器架构中的最佳审计实践。它有助于在非常早期阶段识别问题,以防止它们发生。
SenseDeep
SenseDeep是AWS最快的无服务器监控平台之一。它可以帮助您实时排除服务问题。
登录后,SenseDeep将自动创建一些日志报告,您可以启动以查看详细信息。您需要将SenseDeep云与AWS帐户连接以查看无服务器函数和日志。您可以使用AWS访问密钥或IAM角色选项与AWS连接。
连接成功后,SenseDeep的自动发现功能将找到要在主屏幕上显示的Lambda函数和日志组。
上面显示的SenseDeep仪表板非常可定制。您可以选择显示哪个小部件,甚至可以调整仪表板中的小部件大小。此仪表板还可以与团队成员共享。
以下是SenseDeep提供的其他功能:
- 创建和显示Lambda函数指标
- 提供每个Lambda函数的详细视图
- 提供具有搜索、查询滚动功能的日志查看器窗口
- 带有常用命令的导航页面
Lumigo
使用Lumigo即可立即监控和排除无服务器应用程序。
通过此平台,您可以追踪应用程序的整个过程。它使用实时监控和分析来理解复杂的系统行为,并帮助您更快地解决问题。
您只需要创建一个帐户、连接您的环境并设置警报。
它能够识别问题的根本原因,并在分布式环境中解决问题。它具有检测应用程序的关键路径和瓶颈的功能,这有助于通过提高效率和减少延迟来优化性能。
它通过向您提供最佳实践来帮助您进行无服务器配置和开发活动。在获得此类帮助后,您可以在进入生产环境之前识别配置错误和问题。
Lumigo提供易于理解的应用程序成本结构,帮助您规划和预测即将发生的费用。
Serverless Framework
Serverless Framework是一个帮助您以最小的开销和成本开发、部署和监控无服务器应用程序的工具。
使用Serverless Framework Pro,您无需花费时间编程来监视您的应用程序。它会完全照顾!
只需转到仪表板查看应用程序的性能、错误详细信息、请求模式等。您可以深入研究日志,以获取有关应用程序的更多详细信息。
提供的警报非常明确,包含解决问题所需的必要详细信息。
此平台上的协作功能真的很棒!您可以与团队成员共享仪表板,以便他们也可以进行有限访问的协作。
Dashbird
Dashbird是AWS Lambda基于应用程序的流行解决方案。它连接到AWS并提供账户、服务和函数级别的指标,优化成本、性能和资源。Dashbird可以检测到特定于Lambda的故障。
例如:
- 超时
- 内存问题
- 配置错误
- 运行时错误
- 异常
故障警报可以通过电子邮件或Slack通知。
Cloudwatch日志支持全文搜索,并且可以进行实时尾部跟踪以进行故障排除。
功能:
- 通过各种指标显示错误,便于故障排除
- 账户范围的系统健康和实时指标
- 为您的业务创建监视 – 微服务监视
- 系统性能指标
- 执行时间线和调用分解
Dashbird与AWS X-Ray集成,为您提供调用洞察。
您可以免费开始使用它。目前,它支持以下语言。
- Java
- Node.js
- Go
- Python
尝试一下看看Dashbird的工作原理。他们有很棒的documentation。
IOpipe
警报、实时指标、错误聚合、性能剖析、跟踪 – 在IOpipe中都可以找到。
了解您的AWS Lambda函数的整体情况,并在出现问题时通过Slack、电子邮件、Webhook和PagerDuty进行通知。指标以高分辨率显示,您可以深入到具体的调用。
IOpipie具有强大的跟踪功能,可以跟踪函数调用并在性能下降时发出警报。这对于发布后的性能相关问题进行故障排除非常有用。让我们看一下其中的一些功能。
- 功能强大的搜索,以更快的速度跟踪数据。
- 每周电子邮件报告有关顶级错误、警报、性能改进等的信息。
- 调用标记
- 使用CPU分析跟踪Node.js中的高CPU利用率问题
IOpipe是用于无服务器应用程序的DevOps工具。您可以尝试他们的免费计划,每月监控100万次函数调用。
Splunk
Splunk可以监控AWS Lambda、Google Cloud Functions和Azure Functions。实时可见性和性能监控。
一些功能包括:
- 低延迟指标
- 实时可见性和聚合
- 内存使用情况和执行时间监控
- 冷启动检测
- 成本优化
Thundra
Thundra可以帮助您跟踪和分析基于AWS Lambda的应用程序,零额外开销。正如您在演示中看到的,以下指标以图形的形式呈现得非常漂亮。
- 调用次数和持续时间
- 冷启动次数和持续时间
- 按函数和类型的错误
Thundra不会对您的函数产生额外开销,因为它异步利用CloudWatch日志来观察您的无服务器应用程序。
一些功能包括:
- 动态工具使您需要添加环境变量而不是更改和重新部署代码。
- 详细和可配置的跟踪
- 数据过滤和高级搜索
- 高级调试
- 对Lambda函数进行配置以查看CPU和内存利用率以及GC计数
Thundra目前仍处于测试阶段,您可以今天就尝试一下。
Amazon CloudWatch
默认情况下,CloudWatch会收集基本的Lambda指标。但是,您可以选择启用自定义指标。没有预付费或承诺,因此您可以免费开始使用,并按使用/走付费。
借助CloudWatch,您可以从一个平台收集所有AWS数据,以便完全了解资源。
Epsagon
Epsagon利用带有人工智能算法的分布式跟踪技术,自动检测公司系统中的完整事务,提供业务流程的性能和成本,并在问题发生之前通知用户。
Epsagon使用自动工具,并且用户无需更改代码。
结论
我希望这给您提供了一些工具的思路,以帮助您监视和调试现代应用程序。其中大多数都有免费计划,所以最好的办法是试着看看哪个对您有效。在实施监控后,不要忘记secure它。