groups: - id: messaging.message type: attribute_group brief: 'Semantic convention describing per-message attributes populated on messaging spans or links.' attributes: - ref: messaging.destination.name - ref: messaging.message.id - ref: messaging.message.conversation_id - ref: messaging.message.envelope.size - ref: messaging.message.body.size - id: messaging.destination type: attribute_group brief: 'Semantic convention for attributes that describe messaging destination on broker' note: | Destination attributes should be set on publish, receive, or other spans describing messaging operations. Destination attributes should be set when the messaging operation handles single messages. When the operation handles a batch of messages, the destination attributes should only be applied when the attribute value applies to all messages in the batch. In other cases, destination attributes may be set on links. attributes: - ref: messaging.destination.name - ref: messaging.destination.template - ref: messaging.destination.temporary - ref: messaging.destination.anonymous - id: messaging.destination_publish prefix: messaging.destination_publish type: attribute_group brief: > Semantic convention for attributes that describe the publish messaging destination on broker. The term Publish Destination refers to the destination the message was originally published to. These attributes should be used on the consumer side when information about the publish destination is available and different than the destination message are consumed from. note: | Publish destination attributes should be set on publish, receive, or other spans describing messaging operations. Destination attributes should be set when the messaging operation handles single messages. When the operation handles a batch of messages, the destination attributes should only be applied when the attribute value applies to all messages in the batch. In other cases, destination attributes may be set on links. attributes: - ref: messaging.destination_publish.name - ref: messaging.destination_publish.anonymous - id: messaging type: span brief: > This document defines general attributes used in messaging systems. extends: messaging.attributes.common attributes: - ref: messaging.operation requirement_level: required - ref: messaging.batch.message_count requirement_level: conditionally_required: If the span describes an operation on a batch of messages. - ref: messaging.client_id requirement_level: recommended: If a client id is available - ref: messaging.destination.name requirement_level: conditionally_required: If span describes operation on a single message or if the value applies to all messages in the batch. - ref: messaging.destination.template requirement_level: conditionally_required: > If available. Instrumentations MUST NOT use `messaging.destination.name` as template unless low-cardinality of destination name is guaranteed. - ref: messaging.destination.temporary requirement_level: conditionally_required: If value is `true`. When missing, the value is assumed to be `false`. - ref: messaging.destination.anonymous requirement_level: conditionally_required: If value is `true`. When missing, the value is assumed to be `false`. - ref: messaging.message.id - ref: messaging.message.conversation_id - ref: messaging.message.envelope.size - ref: messaging.message.body.size - ref: server.address - ref: network.peer.address tag: connection-level - ref: network.peer.port requirement_level: recommended: If `network.peer.address` is set. tag: connection-level - ref: network.transport tag: connection-level - ref: network.type tag: connection-level - id: messaging.rabbitmq type: attribute_group extends: messaging brief: > Attributes for RabbitMQ attributes: - ref: messaging.rabbitmq.destination.routing_key requirement_level: conditionally_required: If not empty. tag: tech-specific-rabbitmq - id: messaging.kafka type: attribute_group extends: messaging brief: > Attributes for Apache Kafka attributes: - ref: messaging.kafka.message.key tag: tech-specific-kafka - ref: messaging.kafka.consumer.group tag: tech-specific-kafka - ref: messaging.kafka.destination.partition tag: tech-specific-kafka - ref: messaging.kafka.message.offset tag: tech-specific-kafka - ref: messaging.kafka.message.tombstone requirement_level: conditionally_required: If value is `true`. When missing, the value is assumed to be `false`. tag: tech-specific-kafka - id: messaging.rocketmq type: attribute_group extends: messaging brief: > Attributes for Apache RocketMQ attributes: - ref: messaging.rocketmq.namespace requirement_level: required tag: tech-specific-rocketmq - ref: messaging.rocketmq.client_group requirement_level: required tag: tech-specific-rocketmq - ref: messaging.rocketmq.message.delivery_timestamp requirement_level: conditionally_required: If the message type is delay and delay time level is not specified. tag: tech-specific-rocketmq - ref: messaging.rocketmq.message.delay_time_level requirement_level: conditionally_required: If the message type is delay and delivery timestamp is not specified. tag: tech-specific-rocketmq - ref: messaging.rocketmq.message.group requirement_level: conditionally_required: If the message type is FIFO. tag: tech-specific-rocketmq - ref: messaging.rocketmq.message.type tag: tech-specific-rocketmq - ref: messaging.rocketmq.message.tag tag: tech-specific-rocketmq - ref: messaging.rocketmq.message.keys tag: tech-specific-rocketmq - ref: messaging.rocketmq.consumption_model tag: tech-specific-rocketmq - id: messaging.gcp_pubsub type: attribute_group extends: messaging brief: > Attributes for Google Cloud Pub/Sub attributes: - ref: messaging.gcp_pubsub.message.ordering_key tag: tech-specific-gcp-pubsub requirement_level: conditionally_required: If the message type has an ordering key set. - id: messaging.servicebus type: attribute_group extends: messaging brief: > Attributes for Azure Service Bus attributes: - ref: messaging.servicebus.message.delivery_count requirement_level: conditionally_required: If delivery count is available and is bigger than 0. - ref: messaging.servicebus.message.enqueued_time - ref: messaging.servicebus.destination.subscription_name requirement_level: conditionally_required: If messages are received from the subscription. - id: messaging.eventhubs type: attribute_group extends: messaging brief: > Attributes for Azure Event Hubs attributes: - ref: messaging.eventhubs.message.enqueued_time - ref: messaging.eventhubs.destination.partition.id requirement_level: conditionally_required: If available. - ref: messaging.eventhubs.consumer.group requirement_level: conditionally_required: If not default ("$Default").