分布式追踪 OpenTelemetry Span字段
如上下文传播中所讨论的,消息追踪由在事件网格的每个点发出的跨度组成,这些跨度被 Solace Open Telemetry 接收器消费(并转换),并发送到您选择的后端,后端重新组装这些跨度,并提供事件消息的移动和处理的视觉视图。每个传递到后端的跨度由跨度字段组成,包括跨度属性(键值对)。
以下表格列出了发送到您的可观测性后端的事件消息中的 OpenTelemetry 跨度属性(由配置了 Solace Open Telemetry 接收器的 OpenTelemetry 收集器)。
有关追踪、跨度、跨度属性(键值对)等的更多信息,请参见 OpenTelemetry 追踪。
- OpenTelemetry 规范属性
- OpenTelemetry 语义约定属性
- Solace 跨度属性
- 弃用属性
OpenTelemetry 规范属性
这些是由 OpenTelemetry 定义的通用属性,适用于各种类型的系统上的跨度 ,提供识别、计时和上下文等元数据。
以下表格的内容基于 OpenTelemetry 规范版本 1.22.0。有关更多信息,请参见 OpenTelemetry 规范。
Span 属性 | 类型 | 描述 | 示例 | 属性出现在: |
---|---|---|---|---|
发送跨度 | 接收跨度 | 移动跨度 | 删除跨度 | |
--- | --- | --- | --- | |
TraceId | 16字节数组 | 与跨度关联的 traceID。 | 4bf92f3577b34da6a3ce929d0e0e472a | ![]() |
SpanId | 8字节数组 | 与跨度关联的 spanID。 | b3c2a1f3d1e0a3b4 | |
TraceState | 键值对集合 | TraceState 是跨度上下文的一部分,有关更多信息请参见 OpenTelemetry - TraceState。 | vendor1=value1,vendor2=value2 ... | |
SpanKind | 枚举 | 指定跨度在追踪中的角色。可以是 PRODUCER 或 CONSUMER 。 | PRODUCER | |
StartTimeUnixNano | 整数 | 跨度的开始时间戳。 | 1693056000000000000 | |
EndTimeUnixNano | 整数 | 跨度的结束时间戳。 | 1693056060000000000 | |
Status | 枚举 | OpenTelemetry 跨度的状态。可以是 OK 、ERROR 或 UNSET 之一。 | OK | |
ParentSpanId | 8字节数组 | 与父跨度关联的 spanID。 | b3c2a1f3d1e0a3b4 |
OpenTelemetry 语义约定属性
OpenTelemetry 语义约定属性是具有标准化命名约定的属性。它们用于以一致的方式描述不同系统中的常见操作、资源和事件。
以下表格的内容基于 OpenTelemetry 语义约定版本 1.26.0。OpenTelemetry 未来所做的任何更改可能需要对这些属性进行相应的更新。有关更多信息,请参见 OpenTelemetry 语义约定属性注册表。
Span 属性 | 类型 | 描述 | 示例 | 属性出现在: |
---|---|---|---|---|
发送跨度 | 接收跨度 | 移动跨度 | 删除跨度 | |
--- | --- | --- | --- | |
messaging.system | 字符串 | 事件网格的主要消息系统。 | SolacePubSub+ | |
service.instance.id | 字符串 | 事件代理的消息 VPN。 | my-production-vpn | |
service.version | 字符串 | 事件代理的当前版本。 | 10.10.1 | |
service.name | 字符串 | 当前服务的逻辑名称。 | solace-cloud-client | |
messaging.operation.name | 字符串 | 消息系统特定的操作名称。可以是 receive 、send 、move 或 delete 之一。 | receive | 发送跨度 |
messaging.operation.type | 字符串 | 标识消息操作类型的字符串。可以是:- receive —事件代 理接收或入队的事件消息。- publish —事件代理发送给消费者或由消费者确认的事件消息。- move —移动到配置的死信队列的事件消息。- delete —由事件代理或管理员删除的事件消息。 | publish | 发送跨度 |
network.protocol.name | 字符串 | 事件代理接收消息时使用的协议。可以是 SMF 、REST 、AMQP 或 MQTT 之一。 | SMF | 发送跨度 |
network.protocol.version | 字符串 | 使用的协议版本。例如在 MQTT 中可以是 3.1 或 5.0 。 | 3.1 | |
messaging.message.id | 字符串 | 事件代理的应用消息 ID。这是一个用户定义的属性,允许应用程序为每条消息分配一个唯一的标识符。 | 452a7c7c704887f1572b18fc2 | |
messaging.message.conversation_id | 字符串 | 消息的相关 ID,通常由消息生产者设置,用于在您的消息系统中关联消息。 | MyCorrelationID | |
messaging.message.body.size | 整数 | 消息体的大小,单位为字节。 | 1439 | |
messaging.message.envelope.size | 整数 | 消息体和元数据的大小,单位为字节。 | 2738 | |
messaging.destination.name | 字符串 | 消息发布到的主题或队列。 | my/topic/destination | |
messaging.source.kind | 字符串 | 消息(或批次)发布到的端点类型。可以是 queue 或 topicEndpoint 。 | queue | |
messaging.source.name | 字符串 | 消息(或批次)原始的 Solace 主题或队列。 | my/publish/destination | |
server.address | 字符串 | 事件代理接收消息的 IP 地址。 | 10.1.2.80 | |
server.port | 整数 | 事件代理接收消息的端口。 | 8080 | |
network.peer.address | 字符串 | 发布客户端的 IP 地址。 | 10.1.2.80 | |
network.peer.port | 整数 | 发布客户端的端口。 | 65123 |
Solace 跨度属性
Solace 跨度属性提供了使用 Solace 系统和应用程序的消息流的额外上下文和详细信息。
以下表格的内容准确反映了 PubSub+ 事件代理版本 10.10.1 或更高版本。
Span 属性 | 类型 | 描述 | 示例 | 属性出现在: |
---|---|---|---|---|
发送跨度 | 接收跨度 | 移动跨度 | 删除跨度 | |
--- | --- | --- | --- | |
messaging.solace.partition_number | 整数 | 事件代理中用于跨多个分区分发消息的队列或主题端点的分区号。 | 3 | |
messaging.solace.source.<br>partition_number | 整数 | 消息正在从中移动的队列或主题端点的分区号,如果该队列是分区队列。 | 3 | |
messaging.solace.destination.partition_number | 整数 | 消息正在移动到的目标死信队列(DMQ)的分区号,如果该队列是分区队列。 | 5 | 发送跨度 |
messaging.solace.source.kind | 枚举 | 消息源的类型。可以是 queue 或 topicEndpoint 。 | queue | 发送跨度 |
messaging.solace.client_username | 字符串 | 客户端应用程序用于身份验证并连接到事件代理的客户用户名。 | user_admin | 发送跨度 |
messaging.solace.client_name | 字符串 | 客户端名称是每个客户端连接到事件代理的唯一标识符。 | client1234 | 发送跨度 |
messaging.solace.operation.reason | 枚举 | 删除消息或将其移动到死信队列的原因。可以是以下之一:ttlExpired —消息的生存时间到期。rejectedNack —带有 Rejected 结果的负确认。maxRedeliveriesExceeded —最大重新交付次数达到或超过。hopCountExceeded —跳数超过(仅限删除跨度)。ingressSelector —目的地无法匹配任何入口选择器规则(仅限删除跨度)。adminAction —由管理员删除消息(仅限删除跨度)。 | ttlExpired | 发送跨度 |
messaging.solace.<br>replication_group_message_id | 字符串 | 接收到的消息的复制组消息 ID,用于在复制组内唯一标识一条消息。 | 0xA5F7D4E2B3C1A4F0 | |
messaging.solace.priority | 整数 | 发布消息的优先级,允许您控制从队列中交付消息的顺序。 | 9 | |
messaging.solace.ttl | 整数 | 发布消息的生 存时间(TTL),单位为毫秒。 | 60000 | |
messaging.solace.dmq_eligible | 布尔 | 表示消息中设置了死信队列(DMQ)合格位。 | true | |
messaging.solace.<br>dropped_enqueue_events_success | 布尔 | 表示丢弃消息的入队成功。 | true | |
messaging.solace.<br>dropped_enqueue_events_failed | 布尔 | 表示丢弃消息的入队失败。 | true | |
messaging.solace.reply_to_topic | 字符串 | 接收到的消息的回复主题。 | replyto/destination | |
messaging.solace.<br>broker_receive_time_unix_nano | 整数 | 表示事件代理首次识别消息需要被追踪的时间。 | 1693056060000000000 | |
messaging.solace.dropped_application_message_properties | 布尔 | 如果为 true ,表示由于超出限制,消息中的不是所有用户属性都被捕捉到 | ||
在 user_properties 中。事件代理支持最多 8 KiB 的用户属性数据。 | true | |||
messaging.solace.delivery_mode | 枚举 | 消息的传递模式,可以是 persistent 、non-persistent 或 direct 。 | persistent | |
messaging.solace.message_replayed | 布尔 | 表示消息是否已被事件代理重放。 | true | |
messaging.solace.send.outcome | 枚举 | 显示发送消息的结果。可以是以下之一:- accepted - rejected - released - delivery failed - flow unbound - transaction commit - transaction commit failed - transaction rollback | accepted | |
messaging.solace.user_properties.<...> | 字符串 | 自定义跨度属性,其中 <...> 是用户分配的键。 | some-user-value-1 | |
messaging.solace.destination.type | 枚举 | 消息目的地的类型。可以是 queue 或 topicEndpoint 。 | topicEndpoint | |
messaging.solace.enqueue_error_message | 字符串 | 描述入队操作失败原因的错误消息。 | "The specified queue does not exist" | |
messaging.solace.rejects_all_enqueues | 布尔 | 表示此跨度中的所有其他非错误入队事件都被拒绝。换句话说,无论某些入队事件可能指示什么,消息都没有入队到任何 目的地。 | true | |
messaging.solace.ttl_override | 布尔 | TTL 覆盖用于设置或覆盖消息的 TTL 值,无论消息生产者指定的 TTL 如何。 | true | |
事务属性 | ||||
messaging.solace.transaction_initiator | 字符串 | 标识是否使用管理界面或客户端执行 ADMIN 操作。 | CLIENT | |
messaging.solace.transaction_id | 字符串 | 事务 ID。所有属于同一事务的消息都具有相同的此 ID 值。 | tx12345-abcde-67890 | |
messaging.solace.transacted_session_name | 字符串 | 事务事件的本地 ID 名称。 | OrderProcessSession | |
messaging.solace.transacted_session_id | 字符串 | 事务事件的本地 ID 类型。 | session-98765-zyxwv | |
messaging.solace.<br>transaction_error_message | 字符串 | 描述事务操作失败原因。 | "Transaction timeout due to network delay" | |
messaging.solace.transaction_xid | 字符串 | XA 事务的事务 ID | xid-45678-pqrst-12345 | |
行李传播 | ||||
<br> messaging.solace.message.baggage.<br><BAGGAGE_KEY_NAME> | 字符串 | 提供通过上下文传播提供的行李键名称关联的值。 | region=us-west | |
<br> messaging.solace.message.<br>baggage_metadata.<BAGGAGE_KEY_NAME> | 字符串 | 提供通过上下文传播提供的行李键名称关联的元数据值。 | log=true |
弃用属性
以下字段在 PubSub+ 事件代理版本 10.10.1 中已被弃用:
弃用属性 | 替代属性 |
---|---|
messaging.protocol | network.protocol.name |
messaging.protocol_version | network.protocol.version |
messaging.message_id | messaging.message.id |
messaging.conversation_id | messaging.message.conversation_id |
messaging.message.payload_size_bytes | - messaging.message.body.size |
messaging.message.envelope.size
| |net.host.ip
|server.address
| |net.host.port
|server.port
| |net.peer.ip
|network.peer.address
| |net.peer.port
|network.peer.port
| |messaging.operation
| -messaging.operation.name
messaging.operation.type
| |messaging.destination
|messaging.destination.name
| |messaging.solace.destination_type
|messaging.solace.destination.type
|