【问题标题】:How do I set UserID in AWS XRay sdk traces within dotnet core web api using httpcontext如何使用 httpcontext 在 dotnet core web api 中的 AWS XRay sdk 跟踪中设置 UserID
【发布时间】:2020-10-07 05:22:24
【问题描述】:

我有兴趣在 asp.net 核心 web api 中设置 xray“trace”用户 ID(基于 HttpContext User.Claims 中包含的经过身份验证的用户声明) 对我来说,如果 OAuth 令牌具有例如一些包含有关 api 客户端的身份信息的声明,那么 xray 跟踪具有一些属性,该属性也包含在声明中(用户电子邮件,甚至自定义声明)

我需要在 AWS XRay 开发工具包上调用什么方法才能手动设置此值?

AWSXRayRecorder 实例上是否有方法?

我尝试了以下方法,但这似乎不是解决方案,而只是一个微弱的尝试或有根据的猜测。

            AWSXRayRecorder recorder = AWSXRayRecorder.Instance;
            recorder.AddAnnotation("UserID", "123");
            recorder.AddAnnotation("User", "456");

sdk 如何允许这种类型的控制?它是否允许这种类型的控制,以便我们可以设置 UserID 的值?

在这里您可以在分析选项卡中看到,未设置用户(显示“-”)

我知道我可以以类似的方式使用注释,但在这里我要特别询问的是上面 UI 上显示的内容,即“用户”

我也尝试了以下方法,但是,这似乎对我在分析中看到的内容没有任何影响

    var segment1 = (Segment)AWSXRayRecorder.Instance.GetEntity();
    var segment2 = (Segment)AWSXRayRecorder.Instance.TraceContext.GetEntity();
    segment1.SetUser("User1");
    segment2.SetUser("User2");

【问题讨论】:

    标签: amazon-web-services asp.net-core aws-xray


    【解决方案1】:

    我认为目前您可以使用 AddAnnotation 或 AddMetadata 方法在跟踪数据中设置 userID 或 user 等值。您能否解释为什么 AddAnnotation 方法不适合您的用例?我认为 X-Ray SDK 不支持除 AddAnnotation 和 AddMetadata 方法之外的任何其他 API 来设置此类值。

    【讨论】:

    • 我不相信 AddAnnotation 是一个解决方案,因为在尝试了这个之后,用户 ID 仍然没有填充任何值,因此,我怀疑它不是一个解决方案。看起来我需要获取当前段?
    • 你知道 100% 肯定有效吗?这应该是你的答案所提供的,你有信心的东西就是解决方案。我相信此时您的帖子作为评论而不是答案可能会更好
    猜你喜欢
    • 2017-03-31
    • 2020-07-21
    • 2021-12-30
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多