Skip to content
This repository has been archived by the owner on Sep 10, 2024. It is now read-only.

Testcontainer query does not work with current jaeger #64

Open
hacst opened this issue Jul 15, 2021 · 2 comments
Open

Testcontainer query does not work with current jaeger #64

hacst opened this issue Jul 15, 2021 · 2 comments
Labels
bug Something isn't working

Comments

@hacst
Copy link

hacst commented Jul 15, 2021

Describe the bug
Trying to establish a gRPC connection to 16686 fails with the current jaegertracing/all-in-one:1.24.0 as it is not http2 and presumably not gRPC. As documented in https://www.jaegertracing.io/docs/1.24/deployment/#query-service--ui gRPC query functionality is on port 16685 instead of 16686.

I created a patch at hacst@7749594 (untested right now) but I'm unsure how involved this would be to get landed.

To Reproduce
Steps to reproduce the behavior:

Any operation on the QueryServiceBlockingStub which initiates a request will fail with a failure to establish the underlying HTTP2 channel:

JaegerAllInOne jaeger = new JaegerAllInOne("jaegertracing/all-in-one:1.24.0")
jaeger.start();
jaeger.createBlockingQueryService().findTraces(...)

Expected behavior
Query completes without any connectivity issues

Version (please complete the following information):

  • io.jaegertracing:jaeger-testcontainers:0.7.0
  • jaegertracing/all-in-one:1.24.0
@hacst hacst added the bug Something isn't working label Jul 15, 2021
@hacst
Copy link
Author

hacst commented Jul 15, 2021

Workaround for the meantime:

class FixedJaegerAllInOne extends JaegerAllInOne {
  public static final int JAEGER_GRPC_QUERY_PORT = 16685;
  public FixedJaegerAllInOne(String dockerImageName) {
	  super(dockerImageName);
	  withExposedPorts(JAEGER_ADMIN_PORT,
			  JAEGER_COLLECTOR_THRIFT_PORT,
			  JAEGER_COLLECTOR_GRPC_PORT,
			  JAEGER_QUERY_PORT,
			  ZIPKIN_PORT,
			  JAEGER_GRPC_QUERY_PORT); // << Added grpc endpoint
  }

  @Override
  public QueryServiceBlockingStub createBlockingQueryService() {
	  ManagedChannel channel = ManagedChannelBuilder.forTarget(
			  String.format("%s:%d", jaeger.getContainerIpAddress(), jaeger.getMappedPort(JAEGER_GRPC_QUERY_PORT))).usePlaintext().build();
	  return QueryServiceGrpc.newBlockingStub(channel);
  }
}
JaegerAllInOne jaeger = new FixedJaegerAllInOne("jaegertracing/all-in-one:1.24.0");

@wakingrufus
Copy link

Thanks for the workaround @hacst !!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants