分布式跟踪

概述

可观测性microservice-oriented应用的一个重要方面。可观测性的关键因素之一分布式跟踪

提供额外的预防措施是必要的,当一个应用程序将记录写入数据库,由Debezium后加工。开云体育官方注册网址开云体育电动老虎机积极跟踪被写入到数据库有效地划分。开云体育电动老虎机如果我们想要Debez开云体育官方注册网址ium加入更大范围应用示踪剂,我们需要通过跟踪Debezium元数据。

添加到Debezium通过跟踪支持开云体育官方注册网址OpenTracing规范。还需要提供一个客户端实现规范。开云体育官方注册网址Debezium测试与Jaeger实现。

无论是规范JAR文件还是Jaeger客户机是Debezium卡夫卡的一部分连接容器的形象。开云体育官方注册网址用户需要扩展图像与他们或可以使用Strimzi卡夫卡的形象。在这种情况下,跟踪卡夫卡生产国和消费国的也可以。

看到组成文件的发件箱的例子

ActivateTracingSpan SMT

主要实现Debezium的跟踪点开云体育官方注册网址ActivateTracingSpanSMT。在这种情况下,应用程序写入数据库负责提供跟踪时间上下文。开云体育电动老虎机作者必须注入时间上下文java.util.Properties实例序列化并写入数据库作为一种独特的表的字段。开云体育电动老虎机

如果跨度上下文没有提供SMT将创建一个新的跨越。在这种情况下,Debeziu开云体育官方注册网址m业务元数据一起被追踪,但是不会将连接到端到端业务事务的痕迹来启用跟踪。

当这个SMT调用,那么它将:

  • 提取父上下文消息中如果存在

  • 创建事件db-log-write跨语境的开始时间戳将数据库日志写的时间戳开云体育电动老虎机

  • 插入字段块的跨越标签

  • 创建处理开云体育官方注册网址debezium-read作为一个孩子的db-log-writespan设置了开始时间戳的处理时间

  • 从信封中插入字段等人事处处理时间标签

  • 注入处理跨上下文消息头

卡夫卡生产跟踪

选择可以在卡夫卡生产商级别启用跟踪。如果启用,当消息被写入卡夫卡代理生产商将提取Debezium的处理从卡夫卡跨度上下文消息头,创建一个新的子跨度和记录信息写入到代理。开云体育官方注册网址然后它注入新的跨越到消息报头消息的消费者可以恢复跟踪和简历的端到端跟踪。

配置选项

配置属性

类型

默认的

tracing.span.context.field

字段的名称包含上下文。

发送方必须跨越上下文写入数据库列作为一个序列化的实例开云体育电动老虎机java.util.Properties与注射时间上下文。

字符串

tracingspancontext

tracing.operation.name

操作名称代表Debezium处理。开云体育官方注册网址

字符串

开云体育官方注册网址debezium-read

tracing.with.context.field.only

只有事件序列化上下文字段应该跟踪。

如果设置为真正的然后将创建跟踪跨度只有事件跟踪跨度上下文字段相关联。如果设置为然后创建跟踪跨所有传入的事件无论跨度上下文相关的。

布尔

发件箱扩展

的Deb开云体育官方注册网址eziumQuarkus扩展实现所需的发件箱模式提供了额外的功能跟踪上下文传播开箱即用的。具体地说,它提供了tracingspancontext发件箱表中的字段,用于通过跟踪跨语境从服务使用发件箱扩展Debezium连接器。开云体育官方注册网址

发件箱发送事件时,扩展将:

  • 创建一个新的outbox-write跨度作为当前活动的孩子

  • 注入时间上下文java.util.Properties实例序列化的tracingspancontext

  • 写记录到数据库中开云体育电动老虎机

发件箱中的跟踪集成扩展是自动启用如果也smallrye-opentracingQuarkus扩展。如果你想禁用跟踪支持扩展,尽管发件箱smallrye-opentracingQuarkus扩展,你可以通过设置一个选项禁用它quarkus.开云体育官方注册网址debezium-outbox.tracing.enabled = false在Quarkusapplication.properties文件。

活动路由器SMT

活动路由器SMT作为发件箱扩展,它执行相同的步骤ActivateTracingSpanSMT,用来代替它。