使用Azure前门时应用程序见解缺少UserId属性

问题描述 投票:2回答:1

我的.NET Core API的几乎所有请求遥测都缺少UserId属性。我有一个Angular SPA通过Azure前门向我的API发出HTTP请求。具有UserId属性的唯一请求遥测是未通过Azure前门传递的流量。准确地说:它是SignalR直接向API发出的请求。我觉得Angular应用程序将遥测传递到了Application Insights(仅适用于前端),而在其他Application Insights(仅适用于后端)中,似乎并没有排队。前端中的依赖性遥测与后端中的请求遥测所接收到的URL不同。 Azure前门设置为转发请求,因此它将再次收到请求并将其发送到正确的目的地。

HTTP请求的示意图概述在后端缺少UserId属性:

---------                          --------                       --------
|Angular|  GET domain.com/api1     | Front|  GET domain2.com/api  | Back |
|  app  | -----------------------> | Door | --------------------> | End  |
---------                          --------                       --------

后端中包含UserId属性的HTTP请求的示意图:

---------                          --------
|Angular|  GET domain2.com/signalr | Back |
|  app  | -----------------------> | End  |
---------                          --------

我已经查看了请求标头,但没有看到UserId传递到那里的迹象,对于前门或直接发送给我的API的请求,它们实际上是相同的(主机名是那里的大区别)。我认为前门使用与获取请求相同的标题进行请求。

首先,我的假设正确吗?前端依赖项跟踪的URL与后端接收的URL是否不同?如果是这样,我该怎么办?我想使用UserId对特定用户在遇到问题之前执行的操作进行故障排除(“此用户会话的所有可用遥测”功能)。

azure azure-web-sites azure-application-insights azure-web-app-service azure-front-door
1个回答
0
投票

我认为您的问题与前端和后端遥测相关。有一个属性operation_id,可以在前端和后端遥测中找到它们,并且可以使用它们进行关联。您可能需要自定义前端和后端遥测,以具有经过身份验证的用户标识。请查看以下有关遥测技术的资源。希望有帮助。

https://docs.microsoft.com/en-us/azure/azure-monitor/app/correlation

© www.soinside.com 2019 - 2024. All rights reserved.