azure - 使用 Azure 前门时缺少 UserId 属性的应用程序见解
问题描述
我的 .NET 核心 API 的几乎所有请求遥测都缺少该UserId
属性。我有一个 Angular SPA 通过 Azure Front Door 向我的 API 发出 HTTP 请求。唯一具有UserId
属性的请求遥测是未通过 Azure 前门的流量。准确地说:它是 SignalR 直接对 API 的请求。我有一种感觉,我们的 Angular 应用程序将遥测传递给我们的 Application Insights(仅用于前端),而在我们的其他 Application Insights(仅用于后端)中,事情似乎并没有对齐。前端的依赖遥测与后端接收的请求遥测的 URL 不同。Azure Front Door 设置为转发请求,因此它会将收到的请求再次发送到正确的目的地。
UserId
后端缺少属性的 HTTP 请求示意图:
--------- -------- --------
|Angular| GET domain.com/api1 | Front| GET domain2.com/api | Back |
| app | -----------------------> | Door | --------------------> | End |
--------- -------- --------
UserId
后端包含属性的 HTTP 请求示意图:
--------- --------
|Angular| GET domain2.com/signalr | Back |
| app | -----------------------> | End |
--------- --------
我查看了请求标头,但没有看到 aUserId
已传递到那里的迹象,并且对于前门或直接到我的 API 的请求实际上是相同的(主机名是那里的最大区别)。我认为前门使用与获取请求相同的标头来执行请求。
首先,我的假设是否正确?前端依赖跟踪的 URL 是否与后端接收的 URL 不同?如果是这样,我该怎么办?我想使用UserId
特定用户在遇到问题之前执行的故障排除操作(“此用户会话的所有可用遥测”功能)。
解决方案
我认为您的问题是关联前端和后端遥测。有一个属性 operation_id 可以在前端和后端遥测中找到,可用于关联。您可能希望自定义前端和后端遥测以具有经过身份验证的用户 ID。查看以下有关关联遥测的资源。希望有帮助。
https://docs.microsoft.com/en-us/azure/azure-monitor/app/correlation
推荐阅读
- c# - 注册时验证用户名和密码的问题
- c# - Word 互操作:如何根据查找命令的结果设置插入点?
- c# - Get the UserID from the LoginResult class
- maven - 当 JUnit 中的测试失败时,“org.codehaus.mojo:exec-maven-plugin:1.6.0:exec”是否应该无法执行目标?
- java - 为什么工具栏中的后退箭头不显示?
- php - 通过兄弟键从 AWS SDK (describeInstances) 中选择多维数组成员
- pandas - 在对多个工作表的多个函数调用中添加多个数据框以 excel
- java - 强制超类包含无参数构造函数
- intellij-idea - 在 IntelliJ 中搜索断点,例如 ReSharper 中的 Navigate > Breakpoints
- r - 如何在 R 中使用自己的函数填充向量