- Load Balance:Nginx
- Java:SpringBoot
- Agent:OpenTelemetry + Jaeger Trace Exporter + Prometheus Metric Exporter
- 可视化:Jaeger UI 、Prometheus UI
深入了解可观测体系下Traces概念和运行原理
mvn package -DskipTests=true
- target下把对应jar包重命名
otel.jar
,放到Dockerfile
文件同级目录
- Docker 环境,三个服务部署在一台服务器上,网络Host模式
## down
docker-compose -f /path/docker-compose.yml down
## start
docker-compose -f /path/docker-compose.yml up -d
Mac 用Docker Host 模式很坑,建议网络 bridge模式
networks:
jaeger:
services:
jaeger:
image: jaegertracing/all-in-one:1.29
networks:
- jaeger
其中 opentelemetry-javaagent.jar 是探针 otel.jar 是我们编译 jar 包
java -javaagent:/path/opentelemetry-javaagent.jar \
-Dotel.resource.attributes=service.name=trace-demo \
-Dotel.traces.exporter=jaeger \
-jar target/otel.jar
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 14250:14250 -p 9411:9411 \
jaegertracing/all-in-one:1.27
docker run -d \
-p 9090:9090 \
prom/prometheus
https://github.com/open-telemetry/opentelemetry-java-instrumentation
https://www.jaegertracing.io/docs/1.29/getting-started/
https://opentelemetry.io/docs/
如果有什么疑问和建议,欢迎提交issues,我会第一时间回复