【发布时间】:2020-12-31 16:02:37
【问题描述】:
在https://docs.microsoft.com/en-us/azure/application-insights/app-insights-usage-send-user-context 之后,我认为对用户进行跨模式跟踪会很容易。然而,我发现完全相反。
我创建了遥测初始值设定项(文档中有硬核错误):
public void Initialize(ITelemetry telemetry)
{
if (HttpContext.Current?.Session == null)
return;
if (HttpContext.Current.Session["UserId"] == null)
{
HttpContext.Current.Session["UserId"] = Guid.NewGuid().ToString();
}
telemetry.Context.User.Id = (string)HttpContext.Current.Session["UserId"];
telemetry.Context.Session.Id = HttpContext.Current.Session.SessionID;
var authUser = _sessionManager.GetAuthenticatedUser<UserDetails>();
if (authUser != null)
{
telemetry.Context.User.AuthenticatedUserId = authUser.UserId;
}
}
然后我将其添加到 App Insights
TelemetryConfiguration.Active.TelemetryInitializers.Add(new UserTrackingTelemetryInitializer());
然后我开始玩我的网站,期待这些东西开始出现。它没。我继续获取 user_Id 和 session_Id 的随机字符串(诸如 NVhLF 之类的东西)。所以,我想,好吧,也许在我更新这些值之前它正在记录?我先去插入了我的初始化程序:
TelemetryConfiguration.Active.TelemetryInitializers.Insert(0, new UserTrackingTelemetryInitializer());
同样的事情。所以我开始研究我通常不看的模式。没有什么。所以我拉起了痕迹,我找到了它。最后,这是我的数据的去向。但是其他模式没有更新的值,那么这有什么用呢?虽然跟踪显示 user_Id 和 session_Id 的预期值,但其他人继续显示垃圾。我做错了吗?
【问题讨论】:
-
您是否尝试过使用这些方法,例如 TrackEvent() / TrackRequest()?然后检查自定义的user_id/session_id是否设置正确?
-
我不想输入代码来跟踪这些东西。 SDK 为我跟踪这些事情。问题是,为什么 SDK 不自动获取这些数据?
-
很确定这会在 App Insights 中填充
Auth Id,而不是User Id。似乎User Id与特定的客户端/cookie 唯一相关,但它是由 Azure 生成的,因此并没有真正的帮助。你的代码应该设置Auth Id。可以查一下吗?
标签: azure azure-application-insights