Amazon SNS 和Amazon X-Ray - Amazon X-Ray
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon SNS 和Amazon X-Ray

您可以Amazon X-Ray使用亚马逊Simple Notification Service (Amazon SNS) 来跟踪和分析请求通过您的 SNS 主题传送到支持 SNS 的订阅服务。使用 Amazon SNS 的 X-Ray acing 来分析您的消息及其后端服务的延迟,例如请求在某个主题上花费了多长时间,以及将消息传送到该主题的每个订阅需要多长时间。

如果您从已使用 X-Ray 检测的服务发布到 Amazon SNS 主题,Amazon SNS 会将跟踪上下文从发布者传递给订阅者。此外,您还可以开启主动追踪,将有关您的 Amazon SNS 订阅的区段数据发送到 X-Ray,以获取从仪器化 SNS 客户端发布的消息。使用 Amazon SNS 主题或 Amazon SNS API 或 CLI 开启对Amazon SNS 主题的信息。有关检测您的 SNS 客户端的更多信息,请参阅检测您的应用程序

配置 Amazon SNS 主动跟踪

您可以使用 Amazon SNS 主动跟踪配置 Amazon SNS 主动跟踪。Amazon

当您使用 Amazon SNS 控制台时,Amazon SNS 会尝试为 SNS 调用 X-Ray 创建必要的权限。如果您没有足够的权限修改 X-Ray 资源策略,则尝试可能会被拒绝。有关这些权限的信息,请参阅 Amazon Simple N otificati on Service 开发人员指南的 Amazon SNS 访问控制示例案例 有关使用 Amazon SNS 主题的信息,请参阅 Amazon Simple Notificati on Service 开发人员指南的 Amazon SNS 主题的信息。

使用Amazon CLI 或 SDK 开启主动跟踪时,必须使用基于资源的策略手动配置权限。用于PutResourcePolicy为 X-Ray 配置必要的基于资源的策略,以允许 Amazon SNS 向 X-Ray 发送跟踪信息。

例 基于 Amazon SNS 主动追踪的 X-Ray 资源策略示例

此示例政策文档指定了 Amazon SNS 向 X-Ray 发送向 X-Ray 发送向 X-Ray 发送跟踪数据所需的权限:

{ Version: "2012-10-17", Statement: [ { Sid: "SNSAccess", Effect: Allow, Principal: { Service: "sns.amazonaws.com", }, Action: [ "xray:PutTraceSegments", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], Resource: "*", Condition: { StringEquals: { "aws:SourceAccount": account-id }, StringLike: { "aws:SourceArn": "arn:$partition:sns:$region:$account-id:topic-name" } } } ] }

要使用此示例政策文档,请将partitionregionaccount-id、和topic-name替换为您的特定Amazon分区、区域、账户 ID 和 Amazon SNS 主题名称。要向XAmazon SNS 主题发送向 X-Ray 发送向 X-Ray 发送向 X-Ray 发送跟踪数据,请将主题名称替*

在 XAmazon SNS 发布商和订阅者跟踪 X-Ray azon S

使用 X-Ray 控制台查看服务地图、跟踪地图和追踪详情,这些信息显示 Amazon SNS 发布者和订阅者的关联视图。为某个主题开启 Amazon SNS 活动跟踪时,X-Ray 服务地图和跟踪地图会显示 Amazon SNS 发布者、Amazon SNS 主题和下游订阅者的连接节点:


                Amazon SNS 发布商和订阅者的服务地图

选择跨越 Amazon SNS 发布商和订阅者的跟踪后,X-Ray 跟踪详情页面将显示跟踪地图和分段时间表。

例 Amazon SNS 发布商和订阅者的时间表示例

此示例显示了一个时间表,其中包括向 Amazon SNS 主题发送消息的 Amazon SNS 发布者,该消息由 Amazon SQS 订阅者处理。


                    Amazon SNS 发布商和订阅者的细分时间表

上面的示例时间轴提供了有关 Amazon SNS 消息流的详细信息:

  • SNS 分段表示来自客户端Publish API 调用的往返持续时间。

  • MyTo pic 区段代表Amazon SNS 响应发布请求的延迟。

  • S QS 子分段表示 Amazon SNS 将消息发布到 Amazon SQS 队列所花费的往返时间。

  • MyTopic 区段与 SQS 子分段之间的时间代表消息在 Amazon SNS 系统中花费的时间。

例 包含批量Amazon SNS 消息的时间表示例

如果在单个跟踪中批处理多条 Amazon SNS 消息,则区段时间表会显示代表已处理的每条消息的分段。


                    Amazon SNS 批量消息的分段时间表