术语表
此文档定义了本规范中使用的一些术语。
其他一些基本术语的定义请查阅 Overview 。
Common
带内带外数据In-band and Out-of-band Data
在通信领域,带内信令[in-band signaling] 是指使用和数据(如语音或视频)相同的频段或信道内发送控制信息。 这与带外信令[out-of-band signaling]相反,带外信令的发送使用不同的信道,甚至是通过单独的网络 (Wikipedia)。
在 OpenTelemetry 中,我们将带内数据定义为: 在分布式系统的组件之间传递的数据,且该数据是业务消息的一部分。例如使用 trace 或 baggages 以 HTTP Header 形式包含在 HTTP 请求中。 这种数据虽然通常不包含遥感信息,但常用于关联和连接各个组件产生的遥感信息。遥测本身被称为带外数据: 从应用程序发出,通过专用消息传输,通常由后台程序异步传输,而不是使用业务逻辑的关键路径传输。 导出到遥测后端的 Trace,Logs 与 Metric 都是带外数据的例子。
Manual Instrumentation
根据 OpenTelemetry API (如Tracing Api,Metrics API)或从其他最终用户代码或者共享框架(如 MongoDB,Redis等)收集遥测的代码。
Automatic Instrumentation
指不要求最终用户编写或访问应用程序代码以使用OpenTelemetry API的遥测采集方法。方法因编程语言而异,例如字节码注入或猴子补丁。
同义词: Auto-instrumentation.
Telemetry SDK
基于 OpenTelemetry API 实现的库。
详情请参考 Library Guidelines 与 Library resource semantic conventions。
Exporter Library
兼容 Telemetry SDK 的库,提供向消费者发送遥感的功能。
Instrumented Library
为其收集遥感信号(追踪,指标,日志)的库。
可以从 Instrumented Library 自身或从另一个 Instrumentation Library 调用 OpenTelemetry Api 。
例如: org.mongodb.client
Instrumentation Library
为指定的 Instrumented Library 提供 instrumentation。
如果内置 OpenTelemetry instrumentation ,则 Instrumented Library 与 Instrumentation Library 可能是同一个库。
更详细的定义和命名指南请参见 Overview。
例如: io.opentelemetry.contrib.mongodb
同义词: Instrumenting Library
Tracer Name / Meter Name
指定的名称 name
和(可选)版本 version
参数将会用于创建新的追踪 [Tracer]
或者仪表 [Meter]
(请参见 Obtaining a Tracer/Obtaining a Meter)。可以通过名称/版本组合来标识 Instrumentation Library。
Logs
日志记录 Log Record
对一起事件的记录。通常情况一个日志记录包含:
一个时间戳,指明事件的发生时间。
一些数据,用于描述事件如何发生,发生在何处等信息。
同义词: Log Entry.
日志 Log
通常日志是一系列日志记录的集合。本术语容易产生歧义,错误的将 Log
等价于一条消息记录 Log Record
。因此本术语请谨慎使用,同时在可能存在歧义的情况下使用本术语时,应当使用额外的限定词(例如: Log Record
)。
嵌入日志 Embedded Log
一条嵌入在 Span 对象中, Events 列表中的 Log Record
。
独立日志 Standalone Log
一条未被嵌入在 Span
中且被记录在其他地方的 Log Record
。
日志属性 Log Attributes
键值对,包含在 Log Record
中。
结构化日志 Structured Logs
具有明确结构定义的 Logs,可以让你的日志结构更加清晰,从而区分 Log Record 的不同元素(如 时间戳,属性等) 。
例如在 The Syslog protocol (RFC 5425) 中, 定义了 structured-data
格式。
扁平化日志 Flat File Logs
在文本文件中的 Logs ,通常一行文本记录一条 Log Record(然而多行文本来记录也是可以的)。
但对使用更结构化的格式(例如 JSON 文件)的文本文件是否可以被认作是扁平化日志,业内尚无共识。在这种区分很重要的情况下,推荐使用相对应的名称用于区分。