以编程方式为 ApplicationsInsights 设置不同的 InstrumentationKeys

Set different InstrumentationKeys for ApplicationsInsights programmatically

我在 ASP.NET Core 3 API 中使用 Application Insights - 并通过 Startup.cs 中的 appsettings.json 通过以下方式传递 InstrumentationKey:

services.AddApplicationInsightsTelemetry(Configuration);

行得通。但是我想根据其他参数使用不同的InstrumentationKeys

如何使用其他键启动 AI(全部在 appsettings.json 或代码中定义)?

有多种方法。

如果您手动(通过 Track 方法)发射遥测项目,那么一种选择是在项目本身上明确设置它。这是为 RequestTelemetry through TelemetryContext.InstrumentationKey 属性.

设置的示例
var requestTelemetry = new RequestTelemetry();
requestTelemetry.Context.InstrumentationKey = "<your key>";

另一种选择是用 Telemetry Initializer 覆盖此值。

另一种选择是拥有一个单独的遥测客户端(具有不同的检测密钥)。但我不确定如何在 .NET Core 中实现这一点。