我的.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
对特定用户在遇到问题之前执行的操作进行故障排除(“此用户会话的所有可用遥测”功能)。
我认为您的问题与前端和后端遥测相关。有一个属性operation_id,可以在前端和后端遥测中找到它们,并且可以使用它们进行关联。您可能需要自定义前端和后端遥测,以具有经过身份验证的用户标识。请查看以下有关遥测技术的资源。希望有帮助。
https://docs.microsoft.com/en-us/azure/azure-monitor/app/correlation