The monitoring event

You can configure IBM® App Connect Enterprise to emit a monitoring event, in XML or JSON format, when something significant happens. Events are typically emitted to support transaction monitoring and auditing, and business transaction monitoring.

You can configure the source of the event and the content of the event by using either the monitoring properties of a message flow or a monitoring profile.

Each event contains the following information:
  • Source of the event.
  • Name of the event.
  • Creation time and sequence number.
  • Correlation ID for events that are emitted by the same transaction or unit of work.
  • Details of the message flow.

A terminal emits an event only if the message passes through that terminal. In particular, the output terminal of an output node emits events only if it is connected.

A monitoring event can also contain the following items:
  • Application data extracted from the message.
  • Part or all of the message bit stream. All nodes can produce bit streams, which can be included in monitoring events.

You can configure monitoring events to be formatted in XML or JSON format. By default, event XML in IBM App Connect Enterprise conforms to the monitoring event schema MonitoringEventV2.xsd. Alternatively, you can configure monitoring events to be formatted in JSON format, as defined by the MonitoringEventV1.json schema. For compatibility with IBM Integration Bus Version 10.0, you can configure monitoring events to use the WMBEvent.xsd schema.

For information about the monitoring event formats, see the following sections:

For information about the sequencing of events and the default values that are assigned to monitoring events, see Event sequencing and Default content of monitoring events.

For information about configuring monitoring events that contain complex content, see Including complex content in the event payload of a monitoring event.

For more information about how to configure monitoring events to be emitted and formatted according to these schema definitions, see Activating monitoring.

XML MonitoringEventV2 format

The XML schema definition file is MonitoringEventV2.xsd, which is provided in the server/sample/Monitoring subdirectory of your IBM App Connect Enterprise installation directory.

To access the schema from the IBM App Connect Enterprise Toolkit, click File > New > Message Model. Select IBM supplied . Click Next, then select Create an XML file by importing an IBM supplied definition . Click Next, and then select IBM App Connect Enterprise Monitoring Event.

The following example shows a monitoring event in XML MonitoringEventV2 format:

<mon:event xmlns:mon="http://www.ibm.com/xmlns/monitoring/event/v2">
	<mon:eventPointData>
		<mon:eventData mon:productVersion="110010"
			mon:profileVersion="11" mon:eventSourceAddress="HTTP Input.transaction.Start">
			<mon:eventIdentity mon:eventName="HTTP Input.TransactionStart" />
			<mon:eventSequence mon:creationTime="2020-07-20T16:20:21.776758Z"
				mon:counter="1" />
			<mon:eventCorrelation mon:localTransactionId="40ddc412-f102-4840-a212-8b793d12b6bf-1"
				mon:parentTransactionId="" mon:globalTransactionId="" />
		</mon:eventData>
		<mon:messageFlowData>
			<mon:integrationServer mon:name="110010"
				mon:hostName="DESKTOP-7Q9JIP6" />
			<mon:application mon:name="Transformation_Map" />
			<mon:messageFlow mon:uniqueFlowName="110010.Transformation_Map.Transformation_Map"
				mon:name="Transformation_Map" mon:threadId="12244" />
			<mon:node mon:nodeLabel="HTTP Input" mon:nodeType="ComIbmWSInputNode" />
		</mon:messageFlowData>
	</mon:eventPointData>
	<mon:bitstreamData>
		<mon:bitstream mon:serializationEncoding="base64Binary"
			mon:dataCCSID="1208" mon:dataEncoding="546">UE9TVCBodHRwOi8vbG9jYWxob3N0Ojc4MDAvVHJhbnNmb3JtYXRpb25fTWFwIEhUVFAvMS4xDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgNClVzZXItQWdlbnQ6IEphdmEvMS44LjBfMjUxDQpIb3N0OiBsb2NhbGhvc3Q6NzgwMA0KQWNjZXB0OiB0ZXh0L2h0bWwsIGltYWdlL2dpZiwgaW1hZ2UvanBlZywgKjsgcT0uMiwgKi8qOyBxPS4yDQpDb25uZWN0aW9uOiBrZWVwLWFsaXZlDQpDb250ZW50LUxlbmd0aDogNjgwDQpYLU9yaWdpbmFsLUhUVFAtQ29tbWFuZDogUE9TVCBodHRwOi8vbG9jYWxob3N0Ojc4MDAvVHJhbnNmb3JtYXRpb25fTWFwIEhUVFAvMS4xDQpYLVNlcnZlci1OYW1lOiBsb2NhbGhvc3QNClgtU2VydmVyLVBvcnQ6IDc4MDANClgtUmVtb3RlLUFkZHI6IDEyNy4wLjAuMQ0KWC1SZW1vdGUtSG9zdDogbG9jYWxob3N0DQpYLVNjaGVtZTogaHR0cA0KDQo8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KPFNhbGVFbnZlbG9wZT4NCgk8SGVhZGVyPg0KCQk8U2FsZUxpc3RDb3VudD4xPC9TYWxlTGlzdENvdW50Pg0KCQk8VHJhbnNmb3JtYXRpb25UeXBlPnhzbDwvVHJhbnNmb3JtYXRpb25UeXBlPg0KCTwvSGVhZGVyPg0KCTxTYWxlTGlzdD4NCgkJPEludm9pY2U+DQoJCQk8SW5pdGlhbD5UPC9Jbml0aWFsPg0KCQkJPEluaXRpYWw+SjwvSW5pdGlhbD4NCgkJCTxTdXJuYW1lPkR1bm53aW48L1N1cm5hbWU+DQoJCQk8SXRlbT4NCgkJCQk8Q29kZT4wNDwvQ29kZT4NCgkJCQk8Q29kZT4wNTwvQ29kZT4NCgkJCQk8Q29kZT4wMTwvQ29kZT4NCgkJCQk8RGVzY3JpcHRpb24+VGhlIE9yaWdpbiBvZiBTcGVjaWVzPC9EZXNjcmlwdGlvbj4NCgkJCQk8Q2F0ZWdvcnk+Qm9va3MgYW5kIE1lZGlhPC9DYXRlZ29yeT4NCgkJCQk8UHJpY2U+MjIuMzQ8L1ByaWNlPg0KCQkJCTxRdWFudGl0eT4wMjwvUXVhbnRpdHk+DQoJCQk8L0l0ZW0+DQoJCQk8QmFsYW5jZT44MS44NDwvQmFsYW5jZT4NCgkJCTxDdXJyZW5jeT5FdXJvczwvQ3VycmVuY3k+DQoJCTwvSW52b2ljZT4NCgk8L1NhbGVMaXN0Pg0KCTxUcmFpbGVyPg0KCQk8Q29tcGxldGlvblRpbWU+MTIuMDAuMDA8L0NvbXBsZXRpb25UaW1lPg0KCTwvVHJhaWxlcj4NCjwvU2FsZUVudmVsb3BlPg==</mon:bitstream>
	</mon:bitstreamData>
</mon:event>

JSON MonitoringEventV1

The JSON schema definition file is MonitoringEventV1.json, which is provided in the server/sample/Monitoring subdirectory of your IBM App Connect Enterprise installation directory.

The following example shows a monitoring event in JSON MonitoringEventV1 format:

{
	"type": "ace_monitoring_event",
	"ibm_product": "IBM App Connect Enterprise",
	"ibm_recordtype": "monitor",
	"host": "DESKTOP-7Q9JIP6",
	"module": "integration_server.test",
	"ibm_serverName": "test",
	"productVersion": "12020",
	"profileVersion": "11",
	"eventSourceAddress": "Compute.terminal.out",
	"eventName": "MainFlow.Compute.OutTerminal",
	"ibm_datetime": "2021-09-08T15:56:29.046935Z",
	"localTransactionId": "e9e832b3-0a92-464c-b7f1-364547160f06-4",
	"parentTransactionId": "",
	"globalTransactionId": "",
	"applicationName": "MonitorEventsApp",
	"messageFlowUniqueName": "integration_server.test.MonitorEventsApp.MonEvents",
	"messageFlowName": "MonEvents",
	"messageFlowNodeName": "Compute",
	"messageFlowNodeType": "ComIbmComputeNode",
	"messageFlowNodeTerminalName": "out",
	"applicationData": {
		"complexContent": [{
			"elementName": "Msg",
			"elementValue": {
				"bitstream": {
					"Msg": {
						"mainflow": "MonEvents"
					}
				}
			}
		}]
	},
	"bitstreamData": {
		"bitstream": "504f535420687474703a2f2f6c6f63616c686f73743a373830302f4d6f6e4576656e747320485454502f312e310d0a486f73743a206c6f63616c686f73743a373830300d0a557365722d4167656e743a206375726c2f372e35352e310d0a4163636570743a202a2f2a0d0a436f6e74656e742d4c656e6774683a20320d0a436f6e74656e742d547970653a206170706c69636174696f6e2f782d7777772d666f726d2d75726c656e636f6465640d0a582d5365727665722d4e616d653a206c6f63616c686f73740d0a582d5365727665722d506f72743a20373830300d0a582d52656d6f74652d416464723a203132372e302e302e310d0a582d52656d6f74652d486f73743a206c6f63616c686f73740d0a582d536368656d653a20687474700d0a0d0a7b224d7367223a7b226d61696e666c6f77223a224d6f6e4576656e7473227d7d",
		"serializationEncoding": "hexBinary",
		"dataCCSID": "1208",
		"dataEncoding": "546"
	},
	"ibm_sequence": "1"
}

XML WMB format

The XML schema definition file is WMBEvent.xsd, which is provided in the server/sample/Monitoring subdirectory of your IBM App Connect Enterprise installation directory.

To access the schema from the IBM App Connect Enterprise Toolkit, click File > New > Message Model. Select IBM supplied. Click Next, then select Create an XML file by importing an IBM supplied definition . Click Next, and then select IBM Integration Bus Monitoring Event.

The following example shows a monitoring event in XML WMB format:

<wmb:event
	xmlns:wmb="http://www.ibm.com/xmlns/prod/websphere/messagebroker/6.1.0/monitoring/event">
	<wmb:eventPointData>
		<wmb:eventData wmb:productVersion="110010"
			wmb:eventSchemaVersion="11" wmb:eventSourceAddress="HTTP Input.transaction.Start">
			<wmb:eventIdentity wmb:eventName="HTTP Input.TransactionStart" />
			<wmb:eventSequence wmb:creationTime="2020-07-20T16:15:24.728446Z"
				wmb:counter="1" />
			<wmb:eventCorrelation wmb:localTransactionId="c4b687e6-4f51-4f61-ae3b-92c3115e9e42-1"
				wmb:parentTransactionId="" wmb:globalTransactionId="" />
		</wmb:eventData>
		<wmb:messageFlowData>
			<wmb:broker wmb:name="integration_server" />
			<wmb:executionGroup wmb:name="110010" />
			<wmb:messageFlow
				wmb:uniqueFlowName="integration_server.110010.Transformation_Map.Transformation_Map"
				wmb:name="Transformation_Map" wmb:threadId="17376" />
			<wmb:node wmb:nodeLabel="HTTP Input" wmb:nodeType="ComIbmWSInputNode" />
		</wmb:messageFlowData>
	</wmb:eventPointData>
	<wmb:bitstreamData>
		<wmb:bitstream wmb:encoding="base64Binary">UE9TVCBodHRwOi8vbG9jYWxob3N0Ojc4MDAvVHJhbnNmb3JtYXRpb25fTWFwIEhUVFAvMS4xDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgNClVzZXItQWdlbnQ6IEphdmEvMS44LjBfMjUxDQpIb3N0OiBsb2NhbGhvc3Q6NzgwMA0KQWNjZXB0OiB0ZXh0L2h0bWwsIGltYWdlL2dpZiwgaW1hZ2UvanBlZywgKjsgcT0uMiwgKi8qOyBxPS4yDQpDb25uZWN0aW9uOiBrZWVwLWFsaXZlDQpDb250ZW50LUxlbmd0aDogNjgwDQpYLU9yaWdpbmFsLUhUVFAtQ29tbWFuZDogUE9TVCBodHRwOi8vbG9jYWxob3N0Ojc4MDAvVHJhbnNmb3JtYXRpb25fTWFwIEhUVFAvMS4xDQpYLVNlcnZlci1OYW1lOiBsb2NhbGhvc3QNClgtU2VydmVyLVBvcnQ6IDc4MDANClgtUmVtb3RlLUFkZHI6IDEyNy4wLjAuMQ0KWC1SZW1vdGUtSG9zdDogbG9jYWxob3N0DQpYLVNjaGVtZTogaHR0cA0KDQo8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KPFNhbGVFbnZlbG9wZT4NCgk8SGVhZGVyPg0KCQk8U2FsZUxpc3RDb3VudD4xPC9TYWxlTGlzdENvdW50Pg0KCQk8VHJhbnNmb3JtYXRpb25UeXBlPnhzbDwvVHJhbnNmb3JtYXRpb25UeXBlPg0KCTwvSGVhZGVyPg0KCTxTYWxlTGlzdD4NCgkJPEludm9pY2U+DQoJCQk8SW5pdGlhbD5UPC9Jbml0aWFsPg0KCQkJPEluaXRpYWw+SjwvSW5pdGlhbD4NCgkJCTxTdXJuYW1lPkR1bm53aW48L1N1cm5hbWU+DQoJCQk8SXRlbT4NCgkJCQk8Q29kZT4wNDwvQ29kZT4NCgkJCQk8Q29kZT4wNTwvQ29kZT4NCgkJCQk8Q29kZT4wMTwvQ29kZT4NCgkJCQk8RGVzY3JpcHRpb24+VGhlIE9yaWdpbiBvZiBTcGVjaWVzPC9EZXNjcmlwdGlvbj4NCgkJCQk8Q2F0ZWdvcnk+Qm9va3MgYW5kIE1lZGlhPC9DYXRlZ29yeT4NCgkJCQk8UHJpY2U+MjIuMzQ8L1ByaWNlPg0KCQkJCTxRdWFudGl0eT4wMjwvUXVhbnRpdHk+DQoJCQk8L0l0ZW0+DQoJCQk8QmFsYW5jZT44MS44NDwvQmFsYW5jZT4NCgkJCTxDdXJyZW5jeT5FdXJvczwvQ3VycmVuY3k+DQoJCTwvSW52b2ljZT4NCgk8L1NhbGVMaXN0Pg0KCTxUcmFpbGVyPg0KCQk8Q29tcGxldGlvblRpbWU+MTIuMDAuMDA8L0NvbXBsZXRpb25UaW1lPg0KCTwvVHJhaWxlcj4NCjwvU2FsZUVudmVsb3BlPg==</wmb:bitstream>
	</wmb:bitstreamData>
</wmb:event>
You can set the MQSI_EVENTMON_USE_OPTIONAL_WMB_ATTRS environment variable to include the UUID option values for the messageFlowData elements in the schema.
  • If the MQSI_EVENTMON_USE_OPTIONAL_WMB_ATTRS is not set, the messageFlowData might look similar to this:
    <wmb:messageFlowData>
                <wmb:broker wmb:name="EVENT_TEST" />
                <wmb:executionGroup wmb:name="default" />
                <wmb:messageFlow wmb:uniqueFlowName="EVENT_TEST.default.httpEcho.httpEcho" wmb:name="httpEcho" wmb:threadId="1823762" />
                <wmb:node wmb:nodeLabel="HTTP Input" wmb:nodeType="ComIbmWSInputNode" />
    </wmb:messageFlowData>
  • If you set the MQSI_EVENTMON_USE_OPTIONAL_WMB_ATTRS=1, the messageFlowData includes the UUID fields, for example:
    <wmb:messageFlowData>
                <wmb:broker wmb:name="EVENT_TEST" wmb:UUID="00000000-0000-0000-0000-000000000000" />
                <wmb:executionGroup wmb:name="default" wmb:UUID="00000000-0000-0000-0000-000000000000" />
                <wmb:messageFlow wmb:uniqueFlowName="EVENT_TEST.default.httpEcho.httpEcho" wmb:name="httpEcho" wmb:UUID="00000000-0000-0000-0000-000000000000" wmb:threadId="1824822" />
                <wmb:node wmb:nodeLabel="HTTP Input" wmb:nodeType="ComIbmWSInputNode" />
    </wmb:messageFlowData>

Event sequencing

To enable event-processing software to sequence the events correctly, both an ISO 8601 timestamp and a counter attribute are produced. The counter attribute is in the EventSequence element of the monitoring event. This counter starts at 1 for the first event that is produced by the processing of a message (typically the transaction.Start event) and is incremented for each subsequent event produced. It is reset to 1 at the start of the next message. The creation time and counter are always produced on all monitoring events. The software that processes the events can choose which field, or a combination of the two, to use to sequence the events.

If a message is processed successfully, the monitoring events that are generated have a contiguous, incrementing set of counter values. The value starts at 1 and is assigned at the time when the event is created. If a message fails and is rolled back, gaps can occur in the counter sequence. The missing values are the values that were used for events that were produced as part of the message flow unit of work that was rolled back.

Monitoring events can be included in the main unit of work of a message flow, an independent unit of work, or outside of a unit of work. Therefore, if a message flow fails, the sequence numbers are not necessarily contiguous. For example, consider the following scenario:
  • Sequence 1. The transaction start event.
  • Sequence 2, 3, 4. Events in the message flow unit of work.
  • Sequence 5. The independent unit of work.
  • Sequence 6. An event outside of a unit of work.
  • Sequence 7. An event in the message flow unit of work.
  • Sequence 8. An event outside of a unit of work.
  • The flow then fails and is rolled back.
  • Sequence 9. The transaction rollback event in the independent unit of work.
Only sequence numbers 1, 5, 6, 8 and 9 are sent to the monitoring application.

Default content of monitoring events

When an event is emitted, the fields for the event are created by using the information that is provided by the monitoring properties of the message flow or the monitoring profile. Any event field that is not explicitly specified is given a default value, as shown in the following table:
Field in event Default value MonitoringEventV2 Default Value WMB
bitstreamData.bitstream@dataCCSID The original CCSID of the message data provided in the bitstream Not applicable
bitstreamData.bitstream@dataEncoding The original encoding of the message data provided in the bitstream Not applicable
eventData/@wmb: eventSourceAddress No default; you must provide this information. No default; you must provide this information.
eventData/@wmb: eventSchemaVersion Not applicable 6.1.0.3
eventData/@wmb:productVersion   7000
eventData/eventIdentity/@wmb:eventName The default is derived from @eventSourceAddress. The default is derived from @eventSourceAddress.
eventData/eventSequence/@counter The counter is set to 1 for first event that is emitted and increased by 1 for each subsequent event. The counter is set to 1 for first event that is emitted and increased by 1 for each subsequent event.
eventData/eventSequence/@creationTime The date and time when the event was created. The date and time when the event was created.
eventData/eventCorrelation/@localTransactionId A generated unique identifier. This identifier is not generated if only transaction rollback or end events, or both, are configured, unless a transaction start event is configured as well. A generated unique identifier. This identifier is not generated if only transaction rollback or end events, or both, are configured, unless a transaction start event is configured as well.
eventData/eventCorrelation/@parentTransactionId No default. Unless you set this value, an empty string is used. No default. Unless you set this value, an empty string is used.
eventData/eventCorrelation/@globalTransactionId No default. Unless you set this value, an empty string is used. No default. Unless you set this value, an empty string is used.
messageFlowData/@application Application name Not applicable
messageFlowData/@library Library name Not applicable
messageFlowData/broker/@name Not applicable. The name of the integration node.
messageFlowData/executionGroup/@name Not applicable. The name of the integration server.
messageFlowData/integrationNode/@name The name of the integration node. Not applicable.
messageFlowData/integrationServer The name of the integration server. Not applicable.
messageFlowData/messageFlow/@name The name of the message flow. The name of the message flow.
messageFlowData/messageFlow/@uniqueFlowName A string composed of the names of the integration node, integration server, and flow in the form: integrationNodeName.integrationServerName.application_name.flow_name A string composed of the names of the integration node, integration server, and flow in the form: integrationNodeName.integrationServerName.application_name.flow_name
messageFlowData/messageFlow/@threadId The thread ID of the message flow. The format depends on the operating system. The thread ID of the message flow. The format depends on the operating system.
messageFlowData/node/@nodeLabel The label of the node that emitted the event. The label of the node that emitted the event.
messageFlowData/node/@nodeType The type of the node that emitted the event. The type of the node that emitted the event.
messageFlowData/node/@nodeDetail Optional information about the node.
MQInput
The name of the queue.
Other nodes
Omitted.
Optional information about the node.
MQInput
The name of the queue.
Other nodes
Omitted.
applicationData No default; omitted if not provided. No default; omitted if not provided.
bitstreamData No default; omitted if not provided. No default; omitted if not provided.