Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

OpenTelemetry的概念有初步了解后,我们接着以Jaeger为例来演示如何在程序中使用实现链路追踪。

Jaeger

Jaeger\ˈyā-gər\ 是Uber开源的分布式追踪系统,是支持OpenTelemetry的系统之一,也是CNCF项目。本篇将使用Jaeger来演示如何在系统中引入分布式追踪。以下是Opentracing+Jaeger的架构图,针对于使用OpenTelemetry也是如此。

准备工作

Jaeger提供了all-in-one镜像,方便我们快速开始测试:

Code Block
languagebash
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.14


Info

如果docker镜像拉取太慢,您可以尝试修改docker拉取站点的镜像地址,例如:http://mirrors.ustc.edu.cn/help/dockerhub.html?highlight=docker

镜像启动后,通过 http://localhost:16686 可以打开Jaeger UI

示例代码地址

我们的示例代码在gf主库中,地址:https://github.com/gogf/gf/tree/master/example/trace

Jaeger注册封装(即将在2.6.0版本移除)

为方便开发者使用,我们通过社区模块的形式,已经封装好了对jaeger的初始化逻辑,代码地址:https://github.com/gogf/gf/tree/master/contrib/trace/jaeger

OTEL

OTLP HTTP注册封装

为方便开发者使用,我们通过社区模块的形式,已经封装好了对otelhttp的初始化逻辑,代码地址:https://github.com/gogf/gf/tree/master/contrib/trace/otelhttpotlphttp

OTEL

OTLP GRPC注册封装

为方便开发者使用,我们通过社区模块的形式,已经封装好了对otelgrpc的初始化逻辑,代码地址:https://github.com/gogf/gf/tree/master/contrib/trace/otlpgrpc





Panel
titleContent Menu

Table of Contents