连接字符串指定检测的应用程序应向哪个 Application Insights 资源发送遥测数据。 连接字符串由多个设置组成,每个设置都表示为键值对,并用分号分隔。 此合并的配置方法消除了对多个代理设置的需求,从而简化了设置过程。
重要
连接字符串包含 ikey 和 ApplicationId。
ikey 是引入服务用于将遥测与特定 Application Insights 资源关联的唯一标识符。 Ikey 唯一标识符不是安全令牌或安全密钥,也不被视为机密。通过添加 ApplicationId 值来增强连接字符串。 此更新是一项新功能,支持自动检测使用 Open Telemetry SDK 的方案。
- 可靠性:连接字符串通过删除全局引入终结点上的依赖项提高遥测引入的可靠性。
- 安全性:连接字符串允许通过使用 Application Insights 的 Microsoft Entra 身份验证引入经过身份验证的遥测。
- 自定义终结点(主权或混合云环境):终结点设置允许将数据发送到特定的 Azure 政府区域。 (请参阅示例。)
- 隐私(区域终结点):连接字符串通过将数据发送到区域终结点来解决隐私问题,从而确保数据不会离开某一地理区域。
连接字符串显示在 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
有关详细信息,请参阅需要修改终结点的区域。
-
遥测引入:
dc
-
实时指标:
live
-
适用于 .NET 的 Profiler:
profiler
-
快照:
snapshot
下面是连接字符串的一些示例。
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 的 Profiler:
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 的 Profiler:
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
- Python v1.0.0
- Java v3.1.1
可以通过代码、环境变量或配置文件设置连接字符串。
连接字符串:APPLICATIONINSIGHTS_CONNECTION_STRING
语言 | 经典 API | OpenTelemetry |
---|---|---|
ASP.NET Core | Application Insights SDK | AzMon OTel 分发版 |
.NET 框架 | Application Insights SDK | AzMon 导出程序 |
爪哇岛 | 空值 | Java 代理 |
Javascript | JavaScript (Web) SDK 加载程序脚本 | 空值 |
Node.js | Application Insights SDK | AzMon OTel 分发版 |
Python语言 | OpenCensus Python SDK | AzMon OTel 分发版 |
本部分提供常见问题的解答。
新的 Azure 区域要求使用连接字符串而不是检测密钥。 连接字符串会标识出要与遥测数据相关联的资源。 它还允许你修改可供你的资源将其用作遥测目标的终结点。 复制连接字符串,并将其添加到应用程序的代码或添加到环境变量中。
建议使用连接字符串,而不是检测密钥。
在所有系统未自动提供 APPLICATIONINSIGHTS_CONNECTION_STRING
的场景中,手动设置它。 这些方案包括但不限于:使用 ASP.NET Core 集成的本地开发和 .NET 独立函数。 在这些情况下,环境变量可确保 OpenTelemetry 管道可以将遥测数据发送到 Application Insights。 有关使用环境变量配置连接字符串的详细信息,请参阅 在 Application Insights 中配置 OpenTelemetry。
若要满足区域数据符合性要求,请使用区域 Application Insights 终结点而不是全局终结点。 全局终结点不保证数据保留在特定区域中。 区域终结点有助于确保来自受管制区域中的用户的遥测仅发送到这些区域中的数据中心。
若要为全球web应用程序配置地区合规性,请执行以下步骤:
- 为每个区域创建一个符合性要求严格的 Application Insights 资源,例如中国东部 2 或中国北部 3。
- 为所有其他区域中的用户创建另一个 Application Insights 资源。
- 将应用程序配置为根据每个用户的区域将遥测数据发送到相应的 Application Insights 资源。 使用 IP 地址、帐户元数据或位置设置等信号确定区域。
- 如果需要跨区域提供统一的查询体验,请将所有 Application Insights 资源连接到 Log Analytics 工作区。
例如:
- 使用区域 A 连接字符串将数据从区域 A 用户发送到区域 A Application Insights 资源。
- 使用区域 B 连接字符串将数据从区域 B 用户发送到区域 B Application Insights 资源。
- 使用其他连接字符串将所有其他用户数据发送到常规用途 Application Insights 资源。
重要
使用全局终结点不确保区域合规性。 若要满足数据驻留要求,请始终使用特定于区域的终结点,并基于用户的区域路由遥测。
下图显示了全局 Web 应用程序的示例设置:
在运行时开始使用:
在开发时开始使用: