事件跟踪:通过调用过程从父角色到子角色跟踪 IDs (待定)

注意

此行为变更包含在 2024_04 捆绑包中。

有关捆绑包的当前状态,请参阅 捆绑包历史记录

变更前:

链式 Java 和 Scala 存储过程或 UDFs 创建的每个 Span 的 trace_id 都是唯一的。

事件表的 RECORD 列中不存在 parent_span_id 字段。

Native App 提供商和使用者看的的共享事件的 trace_id 值不同。提供商看到可以看到经过哈希处理的版本。

变更后:

由链式 Java 和 Scala 存储过程生成的 Span,或具有相同 trace_id 的 UDFs。具有 parent_span_id 属性的 RECORD 列。

由链式 Java 和 Scala 存储过程生成的 Span,或者在 parent_span_idspan_id 之间存在父子关系的 UDFs 。Java 和 Scala 存储过程可以调用任意长度的链中的其他存储过程。(UDFs 无法执行 SQL 语句,因此调用 UDF 结束链。但是,跟踪信息仍会传播到 UDF 的 span。

如果用户直接调用 Java 或 Scala 存储过程或 UDF (根),那么 trace_id 将是随机的 ID,而且不会有 parent_span_id。如果对存储过程禁用了跟踪,并且它调用了另一个存储过程或 UDF,则子级 span 的 trace_id 将是随机的,并且不会有 parent_span_id。换言之,将在子级重新启动跟踪。

Native App 提供商和使用者看的共享 Java 或 Scala 存储过程或 UDF 事件的 trace_id 相同,因此可以更轻松地进行调试。

参考:1592

语言: 中文