OpenTelemetry SDK 指标的语义约定

状态: 开发中

本文档描述了 OpenTelemetry SDK 组件本身发出的关于其内部状态的指标。

Span 指标

Metric: otel.sdk.span.live

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
otel.sdk.span.liveUpDownCounter{span}值为 true 的已创建 Span 的数量,且其结束操作尚未调用。Development

Attributes

Stability需求级别Value Type描述Example Values
otel.span.sampling_resultDevelopment推荐字符串此 Span 的采样器的结果值DROPRECORD_ONLYRECORD_AND_SAMPLE

otel.span.sampling_result 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
DROPSpan 未被采样且未记录Development
RECORD_AND_SAMPLESpan 被采样且正在记录Development
RECORD_ONLYSpan 未被采样,但正在记录Development

Metric: otel.sdk.span.started

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
otel.sdk.span.startedCounter{span}已创建 Span 的数量。[1]Development

[1]: 实现必须为此指标记录所有 Span,即使是非记录的 Span。

Attributes

Stability需求级别Value Type描述Example Values
otel.span.parent.originDevelopment推荐字符串确定 Span 是否有父 Span,如果有,则 父 Span 是否是远程的nonelocalremote
otel.span.sampling_resultDevelopment推荐字符串此 Span 的采样器的结果值DROPRECORD_ONLYRECORD_AND_SAMPLE

otel.span.parent.origin 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
localSpan 具有父 Span,且父 Span 的 Span 上下文 isRemote() 返回 falseDevelopment
Span 没有父 Span,它是根 SpanDevelopment
remoteSpan 具有父 Span,且父 Span 的 Span 上下文 isRemote() 返回 trueDevelopment

otel.span.sampling_result 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
DROPSpan 未被采样且未记录Development
RECORD_AND_SAMPLESpan 被采样且正在记录Development
RECORD_ONLYSpan 未被采样,但正在记录Development

Metric: otel.sdk.processor.span.queue.size

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
otel.sdk.processor.span.queue.sizeUpDownCounter{span}给定 SDK Span 处理器实例队列中的 Span 数量。[1]Development

[1]: 仅适用于使用队列的 Span 处理器,例如 SDK 批量 Span 处理器。

Attributes

Stability需求级别Value Type描述Example Values
otel.component.nameDevelopment推荐字符串一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[1]otlp_grpc_span_exporter/0custom-name
otel.component.typeDevelopment推荐字符串一个标识 OpenTelemetry 组件类型的名称。[2]batching_span_processorcom.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 批量日志记录处理器Development
batching_span_processor内置 SDK 批量 Span 处理器Development
otlp_grpc_log_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器Development
otlp_grpc_metric_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器Development
otlp_grpc_span_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器Development
otlp_http_json_log_exporter使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_json_metric_exporter使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_json_span_exporter使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器Development
otlp_http_log_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_metric_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_span_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器Development
periodic_metric_reader内置 SDK 定期导出指标读取器Development
prometheus_http_text_metric_exporter使用默认文本格式的 HTTP 上的 Prometheus 指标导出器Development
simple_log_processor内置 SDK 简单日志记录处理器Development
simple_span_processor内置 SDK 简单 Span 处理器Development
zipkin_http_span_exporter通过 HTTP 的 Zipkin Span 导出器Development

Metric: otel.sdk.processor.span.queue.capacity

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
otel.sdk.processor.span.queue.capacityUpDownCounter{span}给定 SDK Span 处理器实例队列可以容纳的最大 Span 数量。[1]Development

[1]: 仅适用于使用队列的 Span 处理器,例如 SDK 批量 Span 处理器。

Attributes

Stability需求级别Value Type描述Example Values
otel.component.nameDevelopment推荐字符串一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[1]otlp_grpc_span_exporter/0custom-name
otel.component.typeDevelopment推荐字符串一个标识 OpenTelemetry 组件类型的名称。[2]batching_span_processorcom.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 批量日志记录处理器Development
batching_span_processor内置 SDK 批量 Span 处理器Development
otlp_grpc_log_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器Development
otlp_grpc_metric_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器Development
otlp_grpc_span_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器Development
otlp_http_json_log_exporter使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_json_metric_exporter使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_json_span_exporter使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器Development
otlp_http_log_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_metric_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_span_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器Development
periodic_metric_reader内置 SDK 定期导出指标读取器Development
prometheus_http_text_metric_exporter使用默认文本格式的 HTTP 上的 Prometheus 指标导出器Development
simple_log_processor内置 SDK 简单日志记录处理器Development
simple_span_processor内置 SDK 简单 Span 处理器Development
zipkin_http_span_exporter通过 HTTP 的 Zipkin Span 导出器Development

Metric: otel.sdk.processor.span.processed

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
otel.sdk.processor.span.processedCounter{span}处理已完成(成功或失败)的 Span 的数量。[1]Development

[1]: 对于成功处理,error.type 不得设置。对于失败处理,error.type 必须包含失败原因。对于 SDK 简单和批量 Span 处理器,当 Span 已提交给导出器时,即使相应的导出调用尚未完成,也将其视为已处理。

Attributes

Stability需求级别Value Type描述Example Values
error.typeStable推荐字符串对失败原因的低基数描述。SDK 批量 Span 处理器必须使用 queue_full 来表示因队列已满而丢弃的 Span。[1]queue_full
otel.component.nameDevelopment推荐字符串一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[2]otlp_grpc_span_exporter/0custom-name
otel.component.typeDevelopment推荐字符串一个标识 OpenTelemetry 组件类型的名称。[3]batching_span_processorcom.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当检测不到自定义值时使用的回退错误值。Stable

otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
batching_log_processor内置 SDK 批量日志记录处理器Development
batching_span_processor内置 SDK 批量 Span 处理器Development
otlp_grpc_log_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器Development
otlp_grpc_metric_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器Development
otlp_grpc_span_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器Development
otlp_http_json_log_exporter使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_json_metric_exporter使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_json_span_exporter使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器Development
otlp_http_log_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_metric_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_span_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器Development
periodic_metric_reader内置 SDK 定期导出指标读取器Development
prometheus_http_text_metric_exporter使用默认文本格式的 HTTP 上的 Prometheus 指标导出器Development
simple_log_processor内置 SDK 简单日志记录处理器Development
simple_span_processor内置 SDK 简单 Span 处理器Development
zipkin_http_span_exporter通过 HTTP 的 Zipkin Span 导出器Development

Metric: otel.sdk.exporter.span.inflight

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
otel.sdk.exporter.span.inflightUpDownCounter{span}已传递给导出器但尚未导出的 Span 数量(未成功,也未失败)。[1]Development

[1]: 对于成功的导出,error.type 不得设置。对于失败的导出,error.type 必须包含失败原因。

Attributes

Stability需求级别Value Type描述Example Values
otel.component.nameDevelopment推荐字符串一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[1]otlp_grpc_span_exporter/0custom-name
otel.component.typeDevelopment推荐字符串一个标识 OpenTelemetry 组件类型的名称。[2]batching_span_processorcom.example.MySpanExporter
server.addressStable适用时可选字符串如果可用,则为服务器域名,无需进行反向 DNS 查找;否则为 IP 地址或 Unix 套接字名称。[3]example.com10.1.2.80/tmp/my.sock
server.portStable适用时可选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 批量日志记录处理器Development
batching_span_processor内置 SDK 批量 Span 处理器Development
otlp_grpc_log_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器Development
otlp_grpc_metric_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器Development
otlp_grpc_span_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器Development
otlp_http_json_log_exporter使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_json_metric_exporter使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_json_span_exporter使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器Development
otlp_http_log_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_metric_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_span_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器Development
periodic_metric_reader内置 SDK 定期导出指标读取器Development
prometheus_http_text_metric_exporter使用默认文本格式的 HTTP 上的 Prometheus 指标导出器Development
simple_log_processor内置 SDK 简单日志记录处理器Development
simple_span_processor内置 SDK 简单 Span 处理器Development
zipkin_http_span_exporter通过 HTTP 的 Zipkin Span 导出器Development

Metric: otel.sdk.exporter.span.exported

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
otel.sdk.exporter.span.exportedCounter{span}导出已完成(成功或失败)的 Span 的数量。[1]Development

[1]: 对于成功的导出,error.type 不得设置。对于失败的导出,error.type 必须包含失败原因。对于具有部分成功语义的导出器(例如,OTLP 带有 rejected_spans),拒绝的 Span 必须计为失败,只有非拒绝的 Span 才计为成功。如果没有可用的拒绝原因,则 rejected 应作为 error.type 的值。

Attributes

Stability需求级别Value Type描述Example Values
error.typeStable推荐字符串描述操作最终结束的一类错误。[1]rejectedtimeout500java.net.UnknownHostException
otel.component.nameDevelopment推荐字符串一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[2]otlp_grpc_span_exporter/0custom-name
otel.component.typeDevelopment推荐字符串一个标识 OpenTelemetry 组件类型的名称。[3]batching_span_processorcom.example.MySpanExporter
server.addressStable适用时可选字符串服务器域名(如果可用且无需反向 DNS 查询);否则,为 IP 地址或 Unix 套接字名称。[4]example.com10.1.2.80/tmp/my.sock
server.portStable适用时可选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当检测不到自定义值时使用的回退错误值。Stable

otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
batching_log_processor内置 SDK 批量日志记录处理器Development
batching_span_processor内置 SDK 批量 Span 处理器Development
otlp_grpc_log_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器Development
otlp_grpc_metric_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器Development
otlp_grpc_span_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器Development
otlp_http_json_log_exporter使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_json_metric_exporter使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_json_span_exporter使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器Development
otlp_http_log_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_metric_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_span_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器Development
periodic_metric_reader内置 SDK 定期导出指标读取器Development
prometheus_http_text_metric_exporter使用默认文本格式的 HTTP 上的 Prometheus 指标导出器Development
simple_log_processor内置 SDK 简单日志记录处理器Development
simple_span_processor内置 SDK 简单 Span 处理器Development
zipkin_http_span_exporter通过 HTTP 的 Zipkin Span 导出器Development

Log 指标

Metric: otel.sdk.log.created

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
otel.sdk.log.createdCounter{log_record}已提交给已启用的 SDK Logger 的日志数量。Development

Metric: otel.sdk.processor.log.queue.size

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
otel.sdk.processor.log.queue.sizeUpDownCounter{log_record}给定 SDK 日志处理器实例队列中的日志记录数量。[1]Development

[1]: 仅适用于使用队列的日志记录处理器,例如 SDK 批量日志记录处理器。

Attributes

Stability需求级别Value Type描述Example Values
otel.component.nameDevelopment推荐字符串一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[1]otlp_grpc_span_exporter/0custom-name
otel.component.typeDevelopment推荐字符串一个标识 OpenTelemetry 组件类型的名称。[2]batching_span_processorcom.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 批量日志记录处理器Development
batching_span_processor内置 SDK 批量 Span 处理器Development
otlp_grpc_log_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器Development
otlp_grpc_metric_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器Development
otlp_grpc_span_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器Development
otlp_http_json_log_exporter使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_json_metric_exporter使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_json_span_exporter使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器Development
otlp_http_log_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_metric_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_span_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器Development
periodic_metric_reader内置 SDK 定期导出指标读取器Development
prometheus_http_text_metric_exporter使用默认文本格式的 HTTP 上的 Prometheus 指标导出器Development
simple_log_processor内置 SDK 简单日志记录处理器Development
simple_span_processor内置 SDK 简单 Span 处理器Development
zipkin_http_span_exporter通过 HTTP 的 Zipkin Span 导出器Development

Metric: otel.sdk.processor.log.queue.capacity

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
otel.sdk.processor.log.queue.capacityUpDownCounter{log_record}给定 SDK 日志记录处理器实例队列可以容纳的最大日志记录数量。[1]Development

[1]: 仅适用于使用队列的日志记录处理器,例如 SDK 批量日志记录处理器。

Attributes

Stability需求级别Value Type描述Example Values
otel.component.nameDevelopment推荐字符串一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[1]otlp_grpc_span_exporter/0custom-name
otel.component.typeDevelopment推荐字符串一个标识 OpenTelemetry 组件类型的名称。[2]batching_span_processorcom.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 批量日志记录处理器Development
batching_span_processor内置 SDK 批量 Span 处理器Development
otlp_grpc_log_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器Development
otlp_grpc_metric_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器Development
otlp_grpc_span_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器Development
otlp_http_json_log_exporter使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_json_metric_exporter使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_json_span_exporter使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器Development
otlp_http_log_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_metric_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_span_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器Development
periodic_metric_reader内置 SDK 定期导出指标读取器Development
prometheus_http_text_metric_exporter使用默认文本格式的 HTTP 上的 Prometheus 指标导出器Development
simple_log_processor内置 SDK 简单日志记录处理器Development
simple_span_processor内置 SDK 简单 Span 处理器Development
zipkin_http_span_exporter通过 HTTP 的 Zipkin Span 导出器Development

Metric: otel.sdk.processor.log.processed

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
otel.sdk.processor.log.processedCounter{log_record}处理已完成(成功或失败)的日志记录的数量。[1]Development

[1]: 对于成功处理,error.type 不得设置。对于失败处理,error.type 必须包含失败原因。对于 SDK 简单和批量日志记录处理器,当日志记录已提交给导出器时,即使相应的导出调用尚未完成,也将其视为已处理。

Attributes

Stability需求级别Value Type描述Example Values
error.typeStable推荐字符串对失败原因的低基数描述。SDK 批量日志记录处理器必须使用 queue_full 来表示因队列已满而丢弃的日志记录。[1]queue_full
otel.component.nameDevelopment推荐字符串一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[2]otlp_grpc_span_exporter/0custom-name
otel.component.typeDevelopment推荐字符串一个标识 OpenTelemetry 组件类型的名称。[3]batching_span_processorcom.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当检测不到自定义值时使用的回退错误值。Stable

otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
batching_log_processor内置 SDK 批量日志记录处理器Development
batching_span_processor内置 SDK 批量 Span 处理器Development
otlp_grpc_log_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器Development
otlp_grpc_metric_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器Development
otlp_grpc_span_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器Development
otlp_http_json_log_exporter使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_json_metric_exporter使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_json_span_exporter使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器Development
otlp_http_log_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_metric_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_span_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器Development
periodic_metric_reader内置 SDK 定期导出指标读取器Development
prometheus_http_text_metric_exporter使用默认文本格式的 HTTP 上的 Prometheus 指标导出器Development
simple_log_processor内置 SDK 简单日志记录处理器Development
simple_span_processor内置 SDK 简单 Span 处理器Development
zipkin_http_span_exporter通过 HTTP 的 Zipkin Span 导出器Development

Metric: otel.sdk.exporter.log.inflight

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
otel.sdk.exporter.log.inflightUpDownCounter{log_record}已传递给导出器但尚未导出的日志记录数量(未成功,也未失败)。[1]Development

[1]: 对于成功的导出,error.type 不得设置。对于失败的导出,error.type 必须包含失败原因。

Attributes

Stability需求级别Value Type描述Example Values
otel.component.nameDevelopment推荐字符串一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[1]otlp_grpc_span_exporter/0custom-name
otel.component.typeDevelopment推荐字符串一个标识 OpenTelemetry 组件类型的名称。[2]batching_span_processorcom.example.MySpanExporter
server.addressStable适用时可选字符串如果可用,则为服务器域名,无需进行反向 DNS 查找;否则为 IP 地址或 Unix 套接字名称。[3]example.com10.1.2.80/tmp/my.sock
server.portStable适用时可选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 批量日志记录处理器Development
batching_span_processor内置 SDK 批量 Span 处理器Development
otlp_grpc_log_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器Development
otlp_grpc_metric_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器Development
otlp_grpc_span_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器Development
otlp_http_json_log_exporter使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_json_metric_exporter使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_json_span_exporter使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器Development
otlp_http_log_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_metric_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_span_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器Development
periodic_metric_reader内置 SDK 定期导出指标读取器Development
prometheus_http_text_metric_exporter使用默认文本格式的 HTTP 上的 Prometheus 指标导出器Development
simple_log_processor内置 SDK 简单日志记录处理器Development
simple_span_processor内置 SDK 简单 Span 处理器Development
zipkin_http_span_exporter通过 HTTP 的 Zipkin Span 导出器Development

Metric: otel.sdk.exporter.log.exported

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
otel.sdk.exporter.log.exportedCounter{log_record}导出已完成(成功或失败)的日志记录的数量。[1]Development

[1]: 对于成功的导出,error.type 不得设置。对于失败的导出,error.type 必须包含失败原因。对于具有部分成功语义的导出器(例如,OTLP 带有 rejected_log_records),拒绝的日志记录必须计为失败,只有非拒绝的日志记录才计为成功。如果没有可用的拒绝原因,则 rejected 应作为 error.type 的值。

Attributes

Stability需求级别Value Type描述Example Values
error.typeStable推荐字符串描述操作最终结束的一类错误。[1]rejectedtimeout500java.net.UnknownHostException
otel.component.nameDevelopment推荐字符串一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[2]otlp_grpc_span_exporter/0custom-name
otel.component.typeDevelopment推荐字符串一个标识 OpenTelemetry 组件类型的名称。[3]batching_span_processorcom.example.MySpanExporter
server.addressStable适用时可选字符串服务器域名(如果可用且无需反向 DNS 查询);否则,为 IP 地址或 Unix 套接字名称。[4]example.com10.1.2.80/tmp/my.sock
server.portStable适用时可选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当检测不到自定义值时使用的回退错误值。Stable

otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
batching_log_processor内置 SDK 批量日志记录处理器Development
batching_span_processor内置 SDK 批量 Span 处理器Development
otlp_grpc_log_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器Development
otlp_grpc_metric_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器Development
otlp_grpc_span_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器Development
otlp_http_json_log_exporter使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_json_metric_exporter使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_json_span_exporter使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器Development
otlp_http_log_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_metric_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_span_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器Development
periodic_metric_reader内置 SDK 定期导出指标读取器Development
prometheus_http_text_metric_exporter使用默认文本格式的 HTTP 上的 Prometheus 指标导出器Development
simple_log_processor内置 SDK 简单日志记录处理器Development
simple_span_processor内置 SDK 简单 Span 处理器Development
zipkin_http_span_exporter通过 HTTP 的 Zipkin Span 导出器Development

Metric 指标

Metric: otel.sdk.exporter.metric_data_point.inflight

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
otel.sdk.exporter.metric_data_point.inflightUpDownCounter{data_point}已传递给导出器但尚未导出的指标数据点数量(未成功,也未失败)。[1]Development

[1]: 对于成功的导出,error.type 不得设置。对于失败的导出,error.type 必须包含失败原因。

Attributes

Stability需求级别Value Type描述Example Values
otel.component.nameDevelopment推荐字符串一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[1]otlp_grpc_span_exporter/0custom-name
otel.component.typeDevelopment推荐字符串一个标识 OpenTelemetry 组件类型的名称。[2]batching_span_processorcom.example.MySpanExporter
server.addressStable适用时可选字符串如果可用,则为服务器域名,无需进行反向 DNS 查找;否则为 IP 地址或 Unix 套接字名称。[3]example.com10.1.2.80/tmp/my.sock
server.portStable适用时可选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 批量日志记录处理器Development
batching_span_processor内置 SDK 批量 Span 处理器Development
otlp_grpc_log_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器Development
otlp_grpc_metric_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器Development
otlp_grpc_span_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器Development
otlp_http_json_log_exporter使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_json_metric_exporter使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_json_span_exporter使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器Development
otlp_http_log_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_metric_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_span_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器Development
periodic_metric_reader内置 SDK 定期导出指标读取器Development
prometheus_http_text_metric_exporter使用默认文本格式的 HTTP 上的 Prometheus 指标导出器Development
simple_log_processor内置 SDK 简单日志记录处理器Development
simple_span_processor内置 SDK 简单 Span 处理器Development
zipkin_http_span_exporter通过 HTTP 的 Zipkin Span 导出器Development

Metric: otel.sdk.exporter.metric_data_point.exported

此指标是推荐的。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
otel.sdk.exporter.metric_data_point.exportedCounter{data_point}导出已完成(成功或失败)的指标数据点的数量。[1]Development

[1]: 对于成功的导出,error.type 不得设置。对于失败的导出,error.type 必须包含失败原因。对于具有部分成功语义的导出器(例如,OTLP 带有 rejected_data_points),拒绝的数据点必须计为失败,只有非拒绝的数据点才计为成功。如果没有可用的拒绝原因,则 rejected 应作为 error.type 的值。

Attributes

Stability需求级别Value Type描述Example Values
error.typeStable推荐字符串描述操作最终结束的一类错误。[1]rejectedtimeout500java.net.UnknownHostException
otel.component.nameDevelopment推荐字符串一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[2]otlp_grpc_span_exporter/0custom-name
otel.component.typeDevelopment推荐字符串一个标识 OpenTelemetry 组件类型的名称。[3]batching_span_processorcom.example.MySpanExporter
server.addressStable适用时可选字符串服务器域名(如果可用且无需反向 DNS 查询);否则,为 IP 地址或 Unix 套接字名称。[4]example.com10.1.2.80/tmp/my.sock
server.portStable适用时可选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当检测不到自定义值时使用的回退错误值。Stable

otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
batching_log_processor内置 SDK 批量日志记录处理器Development
batching_span_processor内置 SDK 批量 Span 处理器Development
otlp_grpc_log_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器Development
otlp_grpc_metric_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器Development
otlp_grpc_span_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器Development
otlp_http_json_log_exporter使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_json_metric_exporter使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_json_span_exporter使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器Development
otlp_http_log_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_metric_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_span_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器Development
periodic_metric_reader内置 SDK 定期导出指标读取器Development
prometheus_http_text_metric_exporter使用默认文本格式的 HTTP 上的 Prometheus 指标导出器Development
simple_log_processor内置 SDK 简单日志记录处理器Development
simple_span_processor内置 SDK 简单 Span 处理器Development
zipkin_http_span_exporter通过 HTTP 的 Zipkin Span 导出器Development

Operation 指标

Metric: otel.sdk.metric_reader.collection.duration

此指标是推荐的。

此指标应使用 ExplicitBucketBoundaries 指定,且只有一个不带边界的桶。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
otel.sdk.metric_reader.collection.durationHistograms指标读取器的 collect 操作的持续时间。[1]Development

[1]: 对于成功的 collection,error.type 不得设置。对于失败的 collection,error.type 应包含失败原因。指标 collection 可能对某些 MetricProducer 成功,而对其他 MetricProducer 失败。在这种情况下,error.type 应设置为任何失败原因。

Attributes

Stability需求级别Value Type描述Example Values
error.typeStable推荐字符串描述操作最终结束的一类错误。[1]timeoutjava.net.UnknownHostExceptionserver_certificate_invalid500
otel.component.nameDevelopment推荐字符串一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[2]otlp_grpc_span_exporter/0custom-name
otel.component.typeDevelopment推荐字符串一个标识 OpenTelemetry 组件类型的名称。[3]batching_span_processorcom.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当检测不到自定义值时使用的回退错误值。Stable

otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
batching_log_processor内置 SDK 批量日志记录处理器Development
batching_span_processor内置 SDK 批量 Span 处理器Development
otlp_grpc_log_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器Development
otlp_grpc_metric_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器Development
otlp_grpc_span_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器Development
otlp_http_json_log_exporter使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_json_metric_exporter使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_json_span_exporter使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器Development
otlp_http_log_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_metric_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_span_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器Development
periodic_metric_reader内置 SDK 定期导出指标读取器Development
prometheus_http_text_metric_exporter使用默认文本格式的 HTTP 上的 Prometheus 指标导出器Development
simple_log_processor内置 SDK 简单日志记录处理器Development
simple_span_processor内置 SDK 简单 Span 处理器Development
zipkin_http_span_exporter通过 HTTP 的 Zipkin Span 导出器Development

Metric: otel.sdk.exporter.operation.duration

此指标是推荐的。

此指标应使用 ExplicitBucketBoundaries 指定,且只有一个不带边界的桶。

名称Instrument TypeUnit (UCUM)描述Stability实体关联
otel.sdk.exporter.operation.durationHistograms导出一批遥测记录的持续时间。[1]Development

[1]: 此指标使用 HTTPgRPC 的完整成功定义来定义成功的操作。其他所有情况均定义为不成功的操作。对于成功的操作,error.type 不得设置。对于不成功的导出操作,error.type 必须包含相关的失败原因。

Attributes

Stability需求级别Value Type描述Example Values
error.typeStable有条件要求 如果操作以错误结束字符串描述操作最终结束的一类错误。[1]rejectedtimeout500java.net.UnknownHostException
http.response.status_codeStable适用时可选int在此导出调用范围内执行的最后一次 HTTP 请求的 HTTP 状态码。200
otel.component.nameDevelopment推荐字符串一个唯一标识 OpenTelemetry 组件实例在其包含的 SDK 实例内的名称。[2]otlp_grpc_span_exporter/0custom-name
otel.component.typeDevelopment推荐字符串一个标识 OpenTelemetry 组件类型的名称。[3]otlp_grpc_span_exportercom.example.MySpanExporter
rpc.grpc.status_codeDevelopment适用时可选int在此导出调用范围内执行的最后一次 gRPC 请求的 gRPC 状态码。0; 1; 2
server.addressStable适用时可选字符串服务器域名(如果可用且无需反向 DNS 查询);否则,为 IP 地址或 Unix 套接字名称。[4]example.com10.1.2.80/tmp/my.sock
server.portStable适用时可选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当检测不到自定义值时使用的回退错误值。Stable

otel.component.type 具有以下一组已知值。如果其中一个适用,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
batching_log_processor内置 SDK 批量日志记录处理器Development
batching_span_processor内置 SDK 批量 Span 处理器Development
otlp_grpc_log_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 日志记录导出器Development
otlp_grpc_metric_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP 指标导出器Development
otlp_grpc_span_exporter使用 Protobuf 序列化的 gRPC 上的 OTLP Span 导出器Development
otlp_http_json_log_exporter使用 JSON 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_json_metric_exporter使用 JSON 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_json_span_exporter使用 JSON 序列化的 HTTP 上的 OTLP Span 导出器Development
otlp_http_log_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 日志记录导出器Development
otlp_http_metric_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP 指标导出器Development
otlp_http_span_exporter使用 Protobuf 序列化的 HTTP 上的 OTLP Span 导出器Development
periodic_metric_reader内置 SDK 定期导出指标读取器Development
prometheus_http_text_metric_exporter使用默认文本格式的 HTTP 上的 Prometheus 指标导出器Development
simple_log_processor内置 SDK 简单日志记录处理器Development
simple_span_processor内置 SDK 简单 Span 处理器Development
zipkin_http_span_exporter通过 HTTP 的 Zipkin Span 导出器Development

rpc.grpc.status_code 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以改用自定义值。

描述Stability
0OKDevelopment
1CANCELLEDDevelopment
2UNKNOWNDevelopment
3INVALID_ARGUMENTDevelopment
4DEADLINE_EXCEEDEDDevelopment
5NOT_FOUNDDevelopment
6ALREADY_EXISTSDevelopment
7PERMISSION_DENIEDDevelopment
8RESOURCE_EXHAUSTEDDevelopment
9FAILED_PRECONDITIONDevelopment
10ABORTEDDevelopment
11OUT_OF_RANGEDevelopment
12UNIMPLEMENTEDDevelopment
13INTERNALDevelopment
14UNAVAILABLEDevelopment
15DATA_LOSSDevelopment
16UNAUTHENTICATEDDevelopment