Page tree
Skip to end of metadata
Go to start of metadata

EXPERIMENTAL

This feature is experimental. It means that it is not intended for production use. The feature is not finished. It is not stable. The implementation may contain bugs, the configuration may change at any moment without any warning and it may not work at all. Use at your own risk. This feature is not covered by midPoint support. In case that you are interested in supporting development of this feature, please consider purchasing midPoint Platform subscription.

Tracing is an unofficial and highly experimental feature of midPoint troubleshooting. The principle is very simple: any operation in midPoint can be recorded into a special trace file, and that file is later viewed e. g. using midPoint Eclipse plugin (or a text editor for extremely brave individuals).

TODO

How to record an operation trace

First you have to enable experimental features of midPoint GUI:

After the change, please log out and log in, in order to apply the changed settings.

Then you can execute any operation in "traced mode" like this:

There are two basic flavors of tracing:

  1. Functional tracing. It is used to troubleshoot functional issues like misbehaving mappings. There is a lot of information collected, and therefore this can have a significant performance impact. It is often advisable to include logging information in recorded traces, e.g. model, provisioning, or SQL logging.
  2. Performance tracing. This one is suitable to pinpoint performance issues. Here we collect only basic information, so the impact on performance is quite low.

After operation is complete, the trace is stored in trace  subdirectory of midPoint home directory. It can be obtained either directly from there, or downloaded from within Created reports menu item:

How to customize the tracing

Tracing profiles are available in the system configuration. If you need to change them (typically if you need to include more logging), you can update the configuration.

An example of adding workflow module logging:

<profile>
    <name>functional-model-workflows-logging</name>
    <displayName>Functional tracing (with model and workflows logging)</displayName>
    <visible>true</visible>
    <fileNamePattern>functional-trace %{timestamp} %{focusName}</fileNamePattern>
    <createRepoObject>true</createRepoObject>
    <compressOutput>true</compressOutput>
    <collectLogEntries>true</collectLogEntries>
	<loggingOverride>
	    <levelOverride>
		    <logger>com.evolveum.midpoint.model</logger>
			<logger>com.evolveum.midpoint.wf</logger>
			<level>TRACE</level>
        </levelOverride>
	</loggingOverride>
    <tracingTypeProfile>
        <level>normal</level>
    </tracingTypeProfile>
</profile>

How to analyze the trace

This part requires a special build of midPoint plugin. (TODO)


  • No labels