azure - Application Insights Analytics 中的配对事件

标签 azure azure-application-insights

我需要使用以下消息模式应用见解跟踪:

  • “D1 已连接”
  • “D2 已连接”
  • “D3 已连接”
  • “D1 已断开连接”
  • “D3 已断开连接”
  • “D1 已连接”
  • “D2 已断开连接”
  • 等等

我基本上是在监视一些设备和连接时间。如何编写一个查询来“配对”事件(D1 连接/断开连接、D2 连接/断开连接等)并评估“ session ”的持续时间?

我需要获取以下信息:

  • 一天的总连接时间
  • 一天内特定设备的连接分布
  • 等等。

最佳答案

仅根据跟踪文本执行此操作会很困难。我建议使用自定义属性来协助实现这一点。

到目前为止,最简单的选择是发送一些附加属性以及包含所需所有信息的断开连接事件。喜欢:

// Start of session
var tt = new TraceTelemetry("D1 connected");
tt.Properties.Add("Event", "SessionStart");    
telemetryClient.TrackTrace(tt);
var startTime = DateTime.Now;

// Do your thing
....

tt = new TraceTelemetry("D1 disconnected");
tt.Properties.Add("Event", "SessionEnd");
tt.Properties.Add("SessionLength", (startTime - DateTime.Now).TotalMilliseconds.ToString());
telemetryClient.TrackTrace(tt);

自定义属性存储在事件的 customDimensions 字段中。

现在,在 AI 分析中,您可以像这样查询这些值:

计数:

traces
| where customDimensions.Event == "SessionEnd"   
| summarize count() 

session 时长:

traces
| where customDimensions.Event == "SessionEnd"
| project message, customDimensions.Length

所有 session 的总持续时间:

traces
| where customDimensions.Event == "SessionEnd"
| extend duration = tolong(customDimensions.SessionLength)
| summarize sum(duration)    

我还建议添加设备 ID 作为所有发出事件的自定义属性。这将使查询更容易。然后,您可以计算每个设备的最小、最大和平均 session 长度,例如:

traces
| where customDimensions.Event == "SessionEnd"
| extend duration = tolong(customDimensions.SessionLength)
| extend device = tostring(customDimensions.DeviceName)
| summarize sum(duration) by device   

如果您也想加入开始事件,或者不能或不会执行上述操作,则必须将开始事件与结束事件结合起来才能进行这些查询。您仍然需要使用一些自定义属性,因为单独查询文本会很困难,因为您需要分析文本以确定涉及什么事件和什么设备。

看这里azure AI QUERY combine start and response to calculate average了解连接在 AI Analytics 中的工作原理。

关于azure - Application Insights Analytics 中的配对事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41621585/

相关文章:

azure - 在 azure 应用程序洞察中,记录长 JSON 会被修剪

azure - 如何使用 Azure Kusto 从列中的拆分部分获取唯一 ID

azure - 跟踪表中的 iKey 是什么 - KQL [ Kusto 查询语言] - Application Insights - 还查询以下 KQL 查询的优化

c# - Application Insights 中的 Azure 函数 TimerTrigger 结果代码始终成功

javascript - Azure B2C 窗口加载事件

c# - ListBlob 在 cloudblobdirectory 类中不可用?

azure - 使用服务总线触发器横向扩展 Function App

c# - Office 365 API 身份验证表单 REST API

c# - 我们能知道谁访问 key 保管库资源吗

c# - 中国地区应用洞察