OpenTelemetry SDK 指标的语义约定
状态: 开发中
本文档描述了 OpenTelemetry SDK 组件本身发出的关于其内部状态的指标。
Span 指标
Metric: otel.sdk.span.live
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
otel.sdk.span.live | UpDownCounter | {span} | 值为 true 的已创建 Span 的数量,且其结束操作尚未调用。 |
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
otel.span.sampling_result | 推荐 | 字符串 | 此 Span 的采样器的结果值 | DROP;RECORD_ONLY;RECORD_AND_SAMPLE |
otel.span.sampling_result 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
DROP | Span 未被采样且未记录 | |
RECORD_AND_SAMPLE | Span 被采样且正在记录 | |
RECORD_ONLY | Span 未被采样,但正在记录 |
Metric: otel.sdk.span.started
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
otel.sdk.span.started | Counter | {span} | 已创建 Span 的数量。[1] |
[1]: 实现必须为此指标记录所有 Span,即使是非记录的 Span。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
otel.span.parent.origin | 推荐 | 字符串 | 确定 Span 是否有父 Span,如果有,则 父 Span 是否是远程的 | none;local;remote | |
otel.span.sampling_result | 推荐 | 字符串 | 此 Span 的采样器的结果值 | DROP;RECORD_ONLY;RECORD_AND_SAMPLE |
otel.span.parent.origin 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
local | Span 具有父 Span,且父 Span 的 Span 上下文 isRemote() 返回 false | |
无 | Span 没有父 Span,它是根 Span | |
remote | Span 具有父 Span,且父 Span 的 Span 上下文 isRemote() 返回 true |
otel.span.sampling_result 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
DROP | Span 未被采样且未记录 | |
RECORD_AND_SAMPLE | Span 被采样且正在记录 | |
RECORD_ONLY | Span 未被采样,但正在记录 |
Metric: otel.sdk.processor.span.queue.size
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
otel.sdk.processor.span.queue.size | UpDownCounter | {span} | 给定 SDK Span 处理器实例队列中的 Span 数量。[1] |
[1]: 仅适用于使用队列的 Span 处理器,例如 SDK 批量 Span 处理器。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
otel.component.name | 推荐 | 字符串 | 一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[1] | otlp_grpc_span_exporter/0;custom-name | |
otel.component.type | 推荐 | 字符串 | 一个标识 OpenTelemetry 组件类型的名称。[2] | batching_span_processor;com.example.MySpanExporter |
[1] otel.component.name: 实现应确保此属性的基数较低,即使在应用程序或 SDK 重启之间也是如此。例如,实现不得使用 UUID 作为此属性的值。
实现可以通过遵循 <otel.component.type>/<instance-counter> 模式来实现这些目标,例如 batching_span_processor/0。其中 otel.component.type 指的是组件的相应属性值。
instance-counter 的值可由组件自动分配,并且必须保证在封闭的 SDK 实例内的唯一性。例如,<instance-counter> 可以通过使用单调递增的计数器(从 0 开始)来实现,该计数器在给定组件类型的一个实例启动时会递增。
使用此实现,例如第一个 Batching Span Processor 的 otel.component.name 将是 batching_span_processor/0,第二个是 batching_span_processor/1,依此类推。因此,这些值将在应用程序重启时重新使用。
[2] otel.component.type: 如果标准值均不适用,实现应使用语言定义的类型名称。例如,对于 Java,在这种情况下应使用完全限定类名。
otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
batching_log_processor | 内置 SDK 批量日志记录处理器 | |
batching_span_processor | 内置 SDK 批量 Span 处理器 | |
otlp_grpc_log_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器 | |
otlp_grpc_metric_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器 | |
otlp_grpc_span_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器 | |
otlp_http_json_log_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_json_metric_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_json_span_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器 | |
otlp_http_log_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_metric_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_span_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器 | |
periodic_metric_reader | 内置 SDK 定期导出指标读取器 | |
prometheus_http_text_metric_exporter | 使用默认文本格式的 HTTP 上的 Prometheus 指标导出器 | |
simple_log_processor | 内置 SDK 简单日志记录处理器 | |
simple_span_processor | 内置 SDK 简单 Span 处理器 | |
zipkin_http_span_exporter | 通过 HTTP 的 Zipkin Span 导出器 |
Metric: otel.sdk.processor.span.queue.capacity
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
otel.sdk.processor.span.queue.capacity | UpDownCounter | {span} | 给定 SDK Span 处理器实例队列可以容纳的最大 Span 数量。[1] |
[1]: 仅适用于使用队列的 Span 处理器,例如 SDK 批量 Span 处理器。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
otel.component.name | 推荐 | 字符串 | 一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[1] | otlp_grpc_span_exporter/0;custom-name | |
otel.component.type | 推荐 | 字符串 | 一个标识 OpenTelemetry 组件类型的名称。[2] | batching_span_processor;com.example.MySpanExporter |
[1] otel.component.name: 实现应确保此属性的基数较低,即使在应用程序或 SDK 重启之间也是如此。例如,实现不得使用 UUID 作为此属性的值。
实现可以通过遵循 <otel.component.type>/<instance-counter> 模式来实现这些目标,例如 batching_span_processor/0。其中 otel.component.type 指的是组件的相应属性值。
instance-counter 的值可由组件自动分配,并且必须保证在封闭的 SDK 实例内的唯一性。例如,<instance-counter> 可以通过使用单调递增的计数器(从 0 开始)来实现,该计数器在给定组件类型的一个实例启动时会递增。
使用此实现,例如第一个 Batching Span Processor 的 otel.component.name 将是 batching_span_processor/0,第二个是 batching_span_processor/1,依此类推。因此,这些值将在应用程序重启时重新使用。
[2] otel.component.type: 如果标准值均不适用,实现应使用语言定义的类型名称。例如,对于 Java,在这种情况下应使用完全限定类名。
otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
batching_log_processor | 内置 SDK 批量日志记录处理器 | |
batching_span_processor | 内置 SDK 批量 Span 处理器 | |
otlp_grpc_log_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器 | |
otlp_grpc_metric_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器 | |
otlp_grpc_span_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器 | |
otlp_http_json_log_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_json_metric_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_json_span_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器 | |
otlp_http_log_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_metric_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_span_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器 | |
periodic_metric_reader | 内置 SDK 定期导出指标读取器 | |
prometheus_http_text_metric_exporter | 使用默认文本格式的 HTTP 上的 Prometheus 指标导出器 | |
simple_log_processor | 内置 SDK 简单日志记录处理器 | |
simple_span_processor | 内置 SDK 简单 Span 处理器 | |
zipkin_http_span_exporter | 通过 HTTP 的 Zipkin Span 导出器 |
Metric: otel.sdk.processor.span.processed
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
otel.sdk.processor.span.processed | Counter | {span} | 处理已完成(成功或失败)的 Span 的数量。[1] |
[1]: 对于成功处理,error.type 不得设置。对于失败处理,error.type 必须包含失败原因。对于 SDK 简单和批量 Span 处理器,当 Span 已提交给导出器时,即使相应的导出调用尚未完成,也将其视为已处理。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
error.type | 推荐 | 字符串 | 对失败原因的低基数描述。SDK 批量 Span 处理器必须使用 queue_full 来表示因队列已满而丢弃的 Span。[1] | queue_full | |
otel.component.name | 推荐 | 字符串 | 一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[2] | otlp_grpc_span_exporter/0;custom-name | |
otel.component.type | 推荐 | 字符串 | 一个标识 OpenTelemetry 组件类型的名称。[3] | batching_span_processor;com.example.MySpanExporter |
[1] error.type: error.type 应该可预测,并且应该具有低基数性。
当 error.type 设置为某个类型(例如,异常类型)时,应该使用该工件内识别类型的规范类名。
Instrumentations 应该记录它们报告的错误列表。
一个仪器库内的 error.type 基数性应该低。从多个仪器库和应用程序聚合数据的遥测消费者,在没有额外过滤时,应准备好 error.type 在查询时具有高基数性。
如果操作已成功完成,Instrumentations 不应设置 error.type。
如果特定域定义了自己的一组错误标识符(例如 HTTP 或 gRPC 状态码),则建议
- 使用特定于域的属性
- 设置
error.type以捕获所有错误,无论它们是否包含在特定于域的集合中。
[2] otel.component.name: 实现应确保此属性的基数较低,即使在应用程序或 SDK 重启之间也是如此。例如,实现不得使用 UUID 作为此属性的值。
实现可以通过遵循 <otel.component.type>/<instance-counter> 模式来实现这些目标,例如 batching_span_processor/0。其中 otel.component.type 指的是组件的相应属性值。
instance-counter 的值可由组件自动分配,并且必须保证在封闭的 SDK 实例内的唯一性。例如,<instance-counter> 可以通过使用单调递增的计数器(从 0 开始)来实现,该计数器在给定组件类型的一个实例启动时会递增。
使用此实现,例如第一个 Batching Span Processor 的 otel.component.name 将是 batching_span_processor/0,第二个是 batching_span_processor/1,依此类推。因此,这些值将在应用程序重启时重新使用。
[3] otel.component.type: 如果标准值均不适用,实现应使用语言定义的类型名称。例如,对于 Java,在这种情况下应使用完全限定类名。
error.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
_OTHER | 当检测不到自定义值时使用的回退错误值。 |
otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
batching_log_processor | 内置 SDK 批量日志记录处理器 | |
batching_span_processor | 内置 SDK 批量 Span 处理器 | |
otlp_grpc_log_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器 | |
otlp_grpc_metric_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器 | |
otlp_grpc_span_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器 | |
otlp_http_json_log_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_json_metric_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_json_span_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器 | |
otlp_http_log_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_metric_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_span_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器 | |
periodic_metric_reader | 内置 SDK 定期导出指标读取器 | |
prometheus_http_text_metric_exporter | 使用默认文本格式的 HTTP 上的 Prometheus 指标导出器 | |
simple_log_processor | 内置 SDK 简单日志记录处理器 | |
simple_span_processor | 内置 SDK 简单 Span 处理器 | |
zipkin_http_span_exporter | 通过 HTTP 的 Zipkin Span 导出器 |
Metric: otel.sdk.exporter.span.inflight
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
otel.sdk.exporter.span.inflight | UpDownCounter | {span} | 已传递给导出器但尚未导出的 Span 数量(未成功,也未失败)。[1] |
[1]: 对于成功的导出,error.type 不得设置。对于失败的导出,error.type 必须包含失败原因。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
otel.component.name | 推荐 | 字符串 | 一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[1] | otlp_grpc_span_exporter/0;custom-name | |
otel.component.type | 推荐 | 字符串 | 一个标识 OpenTelemetry 组件类型的名称。[2] | batching_span_processor;com.example.MySpanExporter | |
server.address | 适用时可选 | 字符串 | 如果可用,则为服务器域名,无需进行反向 DNS 查找;否则为 IP 地址或 Unix 套接字名称。[3] | example.com;10.1.2.80;/tmp/my.sock | |
server.port | 适用时可选 | int | 服务器端口号。[4] | 80; 8080; 443 |
[1] otel.component.name: 实现应确保此属性的基数较低,即使在应用程序或 SDK 重启之间也是如此。例如,实现不得使用 UUID 作为此属性的值。
实现可以通过遵循 <otel.component.type>/<instance-counter> 模式来实现这些目标,例如 batching_span_processor/0。其中 otel.component.type 指的是组件的相应属性值。
instance-counter 的值可由组件自动分配,并且必须保证在封闭的 SDK 实例内的唯一性。例如,<instance-counter> 可以通过使用单调递增的计数器(从 0 开始)来实现,该计数器在给定组件类型的一个实例启动时会递增。
使用此实现,例如第一个 Batching Span Processor 的 otel.component.name 将是 batching_span_processor/0,第二个是 batching_span_processor/1,依此类推。因此,这些值将在应用程序重启时重新使用。
[2] otel.component.type: 如果标准值均不适用,实现应使用语言定义的类型名称。例如,对于 Java,在这种情况下应使用完全限定类名。
[3] server.address:从客户端观察时,并且在通过中间设备进行通信时,server.address 应表示中间设备(例如代理)后面的服务器地址,如果可用。
[4] server.port: 从客户端观察时,并且在通过中介进行通信时,server.port 应代表任何中介(例如代理)之后的服务器端口,如果可用。
otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
batching_log_processor | 内置 SDK 批量日志记录处理器 | |
batching_span_processor | 内置 SDK 批量 Span 处理器 | |
otlp_grpc_log_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器 | |
otlp_grpc_metric_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器 | |
otlp_grpc_span_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器 | |
otlp_http_json_log_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_json_metric_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_json_span_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器 | |
otlp_http_log_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_metric_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_span_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器 | |
periodic_metric_reader | 内置 SDK 定期导出指标读取器 | |
prometheus_http_text_metric_exporter | 使用默认文本格式的 HTTP 上的 Prometheus 指标导出器 | |
simple_log_processor | 内置 SDK 简单日志记录处理器 | |
simple_span_processor | 内置 SDK 简单 Span 处理器 | |
zipkin_http_span_exporter | 通过 HTTP 的 Zipkin Span 导出器 |
Metric: otel.sdk.exporter.span.exported
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
otel.sdk.exporter.span.exported | Counter | {span} | 导出已完成(成功或失败)的 Span 的数量。[1] |
[1]: 对于成功的导出,error.type 不得设置。对于失败的导出,error.type 必须包含失败原因。对于具有部分成功语义的导出器(例如,OTLP 带有 rejected_spans),拒绝的 Span 必须计为失败,只有非拒绝的 Span 才计为成功。如果没有可用的拒绝原因,则 rejected 应作为 error.type 的值。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
error.type | 推荐 | 字符串 | 描述操作最终结束的一类错误。[1] | rejected;timeout;500;java.net.UnknownHostException | |
otel.component.name | 推荐 | 字符串 | 一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[2] | otlp_grpc_span_exporter/0;custom-name | |
otel.component.type | 推荐 | 字符串 | 一个标识 OpenTelemetry 组件类型的名称。[3] | batching_span_processor;com.example.MySpanExporter | |
server.address | 适用时可选 | 字符串 | 服务器域名(如果可用且无需反向 DNS 查询);否则,为 IP 地址或 Unix 套接字名称。[4] | example.com;10.1.2.80;/tmp/my.sock | |
server.port | 适用时可选 | int | 服务器端口号。[5] | 80; 8080; 443 |
[1] error.type: error.type 应该可预测,并且应该具有低基数性。
当 error.type 设置为某个类型(例如,异常类型)时,应该使用该工件内识别类型的规范类名。
Instrumentations 应该记录它们报告的错误列表。
一个仪器库内的 error.type 基数性应该低。从多个仪器库和应用程序聚合数据的遥测消费者,在没有额外过滤时,应准备好 error.type 在查询时具有高基数性。
如果操作已成功完成,Instrumentations 不应设置 error.type。
如果特定域定义了自己的一组错误标识符(例如 HTTP 或 gRPC 状态码),则建议
- 使用特定于域的属性
- 设置
error.type以捕获所有错误,无论它们是否包含在特定于域的集合中。
[2] otel.component.name: 实现应确保此属性的基数较低,即使在应用程序或 SDK 重启之间也是如此。例如,实现不得使用 UUID 作为此属性的值。
实现可以通过遵循 <otel.component.type>/<instance-counter> 模式来实现这些目标,例如 batching_span_processor/0。其中 otel.component.type 指的是组件的相应属性值。
instance-counter 的值可由组件自动分配,并且必须保证在封闭的 SDK 实例内的唯一性。例如,<instance-counter> 可以通过使用单调递增的计数器(从 0 开始)来实现,该计数器在给定组件类型的一个实例启动时会递增。
使用此实现,例如第一个 Batching Span Processor 的 otel.component.name 将是 batching_span_processor/0,第二个是 batching_span_processor/1,依此类推。因此,这些值将在应用程序重启时重新使用。
[3] otel.component.type: 如果标准值均不适用,实现应使用语言定义的类型名称。例如,对于 Java,在这种情况下应使用完全限定类名。
[4] server.address: 从客户端观察时,并且在通过中介进行通信时,server.address 应代表任何中介(例如代理)之后的服务器地址,如果可用。
[5] server.port: 从客户端观察并与中介通信时,server.port 应表示任何中介(例如代理)之后的服务器端口,如果可用。
error.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
_OTHER | 当检测不到自定义值时使用的回退错误值。 |
otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
batching_log_processor | 内置 SDK 批量日志记录处理器 | |
batching_span_processor | 内置 SDK 批量 Span 处理器 | |
otlp_grpc_log_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器 | |
otlp_grpc_metric_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器 | |
otlp_grpc_span_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器 | |
otlp_http_json_log_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_json_metric_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_json_span_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器 | |
otlp_http_log_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_metric_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_span_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器 | |
periodic_metric_reader | 内置 SDK 定期导出指标读取器 | |
prometheus_http_text_metric_exporter | 使用默认文本格式的 HTTP 上的 Prometheus 指标导出器 | |
simple_log_processor | 内置 SDK 简单日志记录处理器 | |
simple_span_processor | 内置 SDK 简单 Span 处理器 | |
zipkin_http_span_exporter | 通过 HTTP 的 Zipkin Span 导出器 |
Log 指标
Metric: otel.sdk.log.created
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
otel.sdk.log.created | Counter | {log_record} | 已提交给已启用的 SDK Logger 的日志数量。 |
Metric: otel.sdk.processor.log.queue.size
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
otel.sdk.processor.log.queue.size | UpDownCounter | {log_record} | 给定 SDK 日志处理器实例队列中的日志记录数量。[1] |
[1]: 仅适用于使用队列的日志记录处理器,例如 SDK 批量日志记录处理器。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
otel.component.name | 推荐 | 字符串 | 一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[1] | otlp_grpc_span_exporter/0;custom-name | |
otel.component.type | 推荐 | 字符串 | 一个标识 OpenTelemetry 组件类型的名称。[2] | batching_span_processor;com.example.MySpanExporter |
[1] otel.component.name: 实现应确保此属性的基数较低,即使在应用程序或 SDK 重启之间也是如此。例如,实现不得使用 UUID 作为此属性的值。
实现可以通过遵循 <otel.component.type>/<instance-counter> 模式来实现这些目标,例如 batching_span_processor/0。其中 otel.component.type 指的是组件的相应属性值。
instance-counter 的值可由组件自动分配,并且必须保证在封闭的 SDK 实例内的唯一性。例如,<instance-counter> 可以通过使用单调递增的计数器(从 0 开始)来实现,该计数器在给定组件类型的一个实例启动时会递增。
使用此实现,例如第一个 Batching Span Processor 的 otel.component.name 将是 batching_span_processor/0,第二个是 batching_span_processor/1,依此类推。因此,这些值将在应用程序重启时重新使用。
[2] otel.component.type: 如果标准值均不适用,实现应使用语言定义的类型名称。例如,对于 Java,在这种情况下应使用完全限定类名。
otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
batching_log_processor | 内置 SDK 批量日志记录处理器 | |
batching_span_processor | 内置 SDK 批量 Span 处理器 | |
otlp_grpc_log_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器 | |
otlp_grpc_metric_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器 | |
otlp_grpc_span_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器 | |
otlp_http_json_log_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_json_metric_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_json_span_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器 | |
otlp_http_log_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_metric_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_span_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器 | |
periodic_metric_reader | 内置 SDK 定期导出指标读取器 | |
prometheus_http_text_metric_exporter | 使用默认文本格式的 HTTP 上的 Prometheus 指标导出器 | |
simple_log_processor | 内置 SDK 简单日志记录处理器 | |
simple_span_processor | 内置 SDK 简单 Span 处理器 | |
zipkin_http_span_exporter | 通过 HTTP 的 Zipkin Span 导出器 |
Metric: otel.sdk.processor.log.queue.capacity
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
otel.sdk.processor.log.queue.capacity | UpDownCounter | {log_record} | 给定 SDK 日志记录处理器实例队列可以容纳的最大日志记录数量。[1] |
[1]: 仅适用于使用队列的日志记录处理器,例如 SDK 批量日志记录处理器。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
otel.component.name | 推荐 | 字符串 | 一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[1] | otlp_grpc_span_exporter/0;custom-name | |
otel.component.type | 推荐 | 字符串 | 一个标识 OpenTelemetry 组件类型的名称。[2] | batching_span_processor;com.example.MySpanExporter |
[1] otel.component.name: 实现应确保此属性的基数较低,即使在应用程序或 SDK 重启之间也是如此。例如,实现不得使用 UUID 作为此属性的值。
实现可以通过遵循 <otel.component.type>/<instance-counter> 模式来实现这些目标,例如 batching_span_processor/0。其中 otel.component.type 指的是组件的相应属性值。
instance-counter 的值可由组件自动分配,并且必须保证在封闭的 SDK 实例内的唯一性。例如,<instance-counter> 可以通过使用单调递增的计数器(从 0 开始)来实现,该计数器在给定组件类型的一个实例启动时会递增。
使用此实现,例如第一个 Batching Span Processor 的 otel.component.name 将是 batching_span_processor/0,第二个是 batching_span_processor/1,依此类推。因此,这些值将在应用程序重启时重新使用。
[2] otel.component.type: 如果标准值均不适用,实现应使用语言定义的类型名称。例如,对于 Java,在这种情况下应使用完全限定类名。
otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
batching_log_processor | 内置 SDK 批量日志记录处理器 | |
batching_span_processor | 内置 SDK 批量 Span 处理器 | |
otlp_grpc_log_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器 | |
otlp_grpc_metric_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器 | |
otlp_grpc_span_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器 | |
otlp_http_json_log_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_json_metric_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_json_span_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器 | |
otlp_http_log_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_metric_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_span_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器 | |
periodic_metric_reader | 内置 SDK 定期导出指标读取器 | |
prometheus_http_text_metric_exporter | 使用默认文本格式的 HTTP 上的 Prometheus 指标导出器 | |
simple_log_processor | 内置 SDK 简单日志记录处理器 | |
simple_span_processor | 内置 SDK 简单 Span 处理器 | |
zipkin_http_span_exporter | 通过 HTTP 的 Zipkin Span 导出器 |
Metric: otel.sdk.processor.log.processed
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
otel.sdk.processor.log.processed | Counter | {log_record} | 处理已完成(成功或失败)的日志记录的数量。[1] |
[1]: 对于成功处理,error.type 不得设置。对于失败处理,error.type 必须包含失败原因。对于 SDK 简单和批量日志记录处理器,当日志记录已提交给导出器时,即使相应的导出调用尚未完成,也将其视为已处理。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
error.type | 推荐 | 字符串 | 对失败原因的低基数描述。SDK 批量日志记录处理器必须使用 queue_full 来表示因队列已满而丢弃的日志记录。[1] | queue_full | |
otel.component.name | 推荐 | 字符串 | 一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[2] | otlp_grpc_span_exporter/0;custom-name | |
otel.component.type | 推荐 | 字符串 | 一个标识 OpenTelemetry 组件类型的名称。[3] | batching_span_processor;com.example.MySpanExporter |
[1] error.type: error.type 应该可预测,并且应该具有低基数性。
当 error.type 设置为某个类型(例如,异常类型)时,应该使用该工件内识别类型的规范类名。
Instrumentations 应该记录它们报告的错误列表。
一个仪器库内的 error.type 基数性应该低。从多个仪器库和应用程序聚合数据的遥测消费者,在没有额外过滤时,应准备好 error.type 在查询时具有高基数性。
如果操作已成功完成,Instrumentations 不应设置 error.type。
如果特定域定义了自己的一组错误标识符(例如 HTTP 或 gRPC 状态码),则建议
- 使用特定于域的属性
- 设置
error.type以捕获所有错误,无论它们是否包含在特定于域的集合中。
[2] otel.component.name: 实现应确保此属性的基数较低,即使在应用程序或 SDK 重启之间也是如此。例如,实现不得使用 UUID 作为此属性的值。
实现可以通过遵循 <otel.component.type>/<instance-counter> 模式来实现这些目标,例如 batching_span_processor/0。其中 otel.component.type 指的是组件的相应属性值。
instance-counter 的值可由组件自动分配,并且必须保证在封闭的 SDK 实例内的唯一性。例如,<instance-counter> 可以通过使用单调递增的计数器(从 0 开始)来实现,该计数器在给定组件类型的一个实例启动时会递增。
使用此实现,例如第一个 Batching Span Processor 的 otel.component.name 将是 batching_span_processor/0,第二个是 batching_span_processor/1,依此类推。因此,这些值将在应用程序重启时重新使用。
[3] otel.component.type: 如果标准值均不适用,实现应使用语言定义的类型名称。例如,对于 Java,在这种情况下应使用完全限定类名。
error.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
_OTHER | 当检测不到自定义值时使用的回退错误值。 |
otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
batching_log_processor | 内置 SDK 批量日志记录处理器 | |
batching_span_processor | 内置 SDK 批量 Span 处理器 | |
otlp_grpc_log_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器 | |
otlp_grpc_metric_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器 | |
otlp_grpc_span_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器 | |
otlp_http_json_log_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_json_metric_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_json_span_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器 | |
otlp_http_log_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_metric_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_span_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器 | |
periodic_metric_reader | 内置 SDK 定期导出指标读取器 | |
prometheus_http_text_metric_exporter | 使用默认文本格式的 HTTP 上的 Prometheus 指标导出器 | |
simple_log_processor | 内置 SDK 简单日志记录处理器 | |
simple_span_processor | 内置 SDK 简单 Span 处理器 | |
zipkin_http_span_exporter | 通过 HTTP 的 Zipkin Span 导出器 |
Metric: otel.sdk.exporter.log.inflight
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
otel.sdk.exporter.log.inflight | UpDownCounter | {log_record} | 已传递给导出器但尚未导出的日志记录数量(未成功,也未失败)。[1] |
[1]: 对于成功的导出,error.type 不得设置。对于失败的导出,error.type 必须包含失败原因。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
otel.component.name | 推荐 | 字符串 | 一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[1] | otlp_grpc_span_exporter/0;custom-name | |
otel.component.type | 推荐 | 字符串 | 一个标识 OpenTelemetry 组件类型的名称。[2] | batching_span_processor;com.example.MySpanExporter | |
server.address | 适用时可选 | 字符串 | 如果可用,则为服务器域名,无需进行反向 DNS 查找;否则为 IP 地址或 Unix 套接字名称。[3] | example.com;10.1.2.80;/tmp/my.sock | |
server.port | 适用时可选 | int | 服务器端口号。[4] | 80; 8080; 443 |
[1] otel.component.name: 实现应确保此属性的基数较低,即使在应用程序或 SDK 重启之间也是如此。例如,实现不得使用 UUID 作为此属性的值。
实现可以通过遵循 <otel.component.type>/<instance-counter> 模式来实现这些目标,例如 batching_span_processor/0。其中 otel.component.type 指的是组件的相应属性值。
instance-counter 的值可由组件自动分配,并且必须保证在封闭的 SDK 实例内的唯一性。例如,<instance-counter> 可以通过使用单调递增的计数器(从 0 开始)来实现,该计数器在给定组件类型的一个实例启动时会递增。
使用此实现,例如第一个 Batching Span Processor 的 otel.component.name 将是 batching_span_processor/0,第二个是 batching_span_processor/1,依此类推。因此,这些值将在应用程序重启时重新使用。
[2] otel.component.type: 如果标准值均不适用,实现应使用语言定义的类型名称。例如,对于 Java,在这种情况下应使用完全限定类名。
[3] server.address:从客户端观察时,并且在通过中间设备进行通信时,server.address 应表示中间设备(例如代理)后面的服务器地址,如果可用。
[4] server.port: 从客户端观察时,并且在通过中介进行通信时,server.port 应代表任何中介(例如代理)之后的服务器端口,如果可用。
otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
batching_log_processor | 内置 SDK 批量日志记录处理器 | |
batching_span_processor | 内置 SDK 批量 Span 处理器 | |
otlp_grpc_log_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器 | |
otlp_grpc_metric_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器 | |
otlp_grpc_span_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器 | |
otlp_http_json_log_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_json_metric_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_json_span_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器 | |
otlp_http_log_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_metric_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_span_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器 | |
periodic_metric_reader | 内置 SDK 定期导出指标读取器 | |
prometheus_http_text_metric_exporter | 使用默认文本格式的 HTTP 上的 Prometheus 指标导出器 | |
simple_log_processor | 内置 SDK 简单日志记录处理器 | |
simple_span_processor | 内置 SDK 简单 Span 处理器 | |
zipkin_http_span_exporter | 通过 HTTP 的 Zipkin Span 导出器 |
Metric: otel.sdk.exporter.log.exported
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
otel.sdk.exporter.log.exported | Counter | {log_record} | 导出已完成(成功或失败)的日志记录的数量。[1] |
[1]: 对于成功的导出,error.type 不得设置。对于失败的导出,error.type 必须包含失败原因。对于具有部分成功语义的导出器(例如,OTLP 带有 rejected_log_records),拒绝的日志记录必须计为失败,只有非拒绝的日志记录才计为成功。如果没有可用的拒绝原因,则 rejected 应作为 error.type 的值。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
error.type | 推荐 | 字符串 | 描述操作最终结束的一类错误。[1] | rejected;timeout;500;java.net.UnknownHostException | |
otel.component.name | 推荐 | 字符串 | 一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[2] | otlp_grpc_span_exporter/0;custom-name | |
otel.component.type | 推荐 | 字符串 | 一个标识 OpenTelemetry 组件类型的名称。[3] | batching_span_processor;com.example.MySpanExporter | |
server.address | 适用时可选 | 字符串 | 服务器域名(如果可用且无需反向 DNS 查询);否则,为 IP 地址或 Unix 套接字名称。[4] | example.com;10.1.2.80;/tmp/my.sock | |
server.port | 适用时可选 | int | 服务器端口号。[5] | 80; 8080; 443 |
[1] error.type: error.type 应该可预测,并且应该具有低基数性。
当 error.type 设置为某个类型(例如,异常类型)时,应该使用该工件内识别类型的规范类名。
Instrumentations 应该记录它们报告的错误列表。
一个仪器库内的 error.type 基数性应该低。从多个仪器库和应用程序聚合数据的遥测消费者,在没有额外过滤时,应准备好 error.type 在查询时具有高基数性。
如果操作已成功完成,Instrumentations 不应设置 error.type。
如果特定域定义了自己的一组错误标识符(例如 HTTP 或 gRPC 状态码),则建议
- 使用特定于域的属性
- 设置
error.type以捕获所有错误,无论它们是否包含在特定于域的集合中。
[2] otel.component.name: 实现应确保此属性的基数较低,即使在应用程序或 SDK 重启之间也是如此。例如,实现不得使用 UUID 作为此属性的值。
实现可以通过遵循 <otel.component.type>/<instance-counter> 模式来实现这些目标,例如 batching_span_processor/0。其中 otel.component.type 指的是组件的相应属性值。
instance-counter 的值可由组件自动分配,并且必须保证在封闭的 SDK 实例内的唯一性。例如,<instance-counter> 可以通过使用单调递增的计数器(从 0 开始)来实现,该计数器在给定组件类型的一个实例启动时会递增。
使用此实现,例如第一个 Batching Span Processor 的 otel.component.name 将是 batching_span_processor/0,第二个是 batching_span_processor/1,依此类推。因此,这些值将在应用程序重启时重新使用。
[3] otel.component.type: 如果标准值均不适用,实现应使用语言定义的类型名称。例如,对于 Java,在这种情况下应使用完全限定类名。
[4] server.address: 从客户端观察时,并且在通过中介进行通信时,server.address 应代表任何中介(例如代理)之后的服务器地址,如果可用。
[5] server.port: 从客户端观察并与中介通信时,server.port 应表示任何中介(例如代理)之后的服务器端口,如果可用。
error.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
_OTHER | 当检测不到自定义值时使用的回退错误值。 |
otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
batching_log_processor | 内置 SDK 批量日志记录处理器 | |
batching_span_processor | 内置 SDK 批量 Span 处理器 | |
otlp_grpc_log_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器 | |
otlp_grpc_metric_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器 | |
otlp_grpc_span_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器 | |
otlp_http_json_log_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_json_metric_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_json_span_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器 | |
otlp_http_log_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_metric_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_span_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器 | |
periodic_metric_reader | 内置 SDK 定期导出指标读取器 | |
prometheus_http_text_metric_exporter | 使用默认文本格式的 HTTP 上的 Prometheus 指标导出器 | |
simple_log_processor | 内置 SDK 简单日志记录处理器 | |
simple_span_processor | 内置 SDK 简单 Span 处理器 | |
zipkin_http_span_exporter | 通过 HTTP 的 Zipkin Span 导出器 |
Metric 指标
Metric: otel.sdk.exporter.metric_data_point.inflight
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
otel.sdk.exporter.metric_data_point.inflight | UpDownCounter | {data_point} | 已传递给导出器但尚未导出的指标数据点数量(未成功,也未失败)。[1] |
[1]: 对于成功的导出,error.type 不得设置。对于失败的导出,error.type 必须包含失败原因。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
otel.component.name | 推荐 | 字符串 | 一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[1] | otlp_grpc_span_exporter/0;custom-name | |
otel.component.type | 推荐 | 字符串 | 一个标识 OpenTelemetry 组件类型的名称。[2] | batching_span_processor;com.example.MySpanExporter | |
server.address | 适用时可选 | 字符串 | 如果可用,则为服务器域名,无需进行反向 DNS 查找;否则为 IP 地址或 Unix 套接字名称。[3] | example.com;10.1.2.80;/tmp/my.sock | |
server.port | 适用时可选 | int | 服务器端口号。[4] | 80; 8080; 443 |
[1] otel.component.name: 实现应确保此属性的基数较低,即使在应用程序或 SDK 重启之间也是如此。例如,实现不得使用 UUID 作为此属性的值。
实现可以通过遵循 <otel.component.type>/<instance-counter> 模式来实现这些目标,例如 batching_span_processor/0。其中 otel.component.type 指的是组件的相应属性值。
instance-counter 的值可由组件自动分配,并且必须保证在封闭的 SDK 实例内的唯一性。例如,<instance-counter> 可以通过使用单调递增的计数器(从 0 开始)来实现,该计数器在给定组件类型的一个实例启动时会递增。
使用此实现,例如第一个 Batching Span Processor 的 otel.component.name 将是 batching_span_processor/0,第二个是 batching_span_processor/1,依此类推。因此,这些值将在应用程序重启时重新使用。
[2] otel.component.type: 如果标准值均不适用,实现应使用语言定义的类型名称。例如,对于 Java,在这种情况下应使用完全限定类名。
[3] server.address:从客户端观察时,并且在通过中间设备进行通信时,server.address 应表示中间设备(例如代理)后面的服务器地址,如果可用。
[4] server.port: 从客户端观察时,并且在通过中介进行通信时,server.port 应代表任何中介(例如代理)之后的服务器端口,如果可用。
otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
batching_log_processor | 内置 SDK 批量日志记录处理器 | |
batching_span_processor | 内置 SDK 批量 Span 处理器 | |
otlp_grpc_log_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器 | |
otlp_grpc_metric_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器 | |
otlp_grpc_span_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器 | |
otlp_http_json_log_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_json_metric_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_json_span_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器 | |
otlp_http_log_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_metric_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_span_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器 | |
periodic_metric_reader | 内置 SDK 定期导出指标读取器 | |
prometheus_http_text_metric_exporter | 使用默认文本格式的 HTTP 上的 Prometheus 指标导出器 | |
simple_log_processor | 内置 SDK 简单日志记录处理器 | |
simple_span_processor | 内置 SDK 简单 Span 处理器 | |
zipkin_http_span_exporter | 通过 HTTP 的 Zipkin Span 导出器 |
Metric: otel.sdk.exporter.metric_data_point.exported
此指标是推荐的。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
otel.sdk.exporter.metric_data_point.exported | Counter | {data_point} | 导出已完成(成功或失败)的指标数据点的数量。[1] |
[1]: 对于成功的导出,error.type 不得设置。对于失败的导出,error.type 必须包含失败原因。对于具有部分成功语义的导出器(例如,OTLP 带有 rejected_data_points),拒绝的数据点必须计为失败,只有非拒绝的数据点才计为成功。如果没有可用的拒绝原因,则 rejected 应作为 error.type 的值。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
error.type | 推荐 | 字符串 | 描述操作最终结束的一类错误。[1] | rejected;timeout;500;java.net.UnknownHostException | |
otel.component.name | 推荐 | 字符串 | 一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[2] | otlp_grpc_span_exporter/0;custom-name | |
otel.component.type | 推荐 | 字符串 | 一个标识 OpenTelemetry 组件类型的名称。[3] | batching_span_processor;com.example.MySpanExporter | |
server.address | 适用时可选 | 字符串 | 服务器域名(如果可用且无需反向 DNS 查询);否则,为 IP 地址或 Unix 套接字名称。[4] | example.com;10.1.2.80;/tmp/my.sock | |
server.port | 适用时可选 | int | 服务器端口号。[5] | 80; 8080; 443 |
[1] error.type: error.type 应该可预测,并且应该具有低基数性。
当 error.type 设置为某个类型(例如,异常类型)时,应该使用该工件内识别类型的规范类名。
Instrumentations 应该记录它们报告的错误列表。
一个仪器库内的 error.type 基数性应该低。从多个仪器库和应用程序聚合数据的遥测消费者,在没有额外过滤时,应准备好 error.type 在查询时具有高基数性。
如果操作已成功完成,Instrumentations 不应设置 error.type。
如果特定域定义了自己的一组错误标识符(例如 HTTP 或 gRPC 状态码),则建议
- 使用特定于域的属性
- 设置
error.type以捕获所有错误,无论它们是否包含在特定于域的集合中。
[2] otel.component.name: 实现应确保此属性的基数较低,即使在应用程序或 SDK 重启之间也是如此。例如,实现不得使用 UUID 作为此属性的值。
实现可以通过遵循 <otel.component.type>/<instance-counter> 模式来实现这些目标,例如 batching_span_processor/0。其中 otel.component.type 指的是组件的相应属性值。
instance-counter 的值可由组件自动分配,并且必须保证在封闭的 SDK 实例内的唯一性。例如,<instance-counter> 可以通过使用单调递增的计数器(从 0 开始)来实现,该计数器在给定组件类型的一个实例启动时会递增。
使用此实现,例如第一个 Batching Span Processor 的 otel.component.name 将是 batching_span_processor/0,第二个是 batching_span_processor/1,依此类推。因此,这些值将在应用程序重启时重新使用。
[3] otel.component.type: 如果标准值均不适用,实现应使用语言定义的类型名称。例如,对于 Java,在这种情况下应使用完全限定类名。
[4] server.address: 从客户端观察时,并且在通过中介进行通信时,server.address 应代表任何中介(例如代理)之后的服务器地址,如果可用。
[5] server.port: 从客户端观察并与中介通信时,server.port 应表示任何中介(例如代理)之后的服务器端口,如果可用。
error.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
_OTHER | 当检测不到自定义值时使用的回退错误值。 |
otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
batching_log_processor | 内置 SDK 批量日志记录处理器 | |
batching_span_processor | 内置 SDK 批量 Span 处理器 | |
otlp_grpc_log_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器 | |
otlp_grpc_metric_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器 | |
otlp_grpc_span_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器 | |
otlp_http_json_log_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_json_metric_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_json_span_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器 | |
otlp_http_log_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_metric_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_span_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器 | |
periodic_metric_reader | 内置 SDK 定期导出指标读取器 | |
prometheus_http_text_metric_exporter | 使用默认文本格式的 HTTP 上的 Prometheus 指标导出器 | |
simple_log_processor | 内置 SDK 简单日志记录处理器 | |
simple_span_processor | 内置 SDK 简单 Span 处理器 | |
zipkin_http_span_exporter | 通过 HTTP 的 Zipkin Span 导出器 |
Operation 指标
Metric: otel.sdk.metric_reader.collection.duration
此指标是推荐的。
此指标应使用 ExplicitBucketBoundaries 指定,且只有一个不带边界的桶。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
otel.sdk.metric_reader.collection.duration | Histogram | s | 指标读取器的 collect 操作的持续时间。[1] |
[1]: 对于成功的 collection,error.type 不得设置。对于失败的 collection,error.type 应包含失败原因。指标 collection 可能对某些 MetricProducer 成功,而对其他 MetricProducer 失败。在这种情况下,error.type 应设置为任何失败原因。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
error.type | 推荐 | 字符串 | 描述操作最终结束的一类错误。[1] | timeout;java.net.UnknownHostException;server_certificate_invalid;500 | |
otel.component.name | 推荐 | 字符串 | 一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[2] | otlp_grpc_span_exporter/0;custom-name | |
otel.component.type | 推荐 | 字符串 | 一个标识 OpenTelemetry 组件类型的名称。[3] | batching_span_processor;com.example.MySpanExporter |
[1] error.type: error.type 应该可预测,并且应该具有低基数性。
当 error.type 设置为某个类型(例如,异常类型)时,应该使用该工件内识别类型的规范类名。
Instrumentations 应该记录它们报告的错误列表。
一个仪器库内的 error.type 基数性应该低。从多个仪器库和应用程序聚合数据的遥测消费者,在没有额外过滤时,应准备好 error.type 在查询时具有高基数性。
如果操作已成功完成,Instrumentations 不应设置 error.type。
如果特定域定义了自己的一组错误标识符(例如 HTTP 或 gRPC 状态码),则建议
- 使用特定于域的属性
- 设置
error.type以捕获所有错误,无论它们是否包含在特定于域的集合中。
[2] otel.component.name: 实现应确保此属性的基数较低,即使在应用程序或 SDK 重启之间也是如此。例如,实现不得使用 UUID 作为此属性的值。
实现可以通过遵循 <otel.component.type>/<instance-counter> 模式来实现这些目标,例如 batching_span_processor/0。其中 otel.component.type 指的是组件的相应属性值。
instance-counter 的值可由组件自动分配,并且必须保证在封闭的 SDK 实例内的唯一性。例如,<instance-counter> 可以通过使用单调递增的计数器(从 0 开始)来实现,该计数器在给定组件类型的一个实例启动时会递增。
使用此实现,例如第一个 Batching Span Processor 的 otel.component.name 将是 batching_span_processor/0,第二个是 batching_span_processor/1,依此类推。因此,这些值将在应用程序重启时重新使用。
[3] otel.component.type: 如果标准值均不适用,实现应使用语言定义的类型名称。例如,对于 Java,在这种情况下应使用完全限定类名。
error.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
_OTHER | 当检测不到自定义值时使用的回退错误值。 |
otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
batching_log_processor | 内置 SDK 批量日志记录处理器 | |
batching_span_processor | 内置 SDK 批量 Span 处理器 | |
otlp_grpc_log_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器 | |
otlp_grpc_metric_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器 | |
otlp_grpc_span_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器 | |
otlp_http_json_log_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_json_metric_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_json_span_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器 | |
otlp_http_log_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_metric_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_span_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器 | |
periodic_metric_reader | 内置 SDK 定期导出指标读取器 | |
prometheus_http_text_metric_exporter | 使用默认文本格式的 HTTP 上的 Prometheus 指标导出器 | |
simple_log_processor | 内置 SDK 简单日志记录处理器 | |
simple_span_processor | 内置 SDK 简单 Span 处理器 | |
zipkin_http_span_exporter | 通过 HTTP 的 Zipkin Span 导出器 |
Metric: otel.sdk.exporter.operation.duration
此指标是推荐的。
此指标应使用 ExplicitBucketBoundaries 指定,且只有一个不带边界的桶。
| 名称 | Instrument Type | Unit (UCUM) | 描述 | Stability | 实体关联 |
|---|---|---|---|---|---|
otel.sdk.exporter.operation.duration | Histogram | s | 导出一批遥测记录的持续时间。[1] |
[1]: 此指标使用 HTTP 和 gRPC 的完整成功定义来定义成功的操作。其他所有情况均定义为不成功的操作。对于成功的操作,error.type 不得设置。对于不成功的导出操作,error.type 必须包含相关的失败原因。
Attributes
| 键 | Stability | 需求级别 | Value Type | 描述 | Example Values |
|---|---|---|---|---|---|
error.type | 有条件要求 如果操作以错误结束 | 字符串 | 描述操作最终结束的一类错误。[1] | rejected;timeout;500;java.net.UnknownHostException | |
http.response.status_code | 适用时可选 | int | 在此导出调用范围内执行的最后一次 HTTP 请求的 HTTP 状态码。 | 200 | |
otel.component.name | 推荐 | 字符串 | 一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[2] | otlp_grpc_span_exporter/0;custom-name | |
otel.component.type | 推荐 | 字符串 | 一个标识 OpenTelemetry 组件类型的名称。[3] | otlp_grpc_span_exporter;com.example.MySpanExporter | |
rpc.grpc.status_code | 适用时可选 | int | 在此导出调用范围内执行的最后一次 gRPC 请求的 gRPC 状态码。 | 0; 1; 2 | |
server.address | 适用时可选 | 字符串 | 服务器域名(如果可用且无需反向 DNS 查询);否则,为 IP 地址或 Unix 套接字名称。[4] | example.com;10.1.2.80;/tmp/my.sock | |
server.port | 适用时可选 | int | 服务器端口号。[5] | 80; 8080; 443 |
[1] error.type: error.type 应该可预测,并且应该具有低基数性。
当 error.type 设置为某个类型(例如,异常类型)时,应该使用该工件内识别类型的规范类名。
Instrumentations 应该记录它们报告的错误列表。
一个仪器库内的 error.type 基数性应该低。从多个仪器库和应用程序聚合数据的遥测消费者,在没有额外过滤时,应准备好 error.type 在查询时具有高基数性。
如果操作已成功完成,Instrumentations 不应设置 error.type。
如果特定域定义了自己的一组错误标识符(例如 HTTP 或 gRPC 状态码),则建议
- 使用特定于域的属性
- 设置
error.type以捕获所有错误,无论它们是否包含在特定于域的集合中。
[2] otel.component.name: 实现应确保此属性的基数较低,即使在应用程序或 SDK 重启之间也是如此。例如,实现不得使用 UUID 作为此属性的值。
实现可以通过遵循 <otel.component.type>/<instance-counter> 模式来实现这些目标,例如 batching_span_processor/0。其中 otel.component.type 指的是组件的相应属性值。
instance-counter 的值可由组件自动分配,并且必须保证在封闭的 SDK 实例内的唯一性。例如,<instance-counter> 可以通过使用单调递增的计数器(从 0 开始)来实现,该计数器在给定组件类型的一个实例启动时会递增。
使用此实现,例如第一个 Batching Span Processor 的 otel.component.name 将是 batching_span_processor/0,第二个是 batching_span_processor/1,依此类推。因此,这些值将在应用程序重启时重新使用。
[3] otel.component.type: 如果标准值均不适用,实现应使用语言定义的类型名称。例如,对于 Java,在这种情况下应使用完全限定类名。
[4] server.address: 从客户端观察时,并且在通过中介进行通信时,server.address 应代表任何中介(例如代理)之后的服务器地址,如果可用。
[5] server.port: 从客户端观察并与中介通信时,server.port 应表示任何中介(例如代理)之后的服务器端口,如果可用。
error.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
_OTHER | 当检测不到自定义值时使用的回退错误值。 |
otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
batching_log_processor | 内置 SDK 批量日志记录处理器 | |
batching_span_processor | 内置 SDK 批量 Span 处理器 | |
otlp_grpc_log_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器 | |
otlp_grpc_metric_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器 | |
otlp_grpc_span_exporter | 使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器 | |
otlp_http_json_log_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_json_metric_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_json_span_exporter | 使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器 | |
otlp_http_log_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器 | |
otlp_http_metric_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器 | |
otlp_http_span_exporter | 使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器 | |
periodic_metric_reader | 内置 SDK 定期导出指标读取器 | |
prometheus_http_text_metric_exporter | 使用默认文本格式的 HTTP 上的 Prometheus 指标导出器 | |
simple_log_processor | 内置 SDK 简单日志记录处理器 | |
simple_span_processor | 内置 SDK 简单 Span 处理器 | |
zipkin_http_span_exporter | 通过 HTTP 的 Zipkin Span 导出器 |
rpc.grpc.status_code 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以改用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
0 | OK | |
1 | CANCELLED | |
2 | UNKNOWN | |
3 | INVALID_ARGUMENT | |
4 | DEADLINE_EXCEEDED | |
5 | NOT_FOUND | |
6 | ALREADY_EXISTS | |
7 | PERMISSION_DENIED | |
8 | RESOURCE_EXHAUSTED | |
9 | FAILED_PRECONDITION | |
10 | ABORTED | |
11 | OUT_OF_RANGE | |
12 | UNIMPLEMENTED | |
13 | INTERNAL | |
14 | UNAVAILABLE | |
15 | DATA_LOSS | |
16 | UNAUTHENTICATED |