分布式跟踪
概述
可观察性是微服务应用程序的一个重要方面。可观察性的一个关键因素是分布式跟踪.
当应用程序将记录写入数据库,然后由Debezium处理时,有必要提供额外的预防措施。开云体育官方注册网址开云体育电动老虎机通过对数据库的写入有效地划分了活动跟踪。开云体育电动老虎机如果我们希望Debez开云体育官方注册网址ium加入更大范围的应用程序跟踪程序,我们需要将跟踪元数据传递给Debezium。
跟踪支持是通过开云体育官方注册网址OpenTracing规范。还需要提供一个实现规范的客户端。开云体育官方注册网址Debezium是用Jaeger实现。
ActivateTracingSpan SMT
Debezium中跟踪的主要实现点是开云体育官方注册网址ActivateTracingSpan
SMT。在这种情况下,写入数据库的应用程序负责提供跟踪范围上下文。开云体育电动老虎机写入器必须将span上下文注入到java.util.Properties
实例,该实例被序列化并作为表的不同字段写入数据库。开云体育电动老虎机
如果没有提供span上下文,那么SMT将创建一个新的span。在这种情况下,Debeziu开云体育官方注册网址m操作和元数据将被跟踪,但不会连接到业务事务跟踪以支持端到端跟踪。
当这个SMT被一个消息调用时,它将:
如果在消息中出现,则提取父跨度上下文
创建事件
db-log-write
跨度上下文,并将开始时间戳设置为数据库日志写入时间戳开云体育电动老虎机插入字段
源
块的跨度为标签创建流程
开云体育官方注册网址debezium-read
的孩子db-log-write
Span的开始时间戳设置为偶数的处理时间从信封中插入字段,例如
人事处
进入处理的跨度为标签将处理范围上下文注入消息头
Kafka生产者跟踪
也可以选择在Kafka生产者级别启用跟踪。如果启用,那么当消息被写入Kafka代理时,生产者将从Kafka消息头中提取Debezium的处理跨度上下文,创建一个新的子跨度并记录关于写入代理的信息。开云体育官方注册网址然后,它将新的span注入到消息头中,以便消息的使用者可以恢复跟踪并恢复端到端跟踪。
配置选项
配置属性 |
类型 |
默认的 |
|
字符串 |
tracingspancontext |
|
字符串 |
开云体育官方注册网址debezium-read |
|
布尔 |
假 |
发件箱扩展
的Deb开云体育官方注册网址eziumQuarkus扩展为了实现发件箱模式,提供了即时跟踪上下文传播所需的额外功能。具体来说,它提供了tracingspancontext
字段,用于将跟踪范围上下文从使用发件箱扩展的服务传递到Debezium连接器。开云体育官方注册网址
当一个发件箱事件被触发时,扩展将:
创建一个新的
outbox-write
Span作为当前活动Span的子Span将span上下文注入其中
java.util.Properties
实例的tracingspancontext
列将记录写入数据库开云体育电动老虎机
如果还启用了发件箱扩展中的跟踪集成,则自动启用smallrye-opentracing
夸克扩展存在。如果要禁用对发件箱扩展的跟踪支持,尽管smallrye-opentracing
夸克扩展是存在的,你可以通过设置一个选项禁用它quarkus.开云体育官方注册网址debezium-outbox.tracing.enabled = false
在夸克中application.properties
文件。
事件路由器SMT
的事件路由器SMT作为发件箱扩展对应物,它执行与ActivateTracingSpan
SMT,并被用来代替它。