

# 综合监控（Canary）
<a name="CloudWatch_Synthetics_Canaries"></a>

您可以使用 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 运行时的金丝雀，可通过 Playwright、Puppeteer 或 Selenium Webdriver 提供对无外设浏览器的程序化访问能力。支持多种浏览器，包括无外设 Google Chrome 和 Mozilla Firefox。有关 Playwright 的更多信息，请参阅 [Playwright](https://playwright.dev/)。有关 Puppeteer 的更多信息，请参阅 [Puppeteer](https://developer.chrome.com/docs/puppeteer/)。有关 Selenium 的更多信息，请参阅 [Selenium](https://www.selenium.dev/)。Selenium 上的金丝雀仅支持 Chrome 浏览器。使用 Java 的金丝雀旨在灵活地监控任意类型的服务或应用程序，不包含浏览器支持或框架。

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

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



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

有关在创建和运行金丝雀之前需要考虑的安全问题相关信息，请参阅 [Synthetics 金丝雀的安全注意事项](servicelens_canaries_security.md)。

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

CloudWatch Synthetics 与 X-Ray 跟踪地图集成良好，其将 CloudWatch 与 Amazon X-Ray 结合使用，以提供服务的端到端视图，帮助您更有效地查明性能瓶颈并确定受影响的用户。使用 CloudWatch Synthetics 创建的 Canary 将显示在跟踪地图中。有关更多信息，请参阅 [X-Ray 跟踪地图](https://docs.amazonaws.cn/xray/latest/devguide/xray-console-servicemap.html)。

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

**注意**  
在亚太地区（大阪）不支持 Amazon PrivateLink。在亚太地区（雅加达），Amazon PrivateLink 和 X-Ray 不受支持。

**Topics**
+ [CloudWatch 金丝雀的必需角色和权限](CloudWatch_Synthetics_Canaries_Roles.md)
+ [创建金丝雀](CloudWatch_Synthetics_Canaries_Create.md)
+ [组](CloudWatch_Synthetics_Groups.md)
+ [在本地测试 Canary](CloudWatch_Synthetics_Debug_Locally.md)
+ [排查失败金丝雀的问题](CloudWatch_Synthetics_Canaries_Troubleshoot.md)
+ [金丝雀脚本示例代码](CloudWatch_Synthetics_Canaries_Samples.md)
+ [金丝雀和 X-Ray 跟踪](CloudWatch_Synthetics_Canaries_tracing.md)
+ [在 VPC 上运行金丝雀](CloudWatch_Synthetics_Canaries_VPC.md)
+ [加密金丝雀构件](CloudWatch_Synthetics_artifact_encryption.md)
+ [查看金丝雀统计数据和详细信息](CloudWatch_Synthetics_Canaries_Details.md)
+ [金丝雀发布的 CloudWatch 指标](CloudWatch_Synthetics_Canaries_metrics.md)
+ [编辑或删除金丝雀脚本](synthetics_canaries_deletion.md)
+ [启动、停止、删除或更新多个金丝雀脚本的运行时](synthetics_canaries_multi-action.md)
+ [使用 Amazon EventBridge 监控金丝雀事件](monitoring-events-eventbridge.md)
+ [执行安全金丝雀更新](performing-safe-canary-upgrades.md)