我有一个面向公众的API,它调用后端Web应用程序,后者又调用另一个API(在与第一个API相同的API管理实例中)进行外部调用。
我的Web应用程序是使用Apache HTTP客户端的Spring Boot,并且为AI配置了SDK,我可以通过依赖性调用看到AppInsights。但此时,对下一个APIMgmt API的调用会创建一个不相关的新请求,并显示为单独的操作(但使用正确的BACKEND事件)。
我已经尝试从我的Apache客户端到API的passing "Request-Id" and "Correlation-Context"(未修改)。 App Insights显示但在错误的父级下,并且没有BACKEND事件。
我如何关联这一系列事件?
经过大量的测试,调试和阅读。这是可行的,但您必须从调用代码中访问RequestTelemetry以获取正确的Request-Id标头值。
RequestTelemetryContext ctx = ThreadContext.getRequestTelemetryContext();
RequestTelemetry reqTel = ctx.getHttpRequestTelemetry();
String currentRequestId = reqTel.getId();