ServiceFabric ApiGateway 上的 ApplicationInsights end-2-end 中断

ApplicationInsights end-2-end breaks on ServiceFabric ApiGateway

全部,

我在 ApplicationInsights 中设置端到端事务监视时遇到了一些问题,它似乎破坏了我的 ServiceFabric ApiGateway 服务 (.net CORE) 上的端到端视图。这会在 AppInsights 中产生 2 个跟踪而不是 1 个(我想要 ;-)。

好的我的设置:

因此,外部 API(.net 核心)通过 HTTP 与 SF 集群中的 ApiGateway(.net 核心无状态服务)通信。在 SF 集群中,所有服务(无状态完整 .net)通信均通过 Remoting V2。

我使用 ex 设置 ApplicationInsights。 : https://github.com/yantang-msft/service-fabric-application-insights-example

在 ApplicationInsights 中,我看到 2 条轨迹(应该是一条),它们是:

从 API 网关向下发送消息时,似乎没有重复使用“操作 ID”。在 AppInsights 中我可以看到不同的“操作 ID”。

有人有想法吗?我错过了什么吗?我应该在 ApiGateway 中为传出请求设置操作 ID(我该怎么做 ;-))

经过一番接触 (https://github.com/microsoft/ApplicationInsights-ServiceFabric/issues/115),问题变得清晰了。

因为新版本的AppInsight使用了新的协议,在.net版本的库中。 您可以强制 AppInsights 使用“旧”协议,然后端到端跟踪再次起作用。您可以通过将 ActivityIDformat 属性 设置为传统格式来实现这一点,如下所示。 (在应用程序启动的某处)

Activity.DefaultIdFormat = ActivityIdFormat.Hierrachical;
Activity.ForceDefaultIdFormat = true;