如何在Azure Monitor中跨日志分析和应用程序见解进行查询

时间:2020-09-04 14:08:03

标签: azure azure-application-insights azure-log-analytics kusto

This answer总结说,App Insights(AI)和Log Analytics(LA)已合并到一项服务中。它还建议AI中的新资源可以指向LA,这样您的所有代码都可以放在一个地方。

我的问题是,鉴于两者都存在,并且您没有时间或权限来更改AI以指向LA,我该如何查询LA和AI资源。

使用Azure工作簿,我意识到我可以从LA或AI内的多个资源进行查询,但是我似乎无法在一个单元格中跨LA和AI进行查询(也不保存单元格之间的结果。)

目前,我认为解决此问题的唯一方法是通过API查询或加入PBI报告,但这两种方法都需要大量开销才能完成探索性查询。有没有一种更简单的方法,理想的是同时保留在Kusto查询中?

1 个答案:

答案 0 :(得分:4)

Azure Monitor是您用于跨资源查询的一站式服务。

以前,使用Azure Monitor只能分析内部数据 当前的工作空间,这限制了您在 您的订阅中定义了多个工作区。另外,你 只能搜索从您的基于Web的遥测项目 直接在Application Insights中使用Application Insights开发应用程序 或从Visual Studio。这也给本地人带来了挑战 一起分析运营和应用程序数据。

现在,您不仅可以跨多个Log Analytics工作区进行查询, 以及来自同一应用程序中特定Application Insights应用程序的数据 资源组,另一个资源组或另一个订阅。这个 为您提供系统范围的数据视图。你只能 在Log Analytics中执行这些类型的查询。

要在查询中引用另一个工作区,请使用workspace标识符,对于Application Insights中的应用程序,请使用app标识符。

例如,您可以从任何资源实例中查询多个资源,这些资源可以是工作空间和应用程序,如下所示。

// crossResource function that scopes my Application Insights resources
union withsource= SourceApp
app('Contoso-app1').requests, 
app('Contoso-app2').requests,
app('Contoso-app3').requests,
app('Contoso-app4').requests,
app('Contoso-app5').requests

或者类似

union Update, workspace("contosoretail-it").Update, workspace("b459b4u5-912x-46d5-9cb1-p43069212nb4").Update
| where TimeGenerated >= ago(1h)
| where UpdateState == "Needed"
| summarize dcount(Computer) by Classification

或者类似

applicationsScoping 
| where timestamp > ago(12h)
| where success == 'False'
| parse SourceApp with * '(' applicationName ')' * 
| summarize count() by applicationName, bin(timestamp, 1h) 
| render timechart

有关详细信息,请参见this