Distributed Tracing OpenTelemetry Span Fields
As discussed in Context Propagation, message traces are made up of spans that are emitted at each point along the event mesh, consumed (and converted) by the Solace Open Telemetry Receiver, and sent to your chosen backend, which reassembles these spans and provides a visual view of the movement and processing of an event message. Each span that passes to the backend is made up of span fields and include span attributes (key-value pairs).
These tables list the OpenTelemetry span attributes in the event message that are sent to your observability backend (from the OpenTelemetry Collector with a configured Solace Open Telemetry Receiver).
For more information on traces, spans, span attributes (key-value pairs), and more, see OpenTelemetry Traces.
- OpenTelemetry Specification Attributes
- OpenTelemetry Semantic Convention Attributes
- Solace Span Attributes
- Deprecated Attributes
OpenTelemetry Specification Attributes
These are general attributes defined by OpenTelemetry that apply to spans across various types of systems, providing metadata like identification, timing, and context.
The contents in the following table are based on OpenTelemetry Specification version 1.22.0. For more information, see OpenTelemetry Specifications.
Span Attribute | Type | Description | Examples | Attribute present in: | |||
---|---|---|---|---|---|---|---|
Send Spans | Receive Spans | Move Spans | Delete Spans | ||||
TraceId
|
16 byte array |
The traceID associated with the span. |
4bf92f3577b34da6a3ce929d0e0e472a
|
||||
SpanId
|
8 byte array |
The spanID associated with the span. |
b3c2a1f3d1e0a3b4
|
||||
TraceState
|
set of key-value pairs |
The TraceState is a part of the span context, for more information see OpenTelemetry - TraceState. |
vendor1=value1,vendor2=value2 ...
|
||||
SpanKind
|
enum |
Specifies the role of the span within a trace. Can be |
|
||||
StartTimeUnixNano
|
integer |
The start timestamp of the span. |
1693056000000000000
|
||||
EndTimeUnixNano
|
integer |
The end timestamp of the span. |
1693056060000000000
|
||||
Status
|
enum |
The status of the OpenTelemetry span. Can be one of: |
|
||||
ParentSpanId
|
8 byte array |
The spanID associated with the parent span. |
b3c2a1f3d1e0a3b4
|
OpenTelemetry Semantic Convention Attributes
OpenTelemetry Semantic Convention Attributes are attributes with standardized naming conventions. They are used to describe common operations, resources, and events across different systems in a consistent way.
The contents in the following table are based on OpenTelemetry Semantic Conventions version 1.26.0. Any future changes made by OpenTelemetry may require corresponding updates to these attributes. For more information, see OpenTelemetry Semantic Conventions Attributes Registry.
Span Attribute | Type | Description | Examples | Attribute present in: | |||
---|---|---|---|---|---|---|---|
Send Spans | Receive Spans | Move Spans | Delete Spans | ||||
messaging.system
|
string |
The main messaging system of the event mesh. |
SolacePubSub+
|
||||
service.instance.id
|
string |
The message VPN of the event broker. |
my-production-vpn
|
||||
service.version
|
string |
The current version of the event broker. |
10.10.1
|
||||
service.name
|
string |
The logical name of the current service. |
solace-cloud-client
|
||||
messaging.operation.name
|
string |
The system-specific name of the messaging operation. Can be one of: |
|
||||
messaging.operation.type
|
string |
A string identifying the type of the messaging operation. Can be one of:
|
|
||||
network.protocol.name
|
string |
The protocol used when the message was received by the event broker. Can be one of: |
|
||||
network.protocol.version
|
string |
The version of protocol used. For example in |
3.1 |
||||
messaging.message.id
|
string |
The application message ID of the event broker. This is a user-defined property that allows an application to assign a unique identifier to each message. |
452a7c7c704887f1572b18fc2
|
||||
messaging.message.conversation_id
|
string |
The correlation ID of the message, usually set by the message producer and used to correlate messages within your messaging system. |
MyCorrelationID
|
||||
messaging.message.body.size
|
integer |
The size of the message body in bytes. |
1439
|
||||
messaging.message.envelope.size
|
integer |
The size of the message body and metadata in bytes. |
2738
|
||||
messaging.destination.name
|
string |
The topic or queue the message was published to. |
my/topic/destination
|
||||
messaging.source.kind
|
string | The kind of endpoint a message (or a batch) was published to. Either a queue or topicEndpoint . |
queue
|
||||
messaging.source.name
|
string |
The original Solace topic or queue a message (or a batch) was published to. |
my/publish/destination
|
||||
server.address
|
string |
The IP Address that the event broker received the message on. |
10.1.2.80
|
||||
server.port
|
integer |
The port that the event broker received the message on. |
8080
|
||||
network.peer.address
|
string |
The IP Address of the publishing client. |
10.1.2.80
|
||||
network.peer.port
|
integer |
The port of the publishing client. |
65123
|
Solace Span Attributes
Solace span attributes provide additional context and details specific to message flows using Solace systems and applications.
The contents in the following table are accurate as of PubSub+ event broker, version 10.10.1 or later.
Span Attribute | Type | Description | Examples | Attribute present in: | |||
---|---|---|---|---|---|---|---|
Send Spans | Receive Spans | Move Spans | Delete Spans | ||||
messaging.solace.partition_number
|
integer |
The partition number of a queue or a topic endpoint within the event broker that is used to distribute messages across multiple partitions. |
3
|
||||
messaging.solace.source.
|
integer | The partition number of queue or topic endpoint the message is being moved from, if that queue is a partitioned queue. | 3
|
||||
messaging.solace.destination.
|
integer | The partition number of the destination dead message queue (DMQ) the message is being moved to, if that queue is a partitioned queue. | 5
|
||||
messaging.solace.source.kind
|
enum |
The type of the messaging source. Can be a |
|
||||
messaging.solace.client_username
|
string |
The client username used by a client application to authenticate and connect to an event broker. |
user_admin
|
||||
messaging.solace.client_name
|
string |
The client name is a unique identifier for each client connection to the event broker. |
client1234
|
||||
messaging.solace.operation.reason
|
enum |
The reason for deleting the message or moving it to a dead message queue. Can be one of the following:
|
|
||||
messaging.solace.
|
string |
The replication group message ID of the received message, used to uniquely identify a message within a replication group. |
0xA5F7D4E2B3C1A4F0
|
||||
messaging.solace.priority
|
integer |
The priority of the published message that allows you to control the order in which messages are delivered from a queue. |
9
|
||||
messaging.solace.ttl
|
integer |
The time-to-live (TTL) of the published message in milliseconds. |
60000
|
||||
messaging.solace.dmq_eligible
|
boolean |
Indicates that the dead message queue (DMQ) eligible bit was set in the message. |
true
|
||||
messaging.solace.
|
boolean |
Indicates that the enqueueing of a dropped message succeeded. |
true
|
||||
messaging.solace.
|
boolean |
Indicates that the enqueueing of a dropped message failed. |
true
|
||||
messaging.solace.reply_to_topic
|
string |
The reply-to topic of the received message. |
replyto/destination
|
||||
messaging.solace.
|
integer |
Indicates when the event broker first identifies that a message is to be traced. |
1693056060000000000
|
||||
messaging.solace.
|
boolean |
If |
true
|
||||
messaging.solace.delivery_mode
|
enum |
The delivery mode of the message, can be |
|
||||
messaging.solace.message_replayed
|
boolean |
Indicates whether the message has been replayed by the event broker. |
true
|
||||
messaging.solace.send.outcome
|
enum |
Displays the outcome of the sent message. Can be one of the following:
|
|
||||
messaging.solace.user_properties.<...>
|
string |
A custom span attribute, where |
some-user-value-1
|
||||
messaging.solace.destination.type
|
enum |
The type of the message destination. Can be a |
|
||||
messaging.solace.enqueue_error_message
|
string |
An error message that describes why an enqueue operation failed. |
|
||||
messaging.solace.rejects_all_enqueues
|
boolean |
Indicates that all other non-error enqueue events in this span are rejected. In other words, the message is not enqueued to any destination, regardless of what some enqueue events may indicate. |
true
|
||||
messaging.solace.ttl_override
|
boolean |
TTL Override is used to set or override the TTL value for messages, regardless of the TTL specified by the message producer. |
true
|
||||
Transaction Attributes | |||||||
messaging.solace.transaction_initiator
|
string |
Identifies if the ADMIN operation was performed using the management interface or by the CLIENT. |
CLIENT
|
||||
messaging.solace.transaction_id
|
string |
The transaction ID. All messages that are part of the same transaction have the same value for this ID. |
tx12345-abcde-67890
|
||||
messaging.solace.transacted_session_name
|
string |
The name of the local ID of the transaction event. |
OrderProcessSession
|
||||
messaging.solace.transacted_session_id
|
string |
The type of the local ID of the transaction event. |
session-98765-zyxwv
|
||||
messaging.solace.
|
string |
Describes why a transaction operation failed. |
|
||||
messaging.solace.transaction_xid
|
string |
The transaction ID of an XA transaction |
xid-45678-pqrst-12345
|
||||
Baggage Propagation | |||||||
messaging.solace.message.baggage.
|
string |
Provides the value associated with the Baggage Key Name that is provided through context propagation. |
region=us-west
|
||||
messaging.solace.message.
|
string |
Provides the metadata value associated with the Baggage Key Name that is provided through context propagation. |
log=true
|
Deprecated Attributes
The following fields have been deprecated as of PubSub+ event broker, version 10.10.1:
Deprecated Attribute | Replacement Attribute |
---|---|
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
|
|
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.destination
|
messaging.destination.name
|
messaging.solace.destination_type
|
messaging.solace.destination.type
|