我正在使用Jaeger UI来显示应用程序中的跟踪。如果两个应用程序和Jaeger都在同一台服务器上运行,这对我来说很好。但我需要在另一台服务器上运行我的Jaeger收集器。我试用了JAEGER_ENDPOINT、JAEGER_AGENT_HOST和JAEGER-AGENT_PORT,但失败了。
我不知道,我为这些变量设置的值是否错误。是否需要在应用程序代码中进行任何配置设置?
你能为我提供这个问题的任何文件吗?
在服务器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
在服务器1中更改跟踪程序注册应用程序代码,如下所示,以便从环境变量中获取配置。
@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实例停止,跟踪就不会删除。如何使用弹性搜索配置Jaeger?
指定"JAEGER_AGENT_HOST">并确保";local_agent";未在跟踪程序配置文件中指定
以下是Python的工作解决方案
import os
os.environ['JAEGER_AGENT_HOST'] = "123.XXX.YYY.ZZZ" # Specify remote Jaeger-Agent here
# os.environ['JAEGER_AGENT_HOST'] = "16686" # optional, default: "16686"
from jaeger_client import Config
config = Config(
config={
'sampler': {
'type': 'const',
'param': 1,
},
# ENSURE 'local_agent' is not specified
# 'local_agent': {
# # 'reporting_host': "127.0.0.1",
# # 'reporting_port': 16686,
# },
'logging': True,
},
service_name="your-service-name-here",
)
# create tracer object here and voila!
Jaeger的指导:https://www.jaegertracing.io/docs/1.33/getting-started/
Jaeger客户端功能:https://www.jaegertracing.io/docs/1.33/client-features/
烧瓶打开跟踪:https://github.com/opentracing-contrib/python-flask
OpenTelemetry Python:https://opentelemetry.io/docs/instrumentation/python/getting-started/