基于工作区的 Application Insights 资源

基于工作区的资源支持 Application Insights 与 Log Analytics 之间的完全集成。 现在,你可以将 Application Insights 遥测数据发送到一个公用的 Log Analytics 工作区。 你可以全面访问 Log Analytics 的所有功能,而应用程序、基础结构和平台日志将保留在一个统一的位置。

借助这种集成,可以针对不同的资源共同进行 Azure 基于角色的访问控制。 它还消除了跨应用/工作区查询的需要。

注意

基于工作区的 Application Insights 资源的数据引入和保留操作通过数据所在的 Log Analytics 工作区计费。 若要详细了解基于工作区的 Application Insights 资源的计费,请参阅 Azure Monitor 日志定价详细信息

注意

对检测密钥引入的支持将于 2025 年 3 月 31 日结束。 检测密钥引入功能将会继续工作,但我们将不再为该功能提供更新或支持。 转换为连接字符串,以利用新功能

新功能

使用基于工作区的 Application Insights,可以利用 Azure Monitor 和 Log Analytics 的最新功能。 例如:

  • 客户管理的密钥提供数据的静态加密,加密密钥只有你有权访问。
  • 使用承诺层级可以节省 30% 的成本(与即用即付价格相比)。
  • Log Analytics 流式传输可以更快地引入数据。

创建基于工作区的资源

登录到 Azure 门户,并创建 Application Insights 资源。

显示基于工作区的 Application Insights 资源的屏幕截图。

如果你没有 Log Analytics 工作区,请参阅 Log Analytics 工作区创建文档

基于工作区的资源当前在所有区域中都可用

创建资源后,你将在“概述”窗格中看到相应的工作区信息。

显示工作区名称的屏幕截图。

选择蓝色的链接文本会转到关联的 Log Analytics 工作区,可以在其中利用新的统一工作区查询环境。

注意

我们仍为 Application Insights 经典资源查询、工作簿和基于日志的警报提供完全后向兼容性。 若要查询或查看新的基于工作区的表结构或架构,必须先转到 Log Analytics 工作区。 在“Application Insights”窗格中选择“日志(分析)”访问经典 Application Insights 查询体验。

复制连接字符串

连接字符串用于标识要与遥测数据关联的资源。 还可以使用它来修改可供资源用作遥测目标的终结点。 必须复制连接字符串,并将其添加到应用程序的代码或添加到环境变量中。

配置监视

创建基于工作区的 Application Insights 资源后,请配置监视。

基于代码的应用程序监视

要进行基于代码的应用程序监视,请安装相应的 Application Insights SDK,并将检测密钥或连接字符串指向新建的资源。

有关如何为基于代码的监视设置 Application Insights SDK 的信息,请参阅特定于语言或框架的以下文档:

无代码监视和 Visual Studio 资源创建

要对 Azure Functions 和 Azure 应用服务等服务进行无代码监视,首先请创建基于工作区的 Application Insights 资源。 然后在配置监视时指向该资源。

这些服务在其自身的资源创建过程中提供用于新建 Application Insights 资源的选项。 但是通过这些 UI 选项创建的资源目前仅限于经典 Application Insights 体验。

同样的限制适用于 Visual Studio for ASP.NET 和 Visual Studio for ASP.NET Core 中的 Application Insights 资源创建体验。 必须在启用监视的 Visual Studio UI 中选择现有的基于工作区的资源。 在 Visual Studio 中选择“创建新资源”只能创建经典 Application Insights 资源。

自动创建资源

Azure CLI

若要访问预览版 Application Insights Azure CLI 命令,首先需要运行以下命令:

 az extension add -n application-insights

如果不运行 az extension add 命令,则会看到一条错误消息,指出 az : ERROR: az monitor: 'app-insights' is not in the 'az monitor' command group. See 'az monitor --help'

现在,可以运行以下代码来创建 Application Insights 资源:

az monitor app-insights component create --app
                                         --location
                                         --resource-group
                                         [--application-type]
                                         [--ingestion-access {Disabled, Enabled}]
                                         [--kind]
                                         [--only-show-errors]
                                         [--query-access {Disabled, Enabled}]
                                         [--tags]
                                         [--workspace]

示例

az monitor app-insights component create --app demoApp --location chinaeast2 --kind web -g my_resource_group --workspace "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/test1234/providers/microsoft.operationalinsights/workspaces/test1234555"

有关此命令的完整 Azure CLI 文档,请参阅 Azure CLI 文档

Azure PowerShell

新建基于工作区的 Application Insights 资源。

New-AzApplicationInsights -Name <String> -ResourceGroupName <String> -Location <String> -WorkspaceResourceId <String>
   [-SubscriptionId <String>]
   [-ApplicationType <ApplicationType>]
   [-DisableIPMasking]
   [-DisableLocalAuth]
   [-Etag <String>]
   [-FlowType <FlowType>]
   [-ForceCustomerStorageForProfiler]
   [-HockeyAppId <String>]
   [-ImmediatePurgeDataOn30Day]
   [-IngestionMode <IngestionMode>]
   [-Kind <String>]
   [-PublicNetworkAccessForIngestion <PublicNetworkAccessType>]
   [-PublicNetworkAccessForQuery <PublicNetworkAccessType>]
   [-RequestSource <RequestSource>]
   [-RetentionInDays <Int32>]
   [-SamplingPercentage <Double>]
   [-Tag <Hashtable>]
   [-DefaultProfile <PSObject>]
   [-Confirm]
   [-WhatIf]
   [<CommonParameters>]

示例

New-AzApplicationInsights -Kind java -ResourceGroupName testgroup -Name test1027 -location chinaeast2 -WorkspaceResourceId "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/test1234/providers/microsoft.operationalinsights/workspaces/test1234555"

如需此 cmdlet 的完整 PowerShell 文档,以及了解如何检索检测密钥,请参阅 Azure PowerShell 文档

Azure 资源管理器模板

若要创建基于工作区的资源,请使用以下 Azure 资源管理器模板,并使用 PowerShell 部署这些模板。

模板文件

{
    "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "name": {
            "type": "string"
        },
        "type": {
            "type": "string"
        },
        "regionId": {
            "type": "string"
        },
        "tagsArray": {
            "type": "object"
        },
        "requestSource": {
            "type": "string"
        },
        "workspaceResourceId": {
            "type": "string"
        }
    },
    "resources": [
        {
            "name": "[parameters('name')]",
            "type": "microsoft.insights/components",
            "location": "[parameters('regionId')]",
            "tags": "[parameters('tagsArray')]",
            "apiVersion": "2020-02-02-preview",
            "properties": {
                "ApplicationId": "[parameters('name')]",
                "Application_Type": "[parameters('type')]",
                "Flow_Type": "Bluefield",
                "Request_Source": "[parameters('requestSource')]",
                "WorkspaceResourceId": "[parameters('workspaceResourceId')]"
            }
        }
    ]
}

注意

有关资源属性的详细信息,请参阅属性值。 不会使用 Flow_TypeRequest_Source,但出于完整性,已将其包含在此示例中。

参数文件

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "type": {
            "value": "web"
        },
        "name": {
            "value": "customresourcename"
        },
        "regionId": {
            "value": "chinanorth"
        },
        "tagsArray": {
            "value": {}
        },
        "requestSource": {
            "value": "Custom"
        },
        "workspaceResourceId": {
            "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my_resource_group/providers/microsoft.operationalinsights/workspaces/myworkspacename"
        }
    }
}

修改关联的工作区

创建基于工作区的 Application Insights 资源后,可以修改关联的 Log Analytics 工作区。

从“Application Insights 资源”窗格中,选择“属性”>“更改工作区”>“Log Analytics 工作区”。

导出遥测

基于工作区的资源不支持旧版连续导出功能。 应在 Application Insights 资源中选择“诊断设置”>“添加诊断设置”。 可以选择所有表或一部分表以存档到存储帐户。 还可以流式传输到 Azure 事件中心。

注意

导出诊断设置可能会增加成本。 有关详细信息,请参阅从 Application Insights 导出遥测数据。 有关此功能的定价信息,请参阅 Azure Monitor 定价页。 开始计费之前,会发送通知。 如果在通知期过后继续使用遥测数据导出,你将按适用的费率付费。

后续步骤