【问题标题】:Configure Multiple JaegerGrpcSpanExporter to spring boot application将多个 JaegerGrpcSpanExporter 配置为 spring boot 应用程序
【发布时间】:2020-07-27 14:11:38
【问题描述】:

我尝试在我的应用程序中配置多个JaegerGrpcExpanExporter(在 Open-Telemetry 框架中提供)以实现以下用例:

JaegerGrpcExpanExporter 服务名称为“控制器”, 服务名称为“service”的JaegerGrpcExpanExporter 和服务名称为“util”的JaegerGrpcExpanExporter 并将它们注册到OpenTelemetrySdk。

类型为“controller”的 span 应该导出到配置了“controller”服务名称的导出器,而不是其他人,util 和 service 应该遵循类似的过程。

但它的行为与预期不符,即带有“controller”、“service”和“util”的 span 已导出到所有并行注册的 JaegerGrpcExpanExporter。

以下是我的配置,你有什么建议可以实现。

public BatchSpansProcessor getJaegerSpanProcessor(String serviceName) { 
    return BatchSpansProcessor.newBuilder( 
        JaegerGrpcSpanExporter.newBuilder().setServiceName(serviceName). setChannel(ManagedChannelBuilder.forAddress(localhost,14250).usePlaintext(). build()
    ).build();
}

   

public void addJaegereProcessorToSdk(){
    String[] serviceName={"controller", "service", "util"};
    TracerSdkProvider tracerSdkProvider=OpenTelemetrySdk.getTracerProvider;
    for(String service:serviceName)
        tracerSdkProvider.addSpanProcessor(getJaegerSpanProcessor(service));
}

【问题讨论】:

    标签: java spring-boot open-telemetry


    【解决方案1】:

    供应商生成的任何跨度都将导出到所有注册的出口商。您可以使用多个提供程序,每个提供程序都有一个单独的 Jaeger 导出器。我不确定 Jaeger 是否支持被 OpenTelemetry Resources 覆盖的服务名称,但那将是最好的选择(并且只有一个提供者)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-03
      • 2021-11-16
      • 2016-06-12
      • 1970-01-01
      • 2015-11-25
      • 1970-01-01
      • 2018-11-07
      • 1970-01-01
      相关资源
      最近更新 更多