![[z/OS]](ngzos.gif)
Span attributes
This topic lists the attributes that can be in spans emitted by IBM® MQ for z/OS®.
Spans beginning with messaging, that do not contain ibmmq, are defined by the OpenTelemetry semantic conventions for messaging (https://opentelemetry.io/docs/specs/semconv/attributes-registry/messaging/).
Common attributes for both consumer and producer spans
| Attribute name | Example value | Description |
|---|---|---|
| end_time | "2022-04-29T18:52:58.114304Z" |
String When the messaging operation returned to the caller. |
| mainframe.lpar.name | "MV4C" |
String LPAR name. |
| messaging.client.id | "DF2A711CF2D90001" |
String 8 byte CONN value from DIS CONN encoded as 16 upper case characters. |
| messaging.destination.name |
"QUEUE1" |
String Destination name. If the application performs MQOPEN on an object of type queue this is the ObjectName passed back after MQOPEN/MQPUT1. Therefore, it is the name of the queue before name resolution occurs. If a model queue is opened this will be the name of the generated dynamic queue. The destination name will be a transmission queue if the chinit is taking a message from the queue prior to sending the message over the network. If the application performs MQOPEN on an object of type topic then this will be a topic string. Topic strings can be up to 10240 characters in length so this value might be very long. The value will not be truncated. For producer spans in a publish/subscribe fan out this will be the name of the subscriber’s queue. |
| messaging.destination.temporary | true |
Boolean true if the message destination is temp-dynamic and might not exist anymore after messages are processed. Not included otherwise, that is, never set to false. |
| messaging.ibmmq.application.channel_name | "MY.APP.SVRCONN" |
String CHANNEL from DIS CONN. Only included for client or queue manager to queue manager connections. |
| messaging.ibmmq.application.cics_task_id | "0000034" |
String TASKNO from DIS CONN. Only included for CICS® applications. |
| messaging.ibmmq.application.cics_trans_id | "TRAN1" |
String TRANSID from DIS CONN. Only included for CICS applications. |
| messaging.ibmmq.application.completion_code |
"MQCC_OK" "MQCC_WARNING" |
String IBM MQ completion code in string format. |
| messaging.ibmmq.application.conname | "9.140.109.78" |
String CONNAME from DIS CONN. Only included for client or queue manager to queue manager connections. |
| messaging.ibmmq.application.description | "IBM MQ Channel Initiator" |
String APPLDESC from DIS CONN. Only included if there is a non-blank description. |
| messaging.ibmmq.application.external_transaction_id |
"000000000"
"BC8571519B60222D"
|
String EXTURID from DIS CONN. |
| messaging.ibmmq.application.ims_psb_name | "CSQQTRMN" |
String PSBNAME from DIS CONN. Only included for IMS applications. |
| messaging.ibmmq.application.ims_pst_id | "0004" |
String PSBTID from DIS CONN. Only included for IMS applications. |
| messaging.ibmmq.application.name | "MQ21CHIN" |
String APPLTAG from DIS CONN. |
| messaging.ibmmq.application.pid | 1234 |
Integer ASID from DIS CONN in decimal. |
| messaging.ibmmq.application.qmgr_transaction_id | "0000002B4BEFAEFC" |
String QMGRURID from DIS CONN. |
| messaging.ibmmq.application.reason_code |
"MQRC_NONE" "MQRC_TRUNCATED_MSG_ACCEPTED" |
String IBM MQ reason code in string format. |
| messaging.ibmmq.application.smf_correlator |
"E09D83F4B8DE52527
C63A5A07C658600" |
String 32 character string formed from 16 byte value of WTASCORR field. Only included if SMF 116 data is being captured. Allows correlation between accounting data and OpenTelemetry trace. |
| messaging.ibmmq.application.transaction_type | "QMGR" |
String URTYPE from DIS CONN. |
| messaging.ibmmq.application.type | "CHIN" |
String APPLTYPE from DIS CONN. |
| messaging.ibmmq.application.user_id | "USER1" |
String USERID from DIS CONN. |
| messaging.ibmmq.destination.resolved_name | "A.REMOTE.Q" |
String The value of MQOD.ResolvedQName |
| messaging.ibmmq.destination.resolved_qmgr_name | "REMOTE.QMGR" |
String The value of MQOD.ResolvedQMGRName. Might be the local queue manager, or a different one. |
| messaging.ibmmq.destination.resolved_type | "queue" |
String If the application opens an alias queue, the type of object that the alias resolves to. Always "queue". |
| messaging.ibmmq.destination.type | "queue" |
String The type of destination the application is interacting with. |
| messaging.ibmmq.message.accounting_token |
"00000000000000000
00000000000000000" |
String Value of MQMD.AccountingToken.
|
| messaging.ibmmq.message.appl_identity_data | "" |
String Value of MQMD.ApplIdentityData. |
| messaging.ibmmq.message.appl_origin_data | "" |
String Value of MQMD.ApplOriginData. |
| messaging.ibmmq.message.expiry |
8000
-1 |
Integer Message expiry converted to milliseconds. -1 if the message will not expire. |
| messaging.ibmmq.message.feedback |
"MQFB_EXPIRATION" "MQRC_Q_FULL" |
String Value of MQMD.Feedback converted to a string. If a MQFB_* or MQRC_* value then this will be converted to its text equivalent. If the value is an unknown integer, then that integer will be represented as a string. |
| messaging.ibmmq.message.persistent | true |
Boolean true if the message is persistent, false otherwise. |
| messaging.ibmmq.message.priority | 1 |
Integer Value of MQMD.Priority. |
| messaging.ibmmq.message.put_appl_name | "USER8" |
String Value of MQMD.PutApplName. |
| messaging.ibmmq.message.put_appl_type |
"MQAT_QMGR" |
String Value of MQMD.PutApplType converted to a string. |
| messaging.ibmmq.message.put_date | "20240618" |
String Value of MQMD.PutDate. |
| messaging.ibmmq.message.put_time | "16244201" |
String Value of MQMD.PutTime. |
| messaging.ibmmq.message.reply_destination_name | "Q1" |
String Value of MQMD.ReplyToQ. |
| messaging.ibmmq.message.reply_qmgr_name | "QMGR1" |
String Value of MQMD.ReplyToQMgr. |
| messaging.ibmmq.message.report |
"MQRO_NONE" "MQRO_EXCEPTION, MQRC_COA" |
String MQMD.Report converted to a comma separated string. If not a value that the queue manager understands, then will be an integer in string format. |
| messaging.ibmmq.message.type | "MQMT_DATAGRAM" |
String MQMD.MsgType converted to a string. If not a value that the queue manager understands, then will be an integer in string format.
|
| messaging.ibmmq.message.user_id | "MLEMING" |
String Value of MQMD.UserID. |
| messaging.ibmmq.transaction.committed | true |
Boolean. Whether the transaction was committed (true) or rolledback (false). Only set if the message was put or got in a transaction. This includes scenarios where internal transactions are used, for example with MCA channels, or with JMS. |
| messaging.ibmmq.transaction.end_time |
String UTC timestamp indicating when the transaction completed. Only set if the message was put or got in a transaction. |
|
| messaging.ibmmq.transaction.start_time |
String UTC timestamp indicating when the transaction started. Only set if the message was put or got in a transaction. |
|
| messaging.message.body.size | 4096 |
Integer Message body size in bytes. On MQPUT/MQPUT1: this is the value of the BufferLength passed in by the application. This might include the size of the RFH2 header if the application uses one, for example, with JMS. On MQGET: the value of DataLength returned to the application. If the application requested properties in RFH2 format then those count towards the length |
| messaging.message.conversation_id |
"C3E2D840D4D8F2F14040404
040404040DED163210A4A88A1" |
String Correlation ID represented as a hex string of 48 upper case characters. |
| messaging.message.envelope.size | 9002 |
Integer Message and meta data size in bytes. Includes message properties and MQMD. On MQPUT: the size of the body, plus the size of either a V1 or V2 MQMD, and if message properties are used the size of the merged properties from OriginalMsgHandle and NewMsgHandle before any trace context property manipulation occurs On MQGET: the size of the body, plus the size of either a V1 or V2 MQMD, and the size of any properties returned via a handle, after any trace context property manipulation occurs |
| messaging.message.id |
"C3E2D840D4D8F2F14040404
040404040DED163210A4A88A1" |
String Message ID represented as a hex string of 48 upper case characters. |
| messaging.operation.name | "MQPUT" |
String Messaging operation. One of MQPUT, MQPUT1, MQGET. |
| messaging.operation.type | "send" |
String Messaging operation type. One of:
|
| messaging.system | "ibmmq" |
String Indicates that IBM MQ was the messaging system that generated the span. |
| name |
"MQPUT Q1" |
String The messaging operation and the destination it was performed on.
|
| os.type | "z_os" |
String Type of operating system the queue manager is running on. |
| service.name | "MQ21" |
String The name of the queue manager emitting the span. For MQGET the queue being consumed from is local to this queue manager. For MQPUT the ultimate destination queue might, or might not be local to this queue manager. |
| service.version | "09.04.03.00" |
String IBM MQ version, encoded as
|
| span_kind | "producer" |
String "producer" on MQPUT. "consumer" on MQGET or async consume. |
| start_time | "2022-04-29T18:52:58.114304Z" |
String For MQPUT, the time the application called MQPUT. For MQGET, or async consume, the time when the message was taken off the queue. |
| W3C.tracestate | “rojo=00f067aa0ba902b7,congo=t61rcWkgMzE.” |
String. Value of tracestate header if in message. Not included otherwise. |
Producer span attributes
| Attribute name | Example value | Description |
|---|---|---|
| messaging.ibmmq.destination.transmission_queue | "MQ21" |
String The name of the transmission queue that the message will be put on next. Only included if the message will be put to a transmission queue. |
| messaging.ibmmq.message.delay | 5000 |
Integer JMS 2 delivery delay set on the message, in milliseconds. Only included if delivery delay is used. |
| messaging.ibmmq.message.original_conversation_id |
String In scenarios where a queue manager generated MQMD is used, this is the CorrelID from the application provided MQMD. Not set otherwise. |
|
| messaging.ibmmq.message.original_message_id |
String In scenarios where a queue manager generated MQMD is used, this is the MessagelID from the application provided MQMD. Not set otherwise. |
|
| messaging.ibmmq.message.retained_publication | true |
Boolean Set to true if the message being published is a retained publication. Not set otherwise. |
|
messaging.ibmmq.message.streamed_from
|
true |
Boolean Set to true if a copy of this message has been sent to a different queue as a result of STREAMQ being set on this queue. Not set otherwise. If set, there might be another span with the same message ID and correlation ID. |
| messaging.ibmmq.message.streamed_to | true |
Boolean Set to true if this message has been put to this queue as a result of STREAMQ being set on another queue. Not set otherwise. If set, there might be a span with the same message ID and correlation ID. |
| messaging.ibmmq.producer.publication_fail_count | 0 |
Integer. Number of delivery failures to subscribers. Can only be non-zero if topic is configured with (N)PMSGDLV(ALLAVAIL|ALLDUR). Only included in the “publish” span when publishing to a topic, either directly, or via an alias queue. |
| messaging.ibmmq.producer.subscriber_count | 5 |
Integer. Number of matching subscribers, which may be zero. Only included in the “publish” span when publishing to a topic, either directly, or via an alias queue. |
Consumer span attributes
| Attribute name | Example value | Description |
|---|---|---|
| messaging.ibmmq.consumer.administrative_subscription | false |
Boolean Whether this is an administrative subscription (true) or not (false). |
| messaging.ibmmq.consumer.durable_subscription | false |
Boolean Whether this is a durable subscription (true) or not (false). |
| messaging.ibmmq.consumer.managed_subscription | true |
Boolean Whether this is a managed subscription (true) or not (false). |
| messaging.ibmmq.consumer.no_child_spans | true |
Boolean If set to true, this indicates that there can be no child spans of this consumer
span as trace context cannot be propagated to the getting application. That is:
Never set to false. |
| messaging.ibmmq.consumer.original_wait_interval | 1000 |
Integer The wait interval, in milliseconds, that the caller originally specified on the MQGET. Only set if get with wait used. -1 indicates wait forever. Not set when the application is using async-consume. |
| messaging.ibmmq.consumer.subscription_id | C3E2D840D4D8F2F14040404 040404040DED163210A4A88A1 |
String Subscription ID from DIS SBSTATUS. |
| messaging.ibmmq.consumer.used_wait_interval | 400 |
Integer How long the caller had to wait in milliseconds before a message was returned. Only in span if get with wait used. Only set if get with wait used. -1 indicates wait forever. Not set when the application is using async-consume. |
| messaging.ibmmq.message.delivery_count | 1 |
Integer Value of MQMD.BackoutCount + 1. |
| messaging.ibmmq.message.time_on_queue | 400000 |
Integer How long the message was on the queue, in microseconds. 0 means that put with waiting getter was used and the queue was bypassed. If delivery delay was used, this value does not include the delivery delay time. |
IMS bridge client span attributes
| Attribute name | Example value | Description |
|---|---|---|
| end_time | "2025-10-29T18:52:58.114304Z" |
String The time when the IMS bridge received an acknowledgement from IMS that the message data has been received. The acknowledgement will indicate whether the message data can, or cannot, be processed. If the message data cannot be processed then the error.type, otel.status_code and ibm.mq.ims_bridge.reason_code attributes will be set indicating why. |
| error.type | “00F2020A” |
String An 8 character upper case hexadecimal code. Either an OTMA sense code with four leading zeros, or the value 00F2020A indicating that the message could not be converted to OTMA format. Only set if the IMS bridge detects an error, or receives an error back from IMS during initial message transfer. |
| ibm.mq.ims_bridge.cant_propagate | true |
Boolean Set to true if trace context cannot be propagated through the IMS bridge. That is, there was not space to propagate trace context to IMS, or to any reply or report messages generated by the IMS bridge. Not set otherwise. If this value is set in a span, the QMSTOBCD attribute is incremented. |
| ibm.mq.ims_bridge.ims_member_name | “IYEAZI5A” |
String The name of the IMS member that the IMS bridge is connected to. |
| ibm.mq.ims_bridge.ims_not_otel_enabled | true |
Boolean Set to true if the IMS bridge detects that IMS is not enabled for OTel. Not set otherwise. |
| ibm.mq.ims_bridge.reason_code | “00001B25” |
String An 8 character upper case hexadecimal reason code associated with error.type. For more information, see OTMA sense codes for NAK messages in the IBM Information Management System (IMS) documentation. |
| ibm.mq.ims_bridge.tpipe_name | “M210004C” |
String The name of the IMS TPIPE being used by the IMS bridge. |
| ibm.mq.ims_bridge.transaction_name | “TRAN1” | The name of the IMS transaction that will process the message data. Not set if the message data is going to be sent to an IMS command. |
| name | “MQ IMS Bridge: IYEAZI5A” |
String The name of the span. Formed by |
| os.type | “z_os” |
String Always |
| otel.status_code | “ERROR” |
String Indicates that an error has occurred. If set, then the error.type and ibm.mq.ims_bridge.reason_code attributes provide information about the error. |
| service.name | “MQ21” |
String The name of the queue manager emitting the span. |
| service.version | "10.00.00.00" |
String IBM MQ version, encoded as
|
| span_kind | “client” |
String Always |
| start_time | 2025-10-29T18:52:58.114004Z" |
String The time the IMS bridge issued the MQGET call. |
| W3C.tracestate | “rojo=00f067aa0ba902b7,congo=t61rcWkgMzE.” |
String. The value of the tracestate header if in the message. Not included otherwise. |