【问题标题】:Tracing Telemetry in Application Insights across different layers在 Application Insights 中跨不同层跟踪遥测
【发布时间】:2017-03-08 02:00:49
【问题描述】:

我目前正在使用 App 洞察来记录异常和跟踪。 我的项目是基于 Asp.net MVC 的,我有 3 个不同的层。一个是前端(带有角度的 MVC),其余两个是 Web API 服务层。 我为所有 3 层启用了默认遥测日志记录,它正在记录所有操作。我的问题是我无法关联所有 3 层的操作。我怎样才能做到这一点。我读过一个选项是在 Telemetry Initializer 上设置自定义属性(会话中的用户 ID),但我的 Web API 层上没有这些信息,因为它们是无状态的。

【问题讨论】:

    标签: azure-application-insights


    【解决方案1】:

    我能想到的一个解决方案:

    您可以为 MVC 层中的每个操作生成一个内部标识符(例如 GUID),将其添加为自定义参数(使用 Telemetry Initializer)并将相同的 ID 传递给您进行的每个 API 调用的 Web API 层.对于这些 Web API 层发送的每个遥测事件,以与上述相同的方式将标识符添加为自定义参数。

    这样您就可以根据您的内部 ID 关联事件。

    【讨论】:

    【解决方案2】:

    除了已经提到的替代方案之外,已经有 partial support 通过 ParentOperationId 和 OperationId 上下文字段内置到 AI 中。但是,目前还没有任何东西可以通过 Http 调用自动传播字段。

    在进行传出 HTTP 调用时应该可以让您的代码添加必要的标头,如果您使用正确的标头,并且另一端具有必要的遥测初始化程序,那应该会更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多