Configuration

ProcessMonitor

You can configure any number of <Process> to watch OS processes or groups of processes.

<SystemMonitor>

  <ProcessMonitor>

    <Process ... />
    <Process ... />

  </ProcessMonitor>

</SystemMonitor>

pollInterval

⏱️ duration:

default:

2s

Sets the interval at which the Process Monitor polls the OS for process changes.

On Windows, setting pollInterval explicitly disables ETW and switches to polling. This may be useful for testing or in environments where ETW is not available.

See Performance.

Process

<Process name="Browser" withChildren="false" minCPU="1%"
  onIdle="stop" onStart="" onStop="">

  chrome|edge|firefox

</Process>

name

You can provide any logical name here, to describe the process or group of processes. This name will be used to represent these processes in the log.

text

🔍 regex:

The text node of the <Process> will be parsed as a regular expression and matched against the name of the process.

watchChildren

default:

false

By default, this process group will only include processes with a matching image name. However, if you set watchChildren, their spawned child processes will also be included. However, each individual process will only be included once. Therefore, you can safely set this for processes that spawn child processes of themselves (e.g. most of the web browsers).

minCPU

For each process group, you can set a cumulative CPU threshold so that it counts as usage. The following formats are valid:

10%

When a number is configured with a percentage unit, the absolute processing time will be compared with the total processing time available since the last timeout. The used processing time has to be more than this average for the resource to be considered non-idle. The total processing time takes into account the number of available processing cores, so the value will correspond to what you see in Task Manager.

10min

When a number is configured with a time unit, it is compared to the absolute processing time since the last timeout. If multiple cores are used, the processing time can exceed the elapsed clock time by a factor equal to the number of installed cores. You can use the usual format for durations.

If you do not configure this, every matching process will be counted as activity. In this case, the onIdle event will not be triggered.

onIdle

⚡️ event:

This event is triggered if the processing time used since the last timeout is less than the configured minCPU value. If no CPU threshold is configured, this event will not be triggered.

onStart

⚡️ event:

This event is triggered when the first process of this group starts.

onStop

⚡️ event:

This event is triggered when the last process of this group exists