亚马逊AWS官方博客
适用于 AWS Lambda 的 CloudWatch Application Signals 现已正式可用
2023 年 11 月,我们推出了 AWS 内置的应用程序性能监控 (APM) 解决方案 Amazon CloudWatch Application Signals,旨在简化与监控 Amazon EKS、Amazon ECS 和 Amazon EC2 上托管应用程序的分布式系统性能相关的复杂性问题。Application Signals 可自动关联指标、跟踪和日志中的遥测数据,以加快故障排查并减少应用程序中断。通过提供在应用程序背景下分析性能的集成体验,Application Signals 将重点放在支持最关键业务功能的应用程序上,从而提高工作效率。
现在,我们宣布推出适用于 AWS Lambda 的 Application Signals,旨在消除评估 Lambda 函数的应用程序运行状况所需的手动设置和性能问题的复杂性。借助适用于 Lambda 的 CloudWatch Application Signals,您现在可以收集应用程序黄金指标(传入和传出请求量、延迟、故障和错误)。
AWS Lambda 消除了底层基础设施的复杂性,使您能够专注于构建应用程序,而无需监控服务器运行状况。您就可以专注于监控应用程序的性能和运行状况,而这正是以最佳性能和可用性运行应用程序所必需的。这就要求我们深入理解关键业务操作和应用程序编程接口 (API) 的性能表现,比如事务量、延迟高峰、可用性降低和错误情况。
在此之前,您需要花费大量时间关联多个工具中的分散日志、指标和跟踪信息,以便找出异常的根本原因,这不仅增加了平均恢复时间 (MTTR),也提高了运营成本。此外,自行构建 APM 解决方案,无论是通过编写自定义代码还是使用开源 (OSS) 库进行手动检测,都非常耗时、复杂、运营成本高昂,并且在管理大型 Lambda 函数时,通常会导致冷启动时间延长和部署上的挑战。现在,您可以使用 Application Signals 对无服务器应用程序的运行状况和性能问题进行无缝监控和故障排除,而无需应用程序开发人员进行任何手动检测或代码更改。
运作方式
通过使用 Application Signals 提供的预构建标准化控制面板,您只需点击几下,就能快速深入了解关键业务操作和 API 的性能指标,进而找出性能问题的根源。这有助于显示应用程序的拓扑结构,清晰展示函数及其依赖项之间的交互关系。此外,您还可以在应用程序上定义服务级别目标 (SLO),以监控对您最重要的特定操作。举例来说,SLO 可以是设定一个目标,即在 28 天滚动间隔时间内,99.9% 的情况下网页应在 2000 ms 内呈现。
Application Signals 使用增强的适用于 OpenTelemetry 的 AWS Distro (ADOT) 库自动检测 Lambda 函数。这样做可以提升性能表现,例如减少冷启动延迟、
降低内存消耗和缩短函数调用时间,从而实现对应用程序的快速监控。
我手头有一个名为 appsignals1
的 Lambda 函数,我计划在 Lambda 控制台配置 Application Signals,以便收集该应用程序的各种遥测数据。
在该函数的配置选项卡中,我选择监控和操作工具,以便启用 Application Signals 和 Lambda 服务跟踪功能。
我有一个名为 myAppSignalsApp
的应用程序,该应用程序将此 Lambda 函数作为资源附加了进去。我已经为应用程序定义 SLO,用于监控最重要的特定操作。我设定了一个目标,要求应用程序在滚动的 1 天时间窗口内,99.9% 的执行时间控制在 10 毫秒以内。
调用该函数后,Application Signals 可能需要 5-10 分钟才能发现该函数。因此,您需要刷新服务页面,然后才能看到该服务。
现在,我进入了服务页面,可以看到 Application Signals 发现的所有 Lambda 函数的列表。任何发出的遥测数据都会显示在这里。
然后,我可以从服务地图直观查看完整的应用程序拓扑结构,并利用新收集的请求量、延迟、故障和错误等指标,迅速发现服务操作和依赖项中的异常情况。要排除故障,我可以随时点击任何应用程序指标图表,查看与该指标相关的跟踪和日志,从而迅速判断影响最终用户的问题是否只限于单个任务或部署。
现已推出
适用于 Lambda 的 Amazon CloudWatch Application Signals 现已正式可用,您可以立即在所有提供 Lambda 和 Application Signals 的 AWS 区域使用。如今,Application Signals 可用于使用 Python 和 Node.js 托管运行时的 Lambda 函数。在不久的将来,我们将继续增加对其他 Lambda 运行时的支持。
要了解更多信息,请查阅 AWS Lambda 开发人员指南和 Application Signals 开发人员指南。您可以将问题提交给 AWS re:Post for Amazon CloudWatch,也可以通过 AWS Support 联系人提交。
– Veliswa。
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。