Application Insights-跨架构跟踪用户和会话

时间:2018-10-05 19:31:45

标签: azure-application-insights

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的期望值时,其他跟踪继续显示垃圾。我在做错什么吗?

1 个答案:

答案 0 :(得分:1)

您遵循的document确实无法正常工作,已经提交了反馈here

仅供参考,我发现设置这些值的方法是在实施TrackEvent() / TrackRequest() or other Trackxxx()后使用此类your own telemetry initializer方法