Compartilhar via

Application Insights 中的连接字符串

连接字符串指定检测的应用程序应向哪个 Application Insights 资源发送遥测数据。 连接字符串由多个设置组成,每个设置都表示为键值对,并用分号分隔。 此合并的配置方法消除了对多个代理设置的需求,从而简化了设置过程。

重要

连接字符串包含一个检测密钥(ikey)和 ApplicationId。

ikey 是引入服务用于将遥测与特定 Application Insights 资源关联的唯一标识符。 Ikey 唯一标识符不是安全令牌或安全密钥,也不被视为机密。通过添加 ApplicationId 值来增强连接字符串。 此更新是一项新功能,支持自动检测使用 Open Telemetry SDK 的方案。

注意

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

连接字符串功能

  • 可靠性:连接字符串通过删除全局引入终结点上的依赖项提高遥测引入的可靠性。
  • Security:连接字符串允许使用 Application Insights 的Microsoft Entra身份验证进行经过身份验证的遥测引入。
  • 自定义终结点(独立或混合云环境):终结点设置允许将数据发送到特定的 Azure 政府区域。 (请参阅示例。)
  • 隐私(区域终结点):连接字符串通过将数据发送到区域终结点来解决隐私问题,从而确保数据不会离开某一地理区域。

查找连接字符串

您的 连接字符串 会显示在 Application Insights 资源的 Overview 部分中。

显示 Application Insights 概述和“连接字符串”的截图。

架构

以下部分对架构元素进行了说明。

最大长度

连接的受支持的最大长度为 4,096 个字符。

键值对

连接字符串由以分号分隔的键值对表示的设置列表组成:key1=value1;key2=value2;key3=value3

提示

本文档介绍了可配置的键值对。 某些键值对不可配置,并且会自动设置,例如 ApplicationId。 如果在环境中观察到这些对,可以安全地忽略它们。

语法

  • InstrumentationKey(例如 00000000-0000-0000-0000-000000000000)。 InstrumentationKey 是必填字段。

  • Authorization(例如 ikey)。 此设置为可选,因为目前我们仅支持 ikey 授权。

  • EndpointSuffix(例如 applicationinsights.azure.cn)。 设置终结点后缀会告知 SDK 要连接到哪个Azure云。 SDK 会为各个服务组装端点的其余部分。

  • 显式终结点。 可以在连接字符串中显式覆盖任一服务。

    • IngestionEndpoint(例如 https://dc.applicationinsights.azure.cn
    • LiveEndpoint(例如 https://live.applicationinsights.azure.cn
    • ProfilerEndpoint(例如 https://profiler.monitor.azure.cn
    • SnapshotEndpoint(例如 https://snapshot.monitor.azure.cn

端点模式

<prefix>.<suffix>

  • 前缀:定义某个服务。
  • 后缀:定义公共域名。

有效后缀

  • Azure 应用见解 (applicationinsights.azure.cn)
  • applicationinsights.us

有关详细信息,请参阅需要修改终结点的区域

有效的前缀

连接字符串示例

下面是连接字符串的一些示例。

带有终结点后缀的连接字符串

InstrumentationKey=00000000-0000-0000-0000-000000000000;EndpointSuffix=applicationinsights.azure.cn;

在此示例中,连接字符串指定由世纪互联管理的Microsoft Azure中的端点后缀,SDK 构建服务端点:

  • 授权方案默认为“ikey”
  • 仪器密钥:00000000-0000-0000-0000-000000000000
  • 提供的终结点后缀构成了区域服务的统一资源标识符 (URI) 的基础:
    • 引入:https://dc.applicationinsights.azure.cn
    • 实时指标:https://live.applicationinsights.azure.cn
    • .NET探查器:https://profiler.applicationinsights.azure.cn
    • 调试程序:https://snapshot.applicationinsights.azure.cn

带有显式终结点重写的连接字符串

InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://custom.com:111/;LiveEndpoint=https://custom.com:222/;ProfilerEndpoint=https://custom.com:333/;SnapshotEndpoint=https://custom.com:444/;

在此示例中,连接字符串为每个服务指定显式替代。 SDK 使用所提供的确切终结点而不进行修改:

  • 授权方案默认为“ikey”
  • 仪器密钥:00000000-0000-0000-0000-000000000000
  • 区域服务 URI 基于显式重写值:
    • 引入:https://custom.com:111/
    • 实时指标:https://custom.com:222/
    • .NET探查器:https://custom.com:333/
    • 调试程序:https://custom.com:444/

带有显式区域的连接字符串

InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://chinaeast2.in.applicationinsights.azure.cn/

在此示例中,连接字符串指定中国东部 2 区域:

  • 授权方案默认为“ikey”
  • 仪器密钥:00000000-0000-0000-0000-000000000000
  • 区域服务 URI 基于显式重写值:
    • 引入:https://chinaeast2.in.applicationinsights.azure.cn/

若要列出可用区域,请在 Azure CLI 中运行以下命令:

az account list-locations -o table

设置连接字符串

我们的所有 OpenTelemetry 产品/服务和以下 SDK 版本均支持连接字符串:

  • .NET v2.12.0
  • JavaScript v2.3.0
  • NodeJS v1.5.0
  • Java v3.1.1

您可以在代码中设置连接字符串,使用环境变量或配置文件。

环境变量

连接字符串:APPLICATIONINSIGHTS_CONNECTION_STRING

使用连接字符串进行身份验证的浏览器遥测

当组织禁用 Application Insights 上的本地身份验证以强制实施Microsoft Entra ID时,由 JavaScript SDK 发送的基于浏览器的遥测无法再直接进行身份验证,并且可能会停止流动。

一种实用模式是通过 Azure API 管理(APIM)路由浏览器遥测,该模式:

  • 使用托管标识向 Application Insights 进行身份验证,并
  • 代表您将请求转发到地区数据引入终结点。

通过此设置,连接字符串继续标识目标的 Application Insights 资源,而 IngestionEndpoint 则指向您的 APIM 代理 URL。

有关端到端指南(包括 CORS 和 APIM 策略),请参阅:将 Azure API 管理 作为 Application Insights 遥测的代理

代码示例

语言 经典 API OpenTelemetry
ASP.NET Core Application Insights SDK AzMon OTel 发行版
.NET Framework Application Insights SDK AzMon 导出程序
Java N/A Java agent
JavaScript JavaScript (Web) SDK 加载程序脚本 N/A
Node.js Application Insights SDK AzMon OTel 发行版
Python OpenCensus Python SDK 已停用 AzMon OTel 发行版

后续步骤

查看常见问题(常见问题解答):

在运行时开始使用:

在开发阶段开始使用: