Cloud Integration – Enabling Trace for Message Processing
It is our goal to continuously improve simulating and troubleshooting message processing in Cloud Integration. With the release of version 2.36 a new log level is introduced which collects message content in addition to the message processing log. This blog describes how this feature can be utilized and the relation to existing log levels which are described in detail in Setting the log level for message processing.
While developing or testing an integration scenario, the message processing log provides information about the status and the steps executed on a configurable level of detail. In scenarios where the message itself gets transformed during processing it can be extremely useful to monitor the message content at different stages as well.
The new log level Trace, like any other log level, can be set for a specific integration flow in the “Log Configuration” section of the “Manage Integration Content” view of the Web-based Monitor (see Product Documentation for details).
Figure 1: Setting the Log Level for an Integration Flow
In the “Monitor Message Processing” view of the Web-based Monitor the log level used when writing the log is visible in both the overview list and the details view which allows selecting the desired log from multiple ones for the same integration flow.
Figure 2: Selecting a Message Processing Log
However, there are some notable differences between Trace and the other log levels.
- Messages may contain sensitive data. Thus, access to message content is restricted to users having Business Expert role.
- Messages may contain a large amount of data. To prevent exhaustion of resources tracing expires after some time, typically 10 minutes and the message content collected during this period is retained for typically 1 hour only.
Due to these reasons the message content is not written to the message processing log but stored separately, allowing a different access level and lifecycle.
When tracing is enabled the message processing log will be written at the highest possible detail level (same as for log level Debug) and the message content gets collected and stored. After expiry of trace during an execution of an integration flow the collection of message content is stopped but the message processing log will still be written on the most detailed level. For subsequent executions, the log level falls back to the one which was set for the integration flow prior to Trace.
The time of Trace expiration as well as the previous log level is displayed in “Manage Integration Content” details.
Figure 3: Getting Trace expiry information
It is worth noting that the log level to be used is determined once at each start of processing a message. This can be useful in retry scenarios where the message processing log consists of multiple parts, one for each try. By changing the log level while such an integration flow is in Retry status, log parts can have a different level of detail and even messages can be traced regardless of the log level which was active when the integration flow was started.
For the time being the message content persisted while tracing can be viewed with the Integration Operations Feature in Eclipse only (see View Trace). Future increments will provide a similar feature in Web-based Monitor as well.
SAP recommends to use tracing in non-productive environments only.
I hope you find this new feature useful. Please feel free to comment on this blog in case you have questions or feedback.
Thanks for sharing this update. Noticed that configure-only content are not traceable. Any plans to support that, since prepackaged content are currently one of the main reasons for CPI adoption.
Hi Eng Swee,
thanks for your feedback.
Due to some internal technical restrictions in the Eclipse-based client viewing trace data for configure-only content is currently not possible. Once trace data can be viewed in the Web-based monitor, this limitation will no longer apply.
Thanks for the update, Ines. Since the feature is planned for WebUI in Q1, wouldn't be too long of a wait. Looking forward to it.
When traces will be available in WebUi?
we plan to deliver Integration Flow trace feature in Q1 2018.
I appreciate the info on this new feature. We often debug integrations by adding "print statements" or writing out intermediate data to a file, but we cannot do this with packaged integrations. So, I think this new "Log Level=Trace" will be very helpful.
I have set the log level to “Trace” and executed integration flow. Post execution, in message monitoring I could see the integration flow is executed successfully and it is decorated with envelope with all run steps details similar to your screen shot.
But when I click on any “Actions” of any step, I could see only 2 tabs i.e. “Log” and “Configuration”. Other tab-“Message Content(Before)” is missing to see the payload of any step.
I have tried this on multiple Integration flows and multiple CPI tenants, but still couldn’t see “Message Content(Before)” option under “Actions”.
Below is the screen shot for reference:
Can you please let me know if there are any additional roles required for the S-user to see this option? or Is it visible only for Enterprise Edition access? Please clarify.
Thanks in advance,
Thanks for the info Ines. How do we monitor the OData services via OData provisioning?
Hi Ines Ahrens,
Is there any way to default log level to Trace instead of Info ?
It will be useful for developer