跟踪语义约定
状态: 混合
在 OpenTelemetry 中,span 的创建是自由的,由实现者自行决定使用特定的属性来注释所表示的操作。Span 代表系统内部和系统之间的特定操作。其中一些操作代表使用 HTTP 或数据库调用等常用协议进行的调用。根据协议和操作类型,需要额外的信息才能在监控系统中正确表示和分析 span。统一不同语言中这种属性的设置方式也很重要。这样,操作员就不需要学习特定于某种语言的细节,并且仍然可以轻松地关联和交叉分析从多语言微服务环境中收集的遥测数据。
定义了以下 span 的语义约定
- 通用:描述不同类型操作可能使用的通用语义属性。
- 兼容性:用于由兼容性组件生成的 span,例如 OpenTracing Shim 层。
- CloudEvents:CloudEvents span 的语义约定。
- 云提供商:云提供商 span 的语义约定。
- 数据库:用于 SQL 和 NoSQL 客户端调用 span。
- 异常:用于记录与 span 关联的异常。
- FaaS:用于函数即服务(例如 AWS Lambda)span。
- HTTP:用于 HTTP 客户端和服务器 span。
- 消息:用于消息系统(队列、发布/订阅等)span。
- 对象存储:对象存储 span 的语义约定。
- RPC/RMI:用于远程过程调用(例如 gRPC)span。
除了 trace、metrics、logs 和 events 的语义约定外,OpenTelemetry 还定义了具有自身资源语义约定的、包含一切的Resources 的概念。