如何通过applicationinsights-agent让Java Web应用对接多个Application Insights
解答
核心结论
你使用的3.1.1版本Application Insights Java Agent,以及当前所有正式发布的Agent版本,均不原生支持从配置文件中直接配置多个生效的InstrumentationKey。Agent运行时只会读取一个全局生效的连接字符串/InstrumentationKey,同配置项重复定义时会触发覆盖逻辑,因此仅最后一个配置生效是预期行为。
推荐实现方案
你可以结合已经验证可行的TelemetryClient自定义方案,实现需求:
- 保留Agent配置文件中默认的InstrumentationKey,用于承接Agent自动采集的全链路遥测、JVM指标、依赖调用日志等默认上报数据,配置无需额外修改:
<envs> <env name="APPLICATIONINSIGHTS_CONNECTION_STRING" value="InstrumentationKey=第一个资源的iKey" /> </envs>
- 在代码中手动初始化第二个独立的
TelemetryClient实例,构造时指定第二个Application Insight资源的InstrumentationKey,所有需要上报到第二个资源的遥测数据,通过该自定义实例单独上报即可。 - 如果需要将Agent自动采集的遥测数据同时同步到第二个资源,可通过实现
TelemetryProcessor接口拦截Agent采集的全量遥测数据,复制后通过第二个自定义TelemetryClient上报即可。
内容的提问来源于stack exchange,提问作者Einz
相关产品推荐
相关产品推荐

