对OpenTelemetry
的概念有初步了解后,我们接着以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
的初始化逻辑,代码地址:https://github.com/gogf/gf/tree/master/contrib/trace/jaeger
普通数组package mainimport ("fmt""github.com/gogf/gf/v2/container/garray")func main () {// 创建并发安全的int类型数组a :=...
通常,删除方法被命名为 delete()。该方法立刻删除对象,并返回被删除的对象数量和一个包含了每个被删除对象类型的数量的字...
到目前为止,我们已经处理了被查询模型字段的聚合。然而,有时候想聚合的值属于你正在查询模型的关联模型。当在聚合函数中指定要...
有时你需要执行与当前数据库事务相关的操作,但前提是事务成功提交。Django提供了on_commit()函数来注册在事务成功提交后应该执...
ASP.NET Calendar CellPadding 属性 Calendar 控件定义和用法 CellPadding 属性用于设置日历单元格边框与其内容之间的空白。 语...
ASP.NET ImageButton ValidationGroup 属性 ImageButton 控件定义和用法 ValidationGroup 属性规定了在验证时被验证的控件组。 ...
ASP.NET AdRotator 控件 Web 服务器控件定义和用法 AdRotator 控件用于显示图像序列。 该控件使用 XML 文件来存储 ad 信息。XML ...
ASP.NET Button CausesValidation 属性 Button 控件定义和用法 CausesValidation 属性规定当 Button 控件被点击时是否验证页面。...