c# - ServiceFabric ApiGateway 上的 ApplicationInsights 端到端中断
问题描述
全部,
我在 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 和 ApiGateWay 的跟踪以及对无状态服务的请求
- 包含无状态服务(多个)之间通信的跟踪
从 APIGateway 向下发送消息时,看起来“操作 ID”没有被重用。AppInsights 我可以看到“操作 ID”不同。
有人有想法吗?我错过了什么?我是否应该在 ApiGateway 中的传出请求上设置操作 ID(我该怎么做 ;-))
解决方案
经过一些联系(https://github.com/microsoft/ApplicationInsights-ServiceFabric/issues/115),问题变得清晰起来。
这是因为新版本的 AppInsight 使用了新协议,该协议位于 .net 版本的库中。您可以强制 AppInsights 使用“旧”协议,然后端到端跟踪再次工作。您可以通过将 ActivityIDformat 属性设置为旧版,如下所示。(在应用程序启动的某个地方)
Activity.DefaultIdFormat = ActivityIdFormat.Hierrachical;
Activity.ForceDefaultIdFormat = true;
推荐阅读
- c++ - 如何将 cpplint.py 检查添加到 CMake 中?
- python - 如何从外部访问连接到路由器的 Kafka Multicluster?
- c# - 如何在从基类需要注入服务的基类继承的类中编写类构造函数?
- javascript - 带有负密钥的 JavaScript 中的凯撒密码
- javascript - Node + Express,JWT auth 问题——我没看清楚
- python - 如何查找局域网中的主机列表?
- android - 带有图像的 Android Studio 抽认卡
- julia - 如何在 Julia 的条件内传递参数?
- angular - ANGULAR 7 - 在“{}”类型上找不到带有“字符串”类型参数的索引签名
- php - 在显示产品名称的 WooCommerce 管理订单列表中添加新列时出现问题