代码属性语义约定稳定性迁移指南
实验性的 code.* 语义约定已在 v1.33.0 中升为稳定版本。本指南概述了这些重大更改,并为采用稳定属性的插装和遥测后端提供了迁移指导。
插装作者可以使用标准的 OTEL_SEMCONV_STABILITY_OPT_IN 迁移方法。使用时,它应支持 code 和 code/dup 值。
更改摘要
本节总结了从 v1.29.0 到 v1.33.0 代码属性语义约定所做的更改。
| 更改 | 注释 |
|---|---|
code.lineno → code.line.number | |
code.column → code.column.number | |
code.filepath → code.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