codecamp

GoFrame 链路跟踪-准备工作

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

Jaeger

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


准备工作

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

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

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


示例代码地址

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

Jaeger注册封装

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


GoFrame 链路跟踪-背景知识
GoFrame 链路跟踪-基本示例
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

GoFrame 核心组件

GoFrame 核心组件-数据库ORM

GoFrame 模块列表

GoFrame 模块列表-单元测试

GoFrame 模块列表-功能调试

GoFrame WEB服务开发

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }