快速上手
依赖:安装 docker 环境。
快速搭建 jaeger
docker run -d --name jaeger \
-e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \
-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:1.7
运行一个 go 的 demo
docker run \
--rm \
--link jaeger \
--env JAEGER_AGENT_HOST=jaeger \
--env JAEGER_AGENT_PORT=6831 \
-p8080-8083:8080-8083 \
jaegertracing/example-hotrod:latest \
all
浏览器打开 http://localhost:8080/
该应用提供打车服务,有四个消费者在页面上对应四个按钮,你点击任意一个,就会出现如下的信息
HotROD T732222C arriving in 2min [req: 8926-1, latency: 10289ms]
其中 T732222C 可以理解为车牌号,2 min 表示该车 2 min 之后到。 8926-1 中的 8926 是客户端 id,1 代表第 1 个请求,10289ms 表示该请求耗时。
浏览器打开 http://localhost:16686
在 http://localhost:16686/dependencies 可以查看该服务的架构
显示有四个微服务 front,custom,driver,route,一个 redis,一个 mysql 数据。front 访问 custom,driver,route, custom 访问 mysql,driver 访问 redis
在 http://localhost:16686/search 可以查看微服务的服务流
具体流程
运行一个 java 的 demo
http://www.hawkular.org/blog/2017/06/26/opentracing-appmetrics.html
https://github.com/objectiser/opentracing-prometheus-example
https://github.com/opentracing-contrib/java-metrics
http://www.hawkular.org/blog/2017/06/9/opentracing-spring-boot.html
http://www.hawkular.org/blog/2017/06/26/opentracing-appmetrics.html
http://www.hawkular.org/blog/2016/04/19/jmxtrans-to-hawkular-metrics.html
https://github.com/candyleer/jaeger-java-hello-world
https://github.com/iwahiro/op-spring-cloud-source
https://github.com/iwahiro/op-spring-cloud-sink
https://github.com/jiuchongxiao/istio-sample-springboot-jaeger-v0.3
https://github.com/jiuchongxiao/istio-sample-springboot-jaeger-v0.2
https://github.com/iwahiro/op-spring-cloud-source
https://github.com/yurishkuro/opentracing-tutorial/tree/master/java
https://github.com/candyleer/jaeger-java-hello-world
https://github.com/gsoria/jaeger-client-examples/tree/master/jaeger-client-java-example
https://github.com/maurocanuto/distributed-tracing-opencensus
集成 opencensus
https://opencensus.io/guides/exporters/supported-exporters/java/jaeger/
skywalking
https://www.cnblogs.com/xiaoqi/p/skywalking-usage.html
https://my.oschina.net/u/437309/blog/1920725
https://www.cnblogs.com/xiaoqi/p/apm.html
https://github.com/apache/incubator-skywalking
java程序启动时,增加JVM启动参数,-javaagent:/path/to/agent/skywalking-agent.jar。参数值为skywalking-agent.jar的绝对路径
# 当前的应用编码,最终会显示在webui上。
# 建议一个应用的多个实例,使用有相同的application_code。请使用英文
agent.application_code=Your_ApplicationName
# 每三秒采样的Trace数量
# 默认为负数,代表在保证不超过内存Buffer区的前提下,采集所有的Trace
# agent.sample_n_per_3_secs=-1
# 设置需要忽略的请求地址
# 默认配置如下
# agent.ignore_suffix=.jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg
# 探针调试开关,如果设置为true,探针会将所有操作字节码的类输出到/debugging目录下
# skywalking团队可能在调试,需要此文件
# agent.is_open_debugging_class = true
# 对应Collector的config/application.yml配置文件中 agent_server/jetty/port 配置内容
# 例如:
# 单节点配置:SERVERS="127.0.0.1:8080"
# 集群配置:SERVERS="10.2.45.126:8080,10.2.45.127:7600"
collector.servers=127.0.0.1:10800
# 日志文件名称前缀
logging.file_name=skywalking-agent.log
# 日志文件最大大小
# 如果超过此大小,则会生成新文件。
# 默认为300M
logging.max_file_size=314572800
# 日志级别,默认为DEBUG。
logging.level=DEBUG