综合监控(Canary) - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

综合监控(Canary)

您可以使用 Amazon CloudWatch Synthetics 创建金丝雀。金丝雀是按计划运行的可配置脚本,用于监控端点和 API。金丝雀遵循相同的路线并执行与客户相同的操作,这使您能够持续验证您的客户体验,即使您的应用程序中没有任何客户流量也可以。使用金丝雀,您可以早于客户先行发现问题。

金丝雀是用 Node.js 或 Python 编写的脚本。它们以 Node.js 或 Python 为框架在您的账户中创建 Lambda 函数。金丝雀通过 HTTP 和 HTTPS 两种协议工作。金丝雀使用包含 CloudWatch Synthetics 库的 Lambda 层。该库包含 CloudWatch Synthetics for NodeJS 金丝雀的 NodeJS 版本和CloudWatch Synthetics for Python 金丝雀的 Python 版本。这些层属于 CloudWatch Synthetics 服务账户。库永远不会传输或存储客户信息。所有客户数据都仅存储在客户账户中。

金丝雀通过 Puppeteer 或 Selenium Webdriver 提供对无头 Google Chrome 浏览器的编程访问。有关 Puppeteer 的更多信息,请参阅 Puppeteer。有关 Selenium 的更多信息,请参阅 www.selenium.dev/

金丝雀检查终端节点的可用性和延迟,并可以存储加载时间数据和 UI 屏幕截图。它们可以监控您的 REST API、URL 和网站内容,并且可以检查来自网络钓鱼、代码注入和跨站脚本的未经授权更改。

CloudWatch Synthetics 与 Application Signals 集成,可以发现和监控您的应用程序服务、客户端、Synthetics Canary 和服务依赖项。使用 Application Signals 查看您的服务列表或可视地图,根据您的服务级别目标(SLO)查看运行状况指标,并深入查看关联 X-Ray 跟踪以便更详细地进行问题排查。要在 Application Signals 中查看您的 Canary,打开 X-Ray 活动跟踪。您的 Canary 显示在连接到您的服务的服务地图,以及所调用服务的服务详细信息页面上。

您可以运行一次金丝雀,也可以定期运行。金丝雀的运行频率可达每分钟一次。您可以使用 cron 和 rate 表达式来计划金丝雀。

有关在创建和运行金丝雀之前需要考虑的安全问题相关信息,请参阅 Synthetics 金丝雀的安全注意事项

预设情况下,金丝雀会在 CloudWatchSynthetics 命名空间中创建几个 CloudWatch 指标。这些指标使用 CanaryName 作为维度。使用函数库中 executeStep()executeHttpStep() 函数的金丝雀还具有 StepName 维度。有关金丝雀函数库的更多信息,请参阅可用于金丝雀脚本的库函数

CloudWatch Synthetics 与 X-Ray 跟踪地图集成良好,其将 CloudWatch 与 Amazon X-Ray 结合使用,以提供服务的端到端视图,帮助您更有效地查明性能瓶颈并确定受影响的用户。使用 CloudWatch Synthetics 创建的 Canary 将显示在跟踪地图中。有关更多信息,请参阅 X-Ray 跟踪地图

CloudWatch Synthetics 目前在所有商业 Amazon 区域和 GovCloud 区域可用。

注意

在亚太地区(大阪)不支持 Amazon PrivateLink。在亚太地区(雅加达),Amazon PrivateLink 和 X-Ray 不受支持。