OpenTelemetry笔记(1)-基础概念
概念
追踪(Tracing)
表示一次分布式链路跟踪
如下图,一整个流程表示一次 Tracing
Tracer
Tracer 负责创建 spans 和并与上下文交互
TracerProvider
Tracer 的提供者,用于创建 Tracer
1 | public interface TracerProvider { |
默认实现 SdkTracerProvider
SdkTracerProvider 是 TracerProvider 的默认实现
1 | SdkTracerProvider tracerProvider = SdkTracerProvider.builder() |
Span
表示分布式链路跟踪中的一条数据
如下图,每个树节点的数据表示一个 Span
SpanExporter
负责将产生的 Span 数据发送到特定的后端,比如 SLS 的 Trace 服务,就是一个 Exporter
SpanExporter 接口定义
SpanExporter 接口实现
其中 OtlpGrpcSpanExporter 实现了远程数据的传输
OtlpGrpcSpanExporter 实例定义
1 | OtlpGrpcSpanExporter grpcSpanExporter = OtlpGrpcSpanExporter.builder() |
参考:https://help.aliyun.com/document_detail/208901.html
Span 处理器(SpanProcessor)
SpanProcessor 定义
SpanProcessor 用于定义如何将产生的 Span 数据,通过 SpanExporter 进行传输
SpanProcessor 接口实现
- SimpleSpanProcessor 将结束的 Span 立即转发到 SpanExporter
- BatchSpanProcessor 对它们进行批处理并批量发送它们
- MultiSpanProcessor 将多个 Span 处理器配置为同时处于活动状态
示例
1 | private void spanProcessorTest() { |