如何将Opentracing应用程序连接到远程Jaeger收集器

如何将Opentracing应用程序连接到远程Jaeger收集器,opentracing,jaeger,Opentracing,Jaeger,我正在使用Jaeger UI显示来自应用程序的跟踪。若两个应用程序和Jaeger都在同一台服务器上运行,那个么对我来说就可以了。但我需要在不同的服务器上运行Jaeger收集器。我尝试使用JAEGER_端点、JAEGER_代理_主机和JAEGER_代理_端口,但失败了 我不知道这些变量的值设置是否错误。应用程序代码中是否需要任何配置设置 您能为我提供有关此问题的任何文档吗?在服务器2中,安装jaeger $ docker run -d --name jaeger \ -p 5775:5775/

我正在使用Jaeger UI显示来自应用程序的跟踪。若两个应用程序和Jaeger都在同一台服务器上运行,那个么对我来说就可以了。但我需要在不同的服务器上运行Jaeger收集器。我尝试使用JAEGER_端点、JAEGER_代理_主机和JAEGER_代理_端口,但失败了

我不知道这些变量的值设置是否错误。应用程序代码中是否需要任何配置设置


您能为我提供有关此问题的任何文档吗?

在服务器2中,安装jaeger

$ docker run -d --name jaeger \
  -p 5775:5775/udp \
  -p 6831:6831/udp \
  -p 6832:6832/udp \
  -p 5778:5778 \
  -p 16686:16686 \
  -p 14268:14268 \
  -p 9411:9411 \
  jaegertracing/all-in-one:latest
在服务器1中,设置这些环境变量

JAEGER_SAMPLER_TYPE=probabilistic 
JAEGER_SAMPLER_PARAM=1 
JAEGER_SAMPLER_MANAGER_HOST_PORT=(EnterServer2HostName):5778 
JAEGER_REPORTER_LOG_SPANS=false 
JAEGER_AGENT_HOST=(EnterServer2HostName)
JAEGER_AGENT_PORT=6831 
JAEGER_REPORTER_FLUSH_INTERVAL=1000 
JAEGER_REPORTER_MAX_QUEUE_SIZE=100 
application-server-id=server-x
@Produces
@Singleton
public static io.opentracing.Tracer jaegerTracer() {
String serverInstanceId = System.getProperty("application-server-id");
if(serverInstanceId == null) {
serverInstanceId = System.getenv("application-server-id");
}
return new Configuration("ApplicationName" + (serverInstanceId!=null && !serverInstanceId.isEmpty() ? "-"+serverInstanceId : ""), 
                Configuration.SamplerConfiguration.fromEnv(),
                Configuration.ReporterConfiguration.fromEnv())
                .getTracer();
}
在服务器1中更改跟踪程序注册应用程序代码,如下所示,以便从环境变量中获取配置

JAEGER_SAMPLER_TYPE=probabilistic 
JAEGER_SAMPLER_PARAM=1 
JAEGER_SAMPLER_MANAGER_HOST_PORT=(EnterServer2HostName):5778 
JAEGER_REPORTER_LOG_SPANS=false 
JAEGER_AGENT_HOST=(EnterServer2HostName)
JAEGER_AGENT_PORT=6831 
JAEGER_REPORTER_FLUSH_INTERVAL=1000 
JAEGER_REPORTER_MAX_QUEUE_SIZE=100 
application-server-id=server-x
@Produces
@Singleton
public static io.opentracing.Tracer jaegerTracer() {
String serverInstanceId = System.getProperty("application-server-id");
if(serverInstanceId == null) {
serverInstanceId = System.getenv("application-server-id");
}
return new Configuration("ApplicationName" + (serverInstanceId!=null && !serverInstanceId.isEmpty() ? "-"+serverInstanceId : ""), 
                Configuration.SamplerConfiguration.fromEnv(),
                Configuration.ReporterConfiguration.fromEnv())
                .getTracer();
}
希望这能奏效

检查此链接,将elasticsearch集成为持久性存储后端,以便在Jaeger实例停止后不会删除跟踪。