Messaging
常规消息属性
描述消息系统和消息活动的遥测的属性。
Attributes
| 键 | Stability | Value Type | 描述 | Example Values |
|---|---|---|---|---|
messaging.batch.message_count | int | 在批处理操作范围内发送、接收或处理的消息数量。[1] | 0; 1; 2 | |
messaging.client.id | 字符串 | 标识消耗或生成消息的客户端的唯一标识符。 | client-5; myhost@8742@s8083jm | |
messaging.consumer.group.name | 字符串 | 与消费者关联的消费者组的名称。[2] | my-group; indexer | |
messaging.destination.anonymous | 布尔值 | 一个布尔值,如果消息目标是匿名的(可能是未命名或具有自动生成的名称),则为 true。 | ||
messaging.destination.name | 字符串 | 消息目标名称 [3] | MyQueue; MyTopic | |
messaging.destination.partition.id | 字符串 | 发送或接收消息的分区的标识符,在 messaging.destination.name 中是唯一的。 | 1 | |
messaging.destination.subscription.name | 字符串 | 消耗消息的目标订阅的名称。[4] | subscription-a | |
messaging.destination.template | 字符串 | 消息目标名称的低基数表示 [5] | /customers/{customerId} | |
messaging.destination.temporary | 布尔值 | 一个布尔值,如果消息目标是临时的,并且在消息处理后可能不再存在,则为 true。 | ||
messaging.message.body.size | int | 消息正文的大小(以字节为单位)。[6] | 1439 | |
messaging.message.conversation_id | 字符串 | 标识消息所属的对话的对话 ID,表示为字符串。有时称为“相关性 ID”。 | MyConversationId | |
messaging.message.envelope.size | int | 消息正文和元数据的大小(以字节为单位)。[7] | 2738 | |
messaging.message.id | 字符串 | 消息传递系统用作消息标识符的值,表示为字符串。 | 452a7c7c7c7048c2f887f61572b18fc2 | |
messaging.operation.name | 字符串 | 消息操作的系统特定名称。 | ack; nack; send | |
messaging.operation.type | 字符串 | 标识消息操作类型的字符串。[8] | create; send; receive | |
messaging.system | 字符串 | 由客户端仪器识别的消息系统。[9] | activemq; aws.sns; aws_sqs |
[1] messaging.batch.message_count: 仪器不应在处理单条消息的跨度上设置 messaging.batch.message_count。当消息客户端库为同一操作支持批量和单消息 API 时,仪器应使用 messaging.batch.message_count 用于批量 API,而不应将其用于单消息 API。
[2] messaging.consumer.group.name: 针对各个消息系统的语义约定应记录 messaging.consumer.group.name 是否适用以及它在该系统上下文中的含义。
[3] messaging.destination.name: 目标名称应唯一标识代理中的特定队列、主题或其他实体。如果代理没有此类概念,则目标名称应唯一标识代理。
[4] messaging.destination.subscription.name: 针对各个消息系统的语义约定应记录 messaging.destination.subscription.name 是否适用以及它在该系统上下文中的含义。
[5] messaging.destination.template: 目标名称可以由模板构成。例如,目标名称可能包含用户名或产品 ID。虽然在这种情况下目标名称的基数很高,但底层模板的基数很低,可以有效地用于分组和聚合。
[6] messaging.message.body.size: 这可以指压缩或未压缩的正文大小。如果已知两种大小,则应使用未压缩的正文大小。
[7] messaging.message.envelope.size: 这可以指压缩或未压缩的大小。如果已知两种大小,则应使用未压缩的大小。
[8] messaging.operation.type: 如果使用自定义值,则其基数必须很低。
[9] messaging.system: 实际的消息系统可能与客户端已知的不同。例如,当使用 Kafka 客户端库与 Azure Event Hubs 通信时,messaging.system 将根据仪器的最佳知识设置为 kafka。
messaging.operation.type 具有以下一系列已知值。如果适用其中一个,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
create | 创建消息。“Create”跨度始终指单条消息,用于为批量发送场景中的消息提供唯一的创建上下文。 | |
process | 一个或多个消息由消费者处理。 | |
receive | 一个或多个消息由消费者请求。此操作指拉取式场景,其中消费者显式调用消息 SDK 的方法来接收消息。 | |
send | 提供一个或多个消息以发送到中介。如果发送了单条消息,“Send”跨度的上下文可用作创建上下文,无需创建“Create”跨度。 | |
settle | 一个或多个消息已结算。 |
messaging.system 具有以下一系列已知值。如果适用其中一个,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
activemq | Apache ActiveMQ | |
aws.sns | Amazon Simple Notification Service (SNS) | |
aws_sqs | Amazon Simple Queue Service (SQS) | |
eventgrid | Azure Event Grid | |
eventhubs | Azure Event Hubs | |
gcp_pubsub | Google Cloud Pub/Sub | |
jms | Java Message Service | |
kafka | Apache Kafka | |
pulsar | Apache Pulsar | |
rabbitmq | RabbitMQ | |
rocketmq | Apache RocketMQ | |
servicebus | Azure Service Bus |
Azure Event Hubs 属性
此组描述了 Azure Event Hubs 特有的属性。
Attributes
| 键 | Stability | Value Type | 描述 | Example Values |
|---|---|---|---|---|
messaging.eventhubs.message.enqueued_time | int | 消息被接受并存储在该实体中的 UTC epoch 秒。 | 1701393730 |
GCP Pub/Sub 属性
此组描述了 GCP Pub/Sub 特有的属性。
Attributes
| 键 | Stability | Value Type | 描述 | Example Values |
|---|---|---|---|---|
messaging.gcp_pubsub.message.ack_deadline | int | 在修改 ack deadline 请求中设置的 ack deadline(以秒为单位)。 | 10 | |
messaging.gcp_pubsub.message.ack_id | 字符串 | 给定消息的 ack ID。 | ack_id | |
messaging.gcp_pubsub.message.delivery_attempt | int | 给定消息的传递尝试次数。 | 2 | |
messaging.gcp_pubsub.message.ordering_key | 字符串 | 给定消息的排序键。如果属性不存在,则消息没有排序键。 | ordering_key |
Kafka 属性
此组描述了 Apache Kafka 特有的属性。
Attributes
| 键 | Stability | Value Type | 描述 | Example Values |
|---|---|---|---|---|
messaging.kafka.message.key | 字符串 | Kafka 中的消息键用于对相似消息进行分组,以确保它们在同一个分区上传递。它们与 messaging.message.id 不同,因为它们不是唯一的。如果键为 null,则不得设置该属性。[10] | myKey | |
messaging.kafka.message.tombstone | 布尔值 | 一个布尔值,如果消息是墓碑消息,则为 true。 | ||
messaging.kafka.offset | int | 记录在相应 Kafka 分区中的偏移量。 | 42 |
[10] messaging.kafka.message.key: 如果键类型不是字符串,则必须为其属性提供其字符串表示形式。如果键没有明确的、规范的字符串形式,则不要包含其值。
RabbitMQ 属性
此组描述了 RabbitMQ 特有的属性。
Attributes
| 键 | Stability | Value Type | 描述 | Example Values |
|---|---|---|---|---|
messaging.rabbitmq.destination.routing_key | 字符串 | RabbitMQ 消息路由键。 | myKey | |
messaging.rabbitmq.message.delivery_tag | int | RabbitMQ 消息传递标签 | 123 |
RocketMQ 属性
此组描述了 RocketMQ 特有的属性。
Attributes
| 键 | Stability | Value Type | 描述 | Example Values |
|---|---|---|---|---|
messaging.rocketmq.consumption_model | 字符串 | 消息消费模型。这仅适用于消费者跨度。 | clustering; broadcasting | |
messaging.rocketmq.message.delay_time_level | int | 延迟消息的延迟时间级别,它决定了消息的延迟时间。 | 3 | |
messaging.rocketmq.message.delivery_timestamp | int | 延迟消息预计传递给消费者的毫秒级时间戳。 | 1665987217045 | |
messaging.rocketmq.message.group | 字符串 | 对于 FIFO 消息至关重要。属于同一消息组的消息在同一消费者组内始终逐个处理。 | myMessageGroup | |
messaging.rocketmq.message.keys | string[] | 消息的键(Key),除了消息 ID 之外的另一种标记消息的方式。 | ["keyA", "keyB"] | |
messaging.rocketmq.message.tag | 字符串 | 除了主题之外,消息的二级分类器。 | tagA | |
messaging.rocketmq.message.type | 字符串 | 消息的类型。 | normal; fifo; delay | |
messaging.rocketmq.namespace | 字符串 | RocketMQ 资源的命名空间,不同命名空间中的资源是独立的。 | myNamespace |
messaging.rocketmq.consumption_model 具有以下一系列已知值。如果适用其中一个,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
broadcasting | 广播消费模型 | |
clustering | 集群消费模型 |
messaging.rocketmq.message.type 具有以下一系列已知值。如果适用其中一个,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
delay | 延迟消息 | |
fifo | FIFO 消息 | |
normal | 普通消息 | |
transaction | 事务消息 |
Azure Service Bus 属性
此组描述了 Azure Service Bus 特有的属性。
Attributes
| 键 | Stability | Value Type | 描述 | Example Values |
|---|---|---|---|---|
messaging.servicebus.disposition_status | 字符串 | 描述 结算类型。 | complete; abandon; dead_letter | |
messaging.servicebus.message.delivery_count | int | 已为该消息尝试的传递次数。 | 2 | |
messaging.servicebus.message.enqueued_time | int | 消息被接受并存储在该实体中的 UTC epoch 秒。 | 1701393730 |
messaging.servicebus.disposition_status 具有以下一系列已知值。如果适用其中一个,则必须使用相应的值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
abandon | 消息已放弃 | |
complete | 消息已完成 | |
dead_letter | 消息已发送到死信队列 | |
defer | 消息已延迟 |
已弃用的消息属性
描述已弃用的消息属性。
Attributes
| 键 | Stability | Value Type | 描述 | Example Values |
|---|---|---|---|---|
messaging.client_id | 已替换为 messaging.client.id。 | 字符串 | 已弃用,请改用 messaging.client.id。 | client-5; myhost@8742@s8083jm |
messaging.destination_publish.anonymous | 已移除。目前没有替代项。 | 布尔值 | 已弃用,目前没有替代品。 | |
messaging.destination_publish.name | 已移除。目前没有替代项。 | 字符串 | 已弃用,目前没有替代品。 | MyQueue; MyTopic |
messaging.eventhubs.consumer.group | 已替换为 messaging.consumer.group.name。 | 字符串 | 已弃用,请改用 messaging.consumer.group.name。 | $Default |
messaging.kafka.consumer.group | 已替换为 messaging.consumer.group.name。 | 字符串 | 已弃用,请改用 messaging.consumer.group.name。 | my-group |
messaging.kafka.destination.partition | messaging.destination.partition.id 属性中分区的记录字符串表示形式。 | int | 已弃用,请改用 messaging.destination.partition.id。 | 2 |
messaging.kafka.message.offset | 已替换为 messaging.kafka.offset。 | int | 已弃用,请改用 messaging.kafka.offset。 | 42 |
messaging.operation | 已替换为 messaging.operation.type。 | 字符串 | 已弃用,请改用 messaging.operation.type。 | publish; create; process |
messaging.rocketmq.client_group | 在消费者跨度上已替换为 messaging.consumer.group.name。生产者跨度没有替代项。 | 字符串 | 已弃用,请改用 messaging.consumer.group.name。 | myConsumerGroup |
messaging.servicebus.destination.subscription_name | 已替换为 messaging.destination.subscription.name。 | 字符串 | 已弃用,请改用 messaging.destination.subscription.name。 | subscription-a |