Application Signals - Amazon CloudWatch

Application Signals

CloudWatch Application Signals 可帮助您在 AWS 上监控并优化应用程序性能。该服务会自动从运行在 Amazon EC2、Amazon ECS 和 Lambda 等服务上的应用程序中收集数据。CloudWatch Application Signals 可用于以下场景:

  • 实时监控应用程序运行状况

  • 跟踪业务目标达成情况下的性能表现

  • 查看服务与依赖关系之间的关联关系

  • 快速识别并解决性能问题

  • 启用 Application Signals 以自动从您的应用程序收集指标和跟踪,并显示关键指标,例如调用量、可用性、延迟、故障和错误。无需编写自定义代码或创建控制面板,即可快速查看当前的运行状况并对其进行分类,以及您的应用程序是否实现了其长期性能目标。

  • 使用 Application Signals 创建并监控服务级别目标(SLO)。轻松创建并跟踪与 CloudWatch 指标相关的 SLO 的状态,包括 Application Signals 收集的新标准应用程序指标。在服务列表和拓扑图中查看并跟踪应用程序服务的服务级别指标(SLI)状态。创建警报以跟踪您的 SLO,并跟踪 Application Signals 收集的新标准应用程序指标。

  • 查看 Application Signals 自动发现的应用程序拓扑图,该图可以直观地呈现您的应用程序、依赖项及其连接。

  • Application Signals 可与 CloudWatch RUMCloudWatch Synthetics 金丝雀AWS Service Catalog AppRegistry 和 Amazon EC2 Auto Scaling 结合使用,在控制面板和地图中显示您的客户端页面、Synthetics 金丝雀和应用程序名称。

支持的语言和架构

Application Signals 支持 Java、Python、Node.js 和 .NET 应用程序。

Application Signals 在 Amazon EKS、Amazon ECS 和 Amazon EC2 上受到支持并经过测试。在 Amazon EKS 集群上,Application Signals 会自动发现您的服务和集群的名称。在其他架构上,当您为 Application Signals 启用这些服务时,必须提供服务和环境的名称。

在 Amazon EC2 上启用 Application Signals 的指令应适用于任何支持 CloudWatch 代理和 AWS Distro for OpenTelemetry 的架构。但是,除了 Amazon ECS 和 Amazon EC2 之外,这些指令尚未在其他架构上进行过测试。

支持的区域

除了加拿大西部(卡尔加里)以外的所有商业区域都支持 Application Signals。

功能

  • 将 Application Signals 用于日常应用程序监控 – 在 CloudWatch 控制台中使用 Application Signals,将其作为日常应用程序监控的一部分:

    1. 如果您已经为服务创建了服务级别目标(SLO),请从服务级别目标(SLO)页面开始。这让您可以即时查看最关键的服务、操作和依赖项的运行状况。选择 SLO 的服务、操作或依赖项名称,打开服务详细信息页面,在排查问题时查看详细的服务信息。

    2. 打开服务页面以查看所有服务的摘要,并快速查看故障率或延迟最高的服务。如果您创建了 SLO,请查看“服务”表格以了解哪些服务具有运行不正常的服务级别指标(SLI)。如果特定服务处于不正常状态,请选择该服务以打开服务详细信息页面,查看服务操作、依赖项、Synthetics Canary 和客户端请求。在图表中选择一个点以查看相关轨迹,以进行问题排查并确定操作问题的根本原因。

    3. 如果已部署新服务或依赖关系已更改,可打开应用程序图检视应用程序的拓扑结构。查看您的应用程序地图,其中显示了客户端、Synthetics Canary、服务和依赖项之间的关系。快速查看 SLI 运行状况,查看调用量、故障率和延迟等关键指标,并深入查看服务详细信息页面中的更多详细信息。

    使用 Application Signals 会产生费用。有关 CloudWatch 定价的信息,请参阅 Amazon CloudWatch 定价

    注意

    无需启用 Application Signals 即可使用 CloudWatch Synthetics 或 CloudWatch RUM。但是,当您将这些功能一起使用时,Synthetics 和 CloudWatch RUM 与 Application Signals 结合使用可以带来优势。

  • Application Signals 跨账户 – 借助 Application Signals 跨账户可观测性,您可以在一个区域内跨多个 AWS 账户监控应用程序并排查问题。

    您可以使用 Amazon CloudWatch Observability Access Manager 将一个或多个 AWS 账户设置为监控账户。通过在监控账户中创建接收器,监控账户将能够查看源账户中的数据。您可以使用接收器来创建从源账户指向监控账户的链接。有关更多信息,请参阅 CloudWatch 跨账户可观测性

    为使 Application Signals 跨账户可观测性正常运行,请务必通过 CloudWatch Observability Access Manager 共享以下遥测类型。

    • Application Signals 服务和服务级别目标(SLO)

    • Amazon CloudWatch 中的指标

    • 在 Amazon CloudWatch Logs 中记录组

    • AWS X-Ray 中的跟踪记录

  • 动态服务分组与筛选 – 使用 Application Signals 的动态分组功能对服务进行分组与筛选。系统会自动聚合分组内各服务的指标与 SLI,您可从分组视图切入,深入排查特定的问题区域。Application Signals 提供两种默认分组方式:一是按服务运行环境划分的“环境”分组,二是依据服务间依赖关系分组的“关联服务”分组。例如:在关联服务分组中,若服务 A 调用服务 B、服务 B 再调用服务 C,则三者会归入服务 A 的分组。除默认分组外,您还可选取符合组织需求的服务来创建自定义分组,如按业务单元或团队划分。

    通过与团队架构、业务领域或运维要求相匹配的 AWS 标签或 OpenTelemetry 属性,创建自定义分组。自定义分组功能,支持您依据特有的监控与故障排查流程来组织服务。有关更多信息,请参阅 配置自定义组

    按关联服务分组的 CloudWatch 应用程序图。
    含筛选功能的 CloudWatch 服务列表页。
  • 变更事件 – 借助 Application Signals 对 CloudTrail 事件的自动处理能力,全面跟踪应用程序中的变更事件。监控服务及其依赖项的配置和部署事件,为操作分析和问题排查提供即时背景信息。变更事件检测功能会随服务发现功能一同启用,可通过 CloudWatch 控制台或 StartDiscovery API 完成启用操作。针对 Amazon EKS 服务,其部署事件检测需通过 Application Signals 埋点 SDK 为 Amazon EKS 服务进行埋点。

    变更事件功能支持以下资源类型:

    • 自动扩缩组

    • EKS 集群

    • EKS 工作负载(仅支持部署类)

    • ECS 集群与服务

    • ELB 负载均衡器及目标组

    • Lambda 函数

    • BedrockAgentCore 运行时环境与运行时端点

    带部署筛选功能且分组抽屉栏含变更事件的 CloudWatch 应用程序图。
    含变更事件表格的 CloudWatch 应用程序总览页。
  • 审计调查发现自动生成 – 通过 Application Signals 的审计调查发现自动生成功能,挖掘关键见解。该服务会对应用程序展开分析,反馈重要观测结果并识别潜在问题,大幅简化根本原因分析流程。这些自动化分析结果会整合相关跟踪数据,无需多次单击跳转即可查看。审计系统可帮助团队快速定位问题及其深层诱因,实现更快速解决问题。

    Application Signals 采用高级分析技术检测规律、识别资源利用低效问题并给出优化建议。分析结果会根据严重程度和潜在业务影响划分优先级,助力团队优先处理最关键的问题。无需人工分析,即可获取提升服务可靠性及性能的可落地建议。

    含审计调查发现的 CloudWatch 服务概览。