Messaging

常规消息属性

描述消息系统和消息活动的遥测的属性。

Attributes

StabilityValue Type描述Example Values
messaging.batch.message_countDevelopmentint在批处理操作范围内发送、接收或处理的消息数量。[1]0; 1; 2
messaging.client.idDevelopment字符串标识消耗或生成消息的客户端的唯一标识符。client-5; myhost@8742@s8083jm
messaging.consumer.group.nameDevelopment字符串与消费者关联的消费者组的名称。[2]my-group; indexer
messaging.destination.anonymousDevelopment布尔值一个布尔值,如果消息目标是匿名的(可能是未命名或具有自动生成的名称),则为 true。
messaging.destination.nameDevelopment字符串消息目标名称 [3]MyQueue; MyTopic
messaging.destination.partition.idDevelopment字符串发送或接收消息的分区的标识符,在 messaging.destination.name 中是唯一的。1
messaging.destination.subscription.nameDevelopment字符串消耗消息的目标订阅的名称。[4]subscription-a
messaging.destination.templateDevelopment字符串消息目标名称的低基数表示 [5]/customers/{customerId}
messaging.destination.temporaryDevelopment布尔值一个布尔值,如果消息目标是临时的,并且在消息处理后可能不再存在,则为 true。
messaging.message.body.sizeDevelopmentint消息正文的大小(以字节为单位)。[6]1439
messaging.message.conversation_idDevelopment字符串标识消息所属的对话的对话 ID,表示为字符串。有时称为“相关性 ID”。MyConversationId
messaging.message.envelope.sizeDevelopmentint消息正文和元数据的大小(以字节为单位)。[7]2738
messaging.message.idDevelopment字符串消息传递系统用作消息标识符的值,表示为字符串。452a7c7c7c7048c2f887f61572b18fc2
messaging.operation.nameDevelopment字符串消息操作的系统特定名称。ack; nack; send
messaging.operation.typeDevelopment字符串标识消息操作类型的字符串。[8]create; send; receive
messaging.systemDevelopment字符串由客户端仪器识别的消息系统。[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”跨度始终指单条消息,用于为批量发送场景中的消息提供唯一的创建上下文。Development
process一个或多个消息由消费者处理。Development
receive一个或多个消息由消费者请求。此操作指拉取式场景,其中消费者显式调用消息 SDK 的方法来接收消息。Development
send提供一个或多个消息以发送到中介。如果发送了单条消息,“Send”跨度的上下文可用作创建上下文,无需创建“Create”跨度。Development
settle一个或多个消息已结算。Development

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

描述Stability
activemqApache ActiveMQDevelopment
aws.snsAmazon Simple Notification Service (SNS)Development
aws_sqsAmazon Simple Queue Service (SQS)Development
eventgridAzure Event GridDevelopment
eventhubsAzure Event HubsDevelopment
gcp_pubsubGoogle Cloud Pub/SubDevelopment
jmsJava Message ServiceDevelopment
kafkaApache KafkaDevelopment
pulsarApache PulsarDevelopment
rabbitmqRabbitMQDevelopment
rocketmqApache RocketMQDevelopment
servicebusAzure Service BusDevelopment

Azure Event Hubs 属性

此组描述了 Azure Event Hubs 特有的属性。

Attributes

StabilityValue Type描述Example Values
messaging.eventhubs.message.enqueued_timeDevelopmentint消息被接受并存储在该实体中的 UTC epoch 秒。1701393730

GCP Pub/Sub 属性

此组描述了 GCP Pub/Sub 特有的属性。

Attributes

StabilityValue Type描述Example Values
messaging.gcp_pubsub.message.ack_deadlineDevelopmentint在修改 ack deadline 请求中设置的 ack deadline(以秒为单位)。10
messaging.gcp_pubsub.message.ack_idDevelopment字符串给定消息的 ack ID。ack_id
messaging.gcp_pubsub.message.delivery_attemptDevelopmentint给定消息的传递尝试次数。2
messaging.gcp_pubsub.message.ordering_keyDevelopment字符串给定消息的排序键。如果属性不存在,则消息没有排序键。ordering_key

Kafka 属性

此组描述了 Apache Kafka 特有的属性。

Attributes

StabilityValue Type描述Example Values
messaging.kafka.message.keyDevelopment字符串Kafka 中的消息键用于对相似消息进行分组,以确保它们在同一个分区上传递。它们与 messaging.message.id 不同,因为它们不是唯一的。如果键为 null,则不得设置该属性。[10]myKey
messaging.kafka.message.tombstoneDevelopment布尔值一个布尔值,如果消息是墓碑消息,则为 true。
messaging.kafka.offsetDevelopmentint记录在相应 Kafka 分区中的偏移量。42

[10] messaging.kafka.message.key: 如果键类型不是字符串,则必须为其属性提供其字符串表示形式。如果键没有明确的、规范的字符串形式,则不要包含其值。

RabbitMQ 属性

此组描述了 RabbitMQ 特有的属性。

Attributes

StabilityValue Type描述Example Values
messaging.rabbitmq.destination.routing_keyDevelopment字符串RabbitMQ 消息路由键。myKey
messaging.rabbitmq.message.delivery_tagDevelopmentintRabbitMQ 消息传递标签123

RocketMQ 属性

此组描述了 RocketMQ 特有的属性。

Attributes

StabilityValue Type描述Example Values
messaging.rocketmq.consumption_modelDevelopment字符串消息消费模型。这仅适用于消费者跨度。clustering; broadcasting
messaging.rocketmq.message.delay_time_levelDevelopmentint延迟消息的延迟时间级别,它决定了消息的延迟时间。3
messaging.rocketmq.message.delivery_timestampDevelopmentint延迟消息预计传递给消费者的毫秒级时间戳。1665987217045
messaging.rocketmq.message.groupDevelopment字符串对于 FIFO 消息至关重要。属于同一消息组的消息在同一消费者组内始终逐个处理。myMessageGroup
messaging.rocketmq.message.keysDevelopmentstring[]消息的键(Key),除了消息 ID 之外的另一种标记消息的方式。["keyA", "keyB"]
messaging.rocketmq.message.tagDevelopment字符串除了主题之外,消息的二级分类器。tagA
messaging.rocketmq.message.typeDevelopment字符串消息的类型。normal; fifo; delay
messaging.rocketmq.namespaceDevelopment字符串RocketMQ 资源的命名空间,不同命名空间中的资源是独立的。myNamespace

messaging.rocketmq.consumption_model 具有以下一系列已知值。如果适用其中一个,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
broadcasting广播消费模型Development
clustering集群消费模型Development

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

描述Stability
delay延迟消息Development
fifoFIFO 消息Development
normal普通消息Development
transaction事务消息Development

Azure Service Bus 属性

此组描述了 Azure Service Bus 特有的属性。

Attributes

StabilityValue Type描述Example Values
messaging.servicebus.disposition_statusDevelopment字符串描述 结算类型complete; abandon; dead_letter
messaging.servicebus.message.delivery_countDevelopmentint已为该消息尝试的传递次数。2
messaging.servicebus.message.enqueued_timeDevelopmentint消息被接受并存储在该实体中的 UTC epoch 秒。1701393730

messaging.servicebus.disposition_status 具有以下一系列已知值。如果适用其中一个,则必须使用相应的值;否则,可以使用自定义值。

描述Stability
abandon消息已放弃Development
complete消息已完成Development
dead_letter消息已发送到死信队列Development
defer消息已延迟Development

已弃用的消息属性

描述已弃用的消息属性。

Attributes

StabilityValue Type描述Example Values
messaging.client_idDeprecated
已替换为 messaging.client.id
字符串已弃用,请改用 messaging.client.idclient-5; myhost@8742@s8083jm
messaging.destination_publish.anonymousDeprecated
已移除。目前没有替代项。
布尔值已弃用,目前没有替代品。
messaging.destination_publish.nameDeprecated
已移除。目前没有替代项。
字符串已弃用,目前没有替代品。MyQueue; MyTopic
messaging.eventhubs.consumer.groupDeprecated
已替换为 messaging.consumer.group.name
字符串已弃用,请改用 messaging.consumer.group.name$Default
messaging.kafka.consumer.groupDeprecated
已替换为 messaging.consumer.group.name
字符串已弃用,请改用 messaging.consumer.group.namemy-group
messaging.kafka.destination.partitionDeprecated
messaging.destination.partition.id 属性中分区的记录字符串表示形式。
int已弃用,请改用 messaging.destination.partition.id2
messaging.kafka.message.offsetDeprecated
已替换为 messaging.kafka.offset
int已弃用,请改用 messaging.kafka.offset42
messaging.operationDeprecated
已替换为 messaging.operation.type
字符串已弃用,请改用 messaging.operation.typepublish; create; process
messaging.rocketmq.client_groupDeprecated
在消费者跨度上已替换为 messaging.consumer.group.name。生产者跨度没有替代项。
字符串已弃用,请改用 messaging.consumer.group.namemyConsumerGroup
messaging.servicebus.destination.subscription_nameDeprecated
已替换为 messaging.destination.subscription.name
字符串已弃用,请改用 messaging.destination.subscription.namesubscription-a