综合监控(Canary)
您可以使用 Amazon CloudWatch Synthetics 创建金丝雀。金丝雀是按计划运行的可配置脚本,用于监控端点和 API。金丝雀遵循相同的路线并执行与客户相同的操作,这使您能够持续验证您的客户体验,即使您的应用程序中没有任何客户流量也可以。使用金丝雀,您可以早于客户先行发现问题。
金丝雀是指用 Node.js、Python 或 Java 编写的脚本,会在账户中创建以 Node.js、Python 或 Java 作为运行时的 Lambda 函数。金丝雀通过 HTTP 和 HTTPS 两种协议工作。金丝雀使用包含 CloudWatch Synthetics 库的 Lambda 层。该库提供适用于 NodeJS、Python 和 Java 的 CloudWatch Synthetics 实现。
使用 Node.js 和 Python 运行时的金丝雀可通过 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 与 Amazon X-Ray 结合使用,以提供服务的端到端视图,帮助您更有效地查明性能瓶颈并确定受影响的用户。使用 CloudWatch Synthetics 创建的 Canary 将显示在跟踪地图中。有关更多信息,请参阅 X-Ray 跟踪地图。
CloudWatch Synthetics 目前在所有商业 Amazon 区域和 GovCloud 区域可用。
注意
在亚太地区(大阪)不支持 Amazon PrivateLink。在亚太地区(雅加达),Amazon PrivateLink 和 X-Ray 不受支持。