代码属性语义约定稳定性迁移指南

实验性的 code.* 语义约定已在 v1.33.0 中升为稳定版本。本指南概述了这些重大更改,并为采用稳定属性的插装和遥测后端提供了迁移指导。

插装作者可以使用标准的 OTEL_SEMCONV_STABILITY_OPT_IN 迁移方法。使用时,它应支持 codecode/dup 值。

更改摘要

本节总结了从 v1.29.0v1.33.0 代码属性语义约定所做的更改。

更改注释
code.linenocode.line.number
code.columncode.column.number
code.filepathcode.file.path
code.namespace已移除,已整合到 code.function.name
code.function已移除,已整合到 code.function.name
新增:code.function.name请参阅下文的定义和示例

code.function.name 定义如下

方法或函数的完全限定名(不含参数)。该值应符合语言运行时的自然表示,这也很可能与 code.stacktrace 属性值中使用的表示相同。

示例

  • Java 方法:com.example.MyHttpService.serveRequest
  • Java 匿名类方法:com.mycompany.Main$1.myMethod
  • Java lambda 方法:com.mycompany.Main$$Lambda/0x0000748ae4149c00.myMethod
  • PHP 函数:GuzzleHttp\Client::transfer
  • Go 函数:github.com/my/repo/pkg.foo.func5
  • Elixir:OpenTelemetry.Ctx.new
  • Erlang:opentelemetry_ctx:new
  • Rust:playground::my_module::my_cool_func
  • C 函数:fopen