【问题标题】:AWS X-Ray shows duplicate nodes in the Service MapAWS X-Ray 在服务地图中显示重复节点
【发布时间】:2018-08-25 10:50:40
【问题描述】:

我刚刚开始使用 AWS Xray,并且正在将它与 AWS Lambda 一起使用。问题是我注意到服务地图上 AWS Xray 节点的重复。例如,SNS 分为 AWS::SNS远程呼叫。因为它们都是相同的东西,所以具有完全相同的跟踪和平均响应时间。只是显示为两个不同的节点。有谁知道如何减少这种噪音?

我正在使用 patch_all() 函数来修补所有服务。 图片如下:Image 1Image 2

这里是跟踪的图像和要点。 Image SNS,Image Remote,Image Remote (details),Image SNS(Details),Gist

更新

  • 我已按照@Rohit 的要求添加了图片
  • 问题已解决

使用以下替换

from aws_xray_sdk.core import patch_all
patch_all()

//replaced by 

from aws_xray_sdk.core import patch
patch('boto3') //etc etc

【问题讨论】:

  • 您能否发布包含重复 SNS 段的示例跟踪?此外,如果您可以发布 GetServiceGraph API 的输出,那么调试问题将很有用。 docs.aws.amazon.com/xray/latest/api/API_GetServiceGraph.html 请屏蔽您在服务图中可能拥有的任何敏感信息。
  • 好吧,我早上第一件事就是这样做,但我也正要更新。我解决了这个问题,但只是无法在 SDK 存储库本身上找到问题发生的确切位置。因此,正如我提到的,我正在使用 patch_all() 但不知何故,当我使用诸如 patch(“boto3”,”...”) 等简单的东西时,它停止了复制节点,但是是的,我用屏幕截图和输出更新了他发布的内容。
  • @RohitBanga 我已经添加了图片。对于 GetServiceGraph 必须重新设置分支并再次测试。

标签: python amazon-web-services aws-lambda aws-sdk aws-xray


【解决方案1】:

您看到的节点来自此 PR https://github.com/aws/aws-xray-sdk-python/pull/19,用于添加对 httplib 的支持。如果你使用patch_all httplib 操作也会被捕获。在您的情况下,依赖关系树是 boto3 -> botocore -> vendored requests -> httplib。因此,您的 AWS 子段将具有代表 httplib 执行的操作的子子段。

但是,服务图会将“远程”子段呈现为您所看到的节点。推荐的方法是显式修补您要捕获的库以避免意外行为。

【讨论】:

  • 我可以看到正在发生的事情 :D 但我不知道原因。好吧,我接受您的正确和全面的答案。 :D
猜你喜欢
  • 2018-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多