我想将来自 AppInsights 浏览器 SDK 的 pageViews 加入到后端的请求中。我没有看到有意义的外键,是否有一个 OOTB?还是我需要编写一些代码才能将它们连接在一起?
要添加上下文,我对 cloudRoleInstance(服务器)的 pageView 持续时间感兴趣,但 cloudRoleInstance 仅在请求时可用。
我尝试了以下,但没有奏效,我想操作ID不一样。
pageViews
| join (requests) on operation_Id
我想将来自 AppInsights 浏览器 SDK 的 pageViews 加入到后端的请求中。我没有看到有意义的外键,是否有一个 OOTB?还是我需要编写一些代码才能将它们连接在一起?
要添加上下文,我对 cloudRoleInstance(服务器)的 pageView 持续时间感兴趣,但 cloudRoleInstance 仅在请求时可用。
我尝试了以下,但没有奏效,我想操作ID不一样。
pageViews
| join (requests) on operation_Id
我对完全相同的事情感兴趣,这就是我最终解决它的方式:
*我这样做而不是像其他答案所说的那样加入 operationId 的原因是因为 operationId 似乎跨越了服务器上的许多请求,有时需要半个小时。也许这是因为我们的单页应用程序的设置方式,但 operationId 对我不起作用。
BaseController.cs::BeginExecute(我们有自己的 BaseController,所有其他控制器都继承自)
var roleInstanceCookie = requestContext.HttpContext.Response.Cookies.Get("cloud_RoleInstance");
roleInstanceCookie.Value = Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.CurrentRoleInstance.Id;
requestContext.HttpContext.Response.Cookies.Set(roleInstanceCookie);
ApplicationInsights.js(这包含我们加载 AI 的 AI 片段,当前使用 JS SDK 的 2.3.1 版)
// ... initialization snippet ...
appInsights.addTelemetryInitializer((envelope) => {
envelope.data.cloud_RoleInstance = getCookie("cloud_RoleInstance");
});
然后 cloud_RoleInstance 将出现在 Application Insights 中 PageViews 的 customDimensions 列中