You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Application Insights日志查询:基于EventId关联自定义事件与追踪

实现思路与查询示例

核心逻辑

通过EventId将customEvents和traces关联,提取自定义事件的原有字段,同时把追踪的message作为Response字段返回。

完整查询示例

customEvents
| project
    name,
    EventId = customDimensions.EventId,
    Endpoint = customDimensions.Endpoint,
    Context = customDimensions.Context
    // 按需添加其他需要保留的customDimensions字段
| join kind=leftouter (
    traces
    | project
        EventId = customDimensions.EventId, // 确保traces的customDimensions中存在EventId
        Response = message
    // 可选:添加where条件过滤特定类型的追踪,比如 where customDimensions.TraceType == "Response"
) on EventId
// 处理一个EventId对应多条trace的场景,按需选择聚合方式
| summarize 
    name = take_any(name),
    Endpoint = take_any(Endpoint),
    Context = take_any(Context),
    Response = strcat_array(make_list(Response), "\n") // 多条响应时换行合并
    // 其他字段用take_any或对应聚合函数处理
by EventId

关键注意点

  • 关联类型:使用leftouter连接可以保留所有自定义事件,即使没有对应的追踪记录,此时Response会为null;如果只需要有对应响应的事件,可改为inner连接。
  • 字段一致性:确保两边的EventId都从customDimensions正确提取,且字段命名一致(都用EventId),否则关联会失败。
  • 多追踪处理:如果同一个EventId对应多条追踪,用summarize聚合:
    • 用take_any()取任意一条响应;
    • 用strcat_array(make_list(Response), "\n")合并所有响应内容;
    • 用max(timestamp)配合arg_max()取最新的一条响应。
  • 性能优化:在traces子查询中提前添加where条件过滤无关追踪,减少关联的数据量,提升查询速度。

内容的提问来源于stack exchange,提问作者Flashcap

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 04:50:22