azure 查找请求和依赖调用

jyztefdp  于 2023-04-22  发布在  其他
关注(0)|答案(1)|浏览(95)

假设设置正确,可以记录来自asp.net核心应用程序的请求的sql调用,我试图查看来自与给定sql调用关联的ASP.NET控制器的请求。然而,我不确定连接条件。我应该在依赖项的operation_parentId上连接到请求的operationId吗?如果我这样做了,依赖项和调用它的请求之间的“纽带”是什么?
像这样的东西

// join on operationid
    requests 
    |where timestamp > start_time and timestamp < end_time
    | join (dependencies
            | where ['type'] == "SQL" and data has "some-field-name-here" 
            ) on operation_Id
    
//join on parentid ????     
    requests 
    |where timestamp > start_time and timestamp < end_time
    | join (dependencies
            | where ['type'] == "SQL" and data has "some-field-name-here" 
            ) on $left.operation_Id = $right.operationParentId

第二个查询什么也没有给我,但是第一个查询中的请求,如果我看一下应该进行关联sql调用的代码,在那个请求的关联方法中没有语句会进行那个sql调用。我错过了什么?

esyap4oy

esyap4oy1#

获取所有相关遥测项目的最简单方法是像您一样加入operation_Id。但要注意可能会有一些嵌套。让我们假设以下情况:

  • API控制器
  • 一些依赖
  • SQL依赖项
  • 其他依赖

在您的查询中,您不会看到包含生成“SQL依赖关系”的代码的“Some dependency”,因为您过滤掉了所有非“SQL”类型的遥测。
您也可以使用Idoperation_ParentId遍历树。例如,要获取第一级依赖关系(“Some Dependency”和“Some Other Dependency”),您可以执行以下操作:

requests 
    |where timestamp > start_time and timestamp < end_time
    | join (dependencies
            | where ['type'] == "SQL" and data has "some-field-name-here" 
            ) on $left.id == $right.operationParentId

下面是关于相关性的数据模型的文档。

相关问题