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.
- 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.
- 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 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 . 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.
<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.
{
"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 . 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.
<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>
- 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.
- 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.
Default content of monitoring events
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. | Optional information about the node. |
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. |