应用程序无法从istio容器向Jaeger报告

时间:2018-08-16 13:42:22

标签: java istio jaeger

我的Java代码:

Class.forName("com.mysql.jdbc.Driver");
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:tracing:mysql://my-db:3306/my-db");
config.setUsername("user");
config.setPassword("pwd");
config.setDriverClassName("io.opentracing.contrib.jdbc.TracingDriver");
HikariDataSource ds = new HikariDataSource(config);

// some db operation

我的gradle依赖项:

compile('io.opentracing.contrib:opentracing-jdbc:0.0.7')
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework:spring-jdbc:5.0.8.RELEASE')
compile group: 'io.opentracing.contrib', name: 'opentracing-jdbc', version: '0.0.7'
compile('io.jaegertracing:jaeger-client:0.30.4')
compile group: 'org.springframework.boot', name: 'spring-boot-starter-logging', version: '2.0.4.RELEASE'
compile('com.zaxxer:HikariCP:3.1.0')
runtime('mysql:mysql-connector-java')
providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')
testCompile('org.springframework.boot:spring-boot-starter-test')

此代码可在localhost运行。

我已经将JAEGER_AGENT_HOSTJAEGER_AGENT_PORT环境传递给了容器。

我可以在远程看到Jaeger Initialized日志:

  

使用UDP发送器将跨度发送到代理。   使用发送者UdpSender(udpTransport = ThriftUdpTransport(socket=java.net.DatagramSocket@27e16046,receiveBuf = null,receiveOffSet = -1,receiveLength = 0))   使用发送者UdpSender(udpTransport = ThriftUdpTransport(socket=java.net.DatagramSocket@27e16046,receiveBuf = null,receiveOffSet = -1,receiveLength = 0))   2018-08-16 13:24:32.809信息1-[[http-nio-8080-exec-1] io.jaegertracing.Configuration:初始化的tracer = JaegerTracer(version = Java-0.30.4,serviceName =

但是我可以在Jaeger UI中看到它。

我尝试使用tcpdump,但找不到udp软件包。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。 它与采样率有关。 配置JAEGER_SAMPLER_TYPEJAEGER_SAMPLER_PARAM之后,我可以看到数据。