Azure Monitor 查询中的 app() 表达式

app 表达式用于 Azure Monitor 查询中,可从特定 Application Insights 应用中的同一资源组、另一个资源组或另一个订阅中检索数据。 此表达式适用于在 Azure Monitor 日志查询中包含应用程序数据以及在 Application Insights 查询中跨多个应用程序查询数据。

重要

如果使用的是基于工作区的 Application Insights 资源,则不使用 app() 表达式,因为日志数据存储在 Log Analytics 工作区中。 使用 workspace() 表达式编写一个查询,使其在多个工作区中包含应用。 对于同一个工作区中的多个应用,则无需跨工作区查询。

语法

app(标识符)

参数

  • 标识符:使用下表中的某种格式标识应用。
标识符 说明 示例
ID 应用的 GUID app("00000000-0000-0000-0000-000000000000")
Azure 资源 ID Azure 资源的标识符 app("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/Fabrikam/providers/microsoft.insights/components/fabrikamapp")

说明

  • 必须具有该应用程序的读取权限。
  • 强烈建议通过其 ID 或 Azure 资源 ID 来识别应用程序,因为它是唯一的,可以消除歧义,并且性能更佳。
  • 使用相关表达式 workspace 来跨 Log Analytics 工作区进行查询。

示例

app("00000000-0000-0000-0000-000000000000").requests | count
app("/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/Fabrikam/providers/microsoft.insights/components/fabrikamapp").requests | count
union 
(workspace("00000000-0000-0000-0000-000000000000").Heartbeat | where Computer == "myComputer"),
(app("00000000-0000-0000-0000-000000000000").requests | where cloud_RoleInstance == "myColumnInstance")
| count  
union 
(workspace("00000000-0000-0000-0000-000000000000").Heartbeat), (app("00000000-0000-0000-0000-000000000000").requests)
| where TimeGenerated between(todatetime("2023-03-08 15:00:00") .. todatetime("2023-04-08 15:05:00"))

后续步骤