在 OpenTelemetry 中有提到 trace 的概念。而 Trace 由多个 Span 组成。今天的内容组要是针对 Jaeger 这个服务进行简易的介绍,并使用官方提供范例来搭建环境。
一个 span 代表系统中具有开始时间和执行时长的逻辑运行单元。会有以下资讯:
可在调用服务之间进行传送。包含从父 Span 传播到子 Span 的追踪标识和选项。
每个 Span 包含如下状态:
详细内容可参考 opentelemetry 此链接或 opentracing 参考资源
用於监控和诊断基於微服务的分散式系统,包括以下
在 Jaeger 中工作单元为 Span,该 Span 有触发时间、持续时间,并利用嵌套方式建立父子因果关系。一个 Trace 是一个执行路径,可说是是由一组 Span 定义的有向无环图(DAG)组合。
官方描述可直接将数据写入 DB 或是使用 Kafka 做一个缓冲在送至 DB。
为一个守护程序,监听 UDP 端口发送的 Span,然後将其分批发送给收集器(jaeger-collector)。他为一个基本组件,将会布署至每台主机,
从 Jaeger Agent 接收 tracing,并藉由管道运行处里它们。管道中会验证 tracing,为其建立索引,执行任何转换最後储存它们。
是一项从储存中检索追踪并交给 UI 来显示追踪的服务
是一个从 Kafka topic 读取并写入储存後端(Elasticsearch等)的服务。
启动 Jaeger 服务,但这边需要启用 Elasticsearch 作为储存。
docker run -it -d --name=jaeger -e SPAN_STORAGE_TYPE=elasticsearch -e ES_SERVER_URLS=http://192.168.101.129:3001 -e ES_TAGS_AS_FIELDS_ALL=true -p 3006:16686 jaegertracing/opentelemetry-all-in-one
官方提供的测试数据
docker run --rm --link jaeger --env JAEGER_AGENT_HOST=jaeger --env JAEGER_AGENT_PORT=6831 -p8080-8083:8080083 jaegertracing/example-hotrod:latest all
UI 呈现
明天会使用 Spring boot 作为范例,结合 Opentelemetry 和 Jaeger 来实现链路追踪。更详细的细节可以直接看官方
>>: [第九天]从0开始的UnityAR手机游戏开发-介绍Unity写程序的基本语法。
这是 Roblox 从零开始系列,入门章节的第十六个单元,今天你想亲手制作在海洋上的安静孤岛,就由你...
Challenges and risks with AI Bias can affect resul...
前面有介绍过 Module 的一些基本使用方式,然而有一项非常强大的功能没有被提及,就是 动态模组(...
今天迈入第7天,根据计画,前几天我们介绍了一些登录档的基础知识和前置作业,假设读者跟笔者一样略懂略懂...
铁人30天,实际在不简单,在这30天的过程,中间一度想要放弃、不知道要写什麽。 能持续产出优质文章的...