综合监控(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
金丝雀检查终端节点的可用性和延迟,并可以存储加载时间数据和 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 与 AWS X-Ray 结合使用,以提供服务的端到端视图,帮助您更有效地查明性能瓶颈并确定受影响的用户。使用 CloudWatch Synthetics 创建的 Canary 将显示在跟踪地图中。有关更多信息,请参阅 X-Ray 跟踪地图。
CloudWatch Synthetics 目前在所有商业 AWS 区域和 GovCloud 区域可用。
注意
在亚太地区(大阪)不支持 AWS PrivateLink。在亚太地区(雅加达),AWS PrivateLink 和 X-Ray 不受支持。