我正在尝试将 AWS X-Ray 集成到我的一个应用程序中,但我感到很沮丧。我觉得亚马逊的文档在示例方面有点缺乏,但希望你们中的一些人能帮助我。
我的主要应用程序是一个用 C# 构建的 Web API 微服务。我有一个单独的客户端调用微服务,然后微服务与 1)第三方 API 和 2)一些 AWS 服务(如 DynamoDb 和 SNS)进行通信。此外,我围绕 AWS 服务构建了一个包装库,因此我没有直接调用 AWSDynamoDBClient,而是通过我的包装器调用它。
在 AWS X-Ray 控制台上,我可以查看到/来自我的微服务的所有传入和传出调用。但是我没有看到 DynamoDb 的任何内容。如果我直接在我的微服务中创建 AWSDynamoDBClient(绕过包装器),那么我会按预期看到所有流量。但是一旦我通过包装器调用它,就什么也没有发生。
我什至尝试将AWSXRayRecorder.Instance
我的微服务注入到我的包装器中,但仍然没有。我不确定我做错了什么,在这一点上我有点不知所措。
有什么建议么?
编辑: 在我的 AWS 包装库中,我正在执行以下操作:
client = new AmazonDynamoDBClient();
new AWSSdkTracingHandler(recorder).AddEventHandler(client);
recorder
正在AWSXRayRecorder.Instance
从调用微服务注入(我不确定是否有必要像这样传递它,或者我是否可以AWSXRayRecorder.Instance
直接从库中调用)。
这行不通。如果我在微服务中编写相同的代码,那么它可以工作,并且我可以在 AWS 控制台的 X-Ray 图中看到 DynamoDb 节点