增强的 Amazon CloudWatch 指标用于 Amazon EventBridge 计算博客
优化的 Amazon CloudWatch 指标用于 Amazon EventBridge
关键要点
Amazon EventBridge 新增了多项指标,旨在改善用户对于事件监控和可视性的体验。新指标涵盖 API 操作、事件流以及调用等方面,使用户能更全面地跟踪事件的流转和处理情况。通过这些指标,用户能够提前识别和解决潜在问题,优化应用性能和可扩展性。客户们正在使用 事件驱动架构 来协调和自动化其事件流,从生产者到消费者之间。 Amazon EventBridge 作为一种无服务器的事件路由器,基于事件规则将事件发送至各种目标。它有效地解耦了生产者和消费者,使客户能够构建异步架构。
EventBridge 提供了 指标,帮助用户监控事件流,包括:获取的合作伙伴事件数量、永久失败的调用次数、响应事件的规则调用目标的次数,以及与任何规则匹配的事件数量。
应客户需求,EventBridge 添加了额外的指标,帮助用户更好地监控其事件并提供额外的可见性。这篇博客将详细解读这些新功能。
新增特点
EventBridge 新增的指标主要围绕 API、事件及调用指标。这些指标为您提供有关发布事件数量、成功发布事件、失败事件、与任何或特定规则匹配的事件数量、因限制而被拒绝的事件、延迟以及调用的相关指标信息。
这使您能够跟踪 EventBridge 内整个事件流动过程,并在问题出现时迅速识别并解决。
EventBridge 现在提供以下指标:
指标名描述维度与单位PutEventsLatency每次 PutEvents API 操作所需的时间无 单位:毫秒PutEventsRequestSizePutEvents API 请求的大小字节无 单位:字节MatchedEvents与任何规则或特定规则匹配的事件数量无、RuleName、EventBusName、EventSourceName 单位:计数ThrottledRules规则执行被限制的次数无、RuleName 单位:计数PutEventsApproximateCallCountPutEvents API 调用的大致总数无 单位:计数PutEventsApproximateThrottledCountPutEvents API 调用中被限制请求的大致数量无 单位:计数PutEventsApproximateFailedCountPutEvents API 调用中失败的数量无 单位:计数PutEventsApproximateSuccessCountPutEvents API 调用中成功的数量无 单位:计数PutEventsEntriesCountPutEvents 请求中包含的事件条目数量无 单位:计数PutEventsFailedEntriesCountPutEvents 请求中未能被接收的事件条目数量无 单位:计数PutPartnerEventsApproximateCallCountPutPartnerEvents API 调用的大致总数在合作伙伴账户中可见无 单位:计数PutPartnerEventsApproximateThrottledCountPutPartnerEvents API 调用中被限制请求的大致数量在合作伙伴账户中可见无 单位:计数PutPartnerEventsApproximateFailedCountPutPartnerEvents API 调用中失败的数量在合作伙伴账户中可见无 单位:计数PutPartnerEventsApproximateSuccessCountPutPartnerEvents API 调用中成功的数量在合作伙伴账户中可见无 单位:计数PutPartnerEventsEntriesCountPutPartnerEvents 请求中包含的事件条目数量无 单位:计数PutPartnerEventsFailedEntriesCountPutPartnerEvents 请求中未能被接收的事件条目数量无 单位:计数PutPartnerEventsLatency每次 PutPartnerEvents API 操作所需的时间在合作伙伴账户中可见无 单位:毫秒InvocationsCreated根据事件由规则调用目标的次数。每次调用尝试代表此指标的一个计数无 单位:计数InvocationAttemptsEventBridge 尝试调用目标的次数无 单位:计数SuccessfulInvocationAttempts成功调用目标的次数无 单位:计数RetryInvocationAttempts对目标调用的重试次数无 单位:计数IngestiontoInvocationStartLatency从 EventBridge 接收事件到首次调用目标的处理时间无、RuleName、EventBusName 单位:毫秒IngestiontoInvocationCompleteLatency从事件接收至首次成功调用尝试完成所需时间无、RuleName、EventBusName 单位:毫秒这些指标的使用场景
这些新指标帮助您改善事件驱动应用程序的可观察性和监控。您可以主动监控有助于理解事件流、调用、延迟和服务利用率的指标。此外,您还可以设置特定指标的警报并采取必要措施,从而帮助提高应用性能、积极管理配额以及增强弹性。
基于服务配额监控服务使用情况
事件系列中的 PutEventsApproximateCallCount 指标帮助您识别通过 PutEvents API 操作发布的事件大致数量。 PutEventsApproximateSuccessfulCount 指标显示在事件总线发布的成功事件的大致数量。
同样,您也可以通过 PutEventsApproximateThrottledCount 和 PutEventsApproximateFailedCount 分别监控限制和失败事件的数量。这些指标允许您监控是否接近您的 PutEvents 配额。您可以使用 CloudWatch 警报 并设置门限接近您的账号配额。如果触发了该警报,可以通过 Amazon SNS 向您的运维团队发送通知,他们可以努力提高 服务配额。
您还可以针对 每秒交易的 PutEvents 限制 服务配额设定警报。
转到 服务配额控制台。在左侧面板中,选择 AWS 服务 ,搜索 EventBridge,并选择 Amazon EventBridge (CloudWatch Events)。在 监控 部分,您可以监控每秒交易的 PutEvents 限制的百分比利用率。
转到 警报 选项卡,选择 创建警报。在 警报阈值 中,从下拉列表中选择 80 的应用配额值。将 警报名称 设置为 PutEventsThrottleAlarm,选择 创建。
为了在超过此阈值时收到通知,导航至 Amazon CloudWatch 警报控制台,选择 PutEventsThrottleAlarm。
从右上角的 操作 下拉菜单中选择 编辑。在指定指标和条件页面,确保阈值类型选择为 静态,并选择 利用率 为 大于/等于 80。选择 下一步。
配置操作以将通知发送给 Amazon SNS 主题,并选择 下一步。
警报名称应已设置为 PutEventsThrottleAlarm。选择 下一步,然后选择 更新警报。
这有助于在每秒交易的 PutEvents 限制的利用率接近设定的阈值时获得通知。如果需要,您可以请求增加服务配额。
同样,您也可以在与服务配额进行比较的情况下创建 CloudWatch 警报,以监控 每秒交易的调用限制利用率。
加强可观察性
PutEventsLatency 指标显示每次 PutEvents API 操作所需的时间。此外,新增的两个指标 IngestiontoInvocationStartLatency 和 IngestiontoInvocationCompleteLatency。第一个指标显示从事件被 EventBridge 接收至目标首次调用的处理时间,第二个指标显示从事件接收至首次成功调用尝试完成所需的时间。
虎跃加速器这有助于识别在事件接收至到达目标之间基于 RuleName 的延迟相关问题。如果存在高延迟,这两个指标能够为您提供可见性,以便采取适当措施。
您可以围绕这些指标设置阈值,如果阈值被触发,定义的操作有助于恢复潜在的故障。这里定义的一个操作是通过 EventBridge 全球终端节点 将后续生成的事件发送至次要区域的 EventBridge。
有时,指定规则中的目标可能无法接收到事件。这可能是因为目标资源不可用、没有权限调用目标,或存在网络问题。在这种情况下,EventBridge 会在 24 小时内或最多尝试 185 次重发这些事件,这两个参数都是可配置的。

新增的 RetryInvocationAttempts 指标显示 EventBridge 重试调用目标的次数。重试发生在请求受到限制、目标服务可用性问题、网络问题以及服务故障等情况下。这为客户提供了额外的可观察性,并可以用于触发 CloudWatch 警报,在达到设定阈值时通知相关团队。如果重试次数用尽,则可以将失败的事件保存到 Amazon SQS 死信队列以便后续处理。
此外,EventBridge 还支持 MatchedEvents 指标的附加维度,如 DetailType、Source 和 RuleName。这有助于您监控来自不同源的匹配事件数量。
访问 Amazon CloudWatch。在左侧面板中选择 指标 ,然后选择 所有指标。在 浏览 部分,选择 事件 ,并选择 源。在 图形化指标 标签下,您可以监控来自不同源的匹配事件。向次要区域转移事件
PutEventsFailedEntriesCount 指标显示未能接收的事件数量。监控此指标并设置 CloudWatch 警报。如果超过定义的阈值,则可以采取相应的措施。
同样,设置警报以监控 PutEventsApproximateThrottledCount 指标,该指标显示因限制约束而被拒绝的事件数量。对于这些事件接收失败,客户端必须再次将失败的事件发送至事件总线,确保处理每个对应用至关重要的事件。
作为替代方案,将事件发送至使用 Amazon EventBridge 全球终端节点 的次要区域,以增强事件驱动应用的弹性。
结论
本文展示了如何利用这些新指标提升事件驱动应用程序事件流的可视性。帮助您更有效地监控事件流动,从调用直到目标交付。这增强了可观察性,并通过对关键指标的主动警报提高了运维效率。
欲获取更多无服务器学习资源,请访问 Serverless Land。