Process health monitoring

To narrow down the causes of problems and bottlenecks, know the states of the processes that run on your machines. Each running Agent collects important information about the instrumented process such as used memory, GC time, CPU usage (percentage of the CPU capacity currently used by the monitored process), thread count, and transactions that pass through this node.

View

In the AppMon Web, navigate to the Process health web view.

In the AppMon Client you find the process health information in the following places:

  • The Process list view of the Infrastructure Monitoring built-in dashboard. Double-click a process to open the Process Health built-in dashboard.
  • The System Health section of the Applications built-in dashboard. Click the process health indicator, and then the Processes link to open the Process Health built-in dashboard.
  • A tooltip of a Transaction Flow node in the Transaction Flow dashlet or the Monitoring built-in dashboard. Click the Show Application Process link to open the Process Health built-in dashboard.
Process Health built-in dashboard
Process Health built-in dashboard

Hover over the information icon in the State field. A tooltip shows the process ID and how long the process has been running or offline. Click arrows in the top right corner to switch between several processes of one application. From here you can quickly go to the related host health overview, Agent details, and transaction flow.

Health criteria

The following process health criteria is used:

  • Healthy (green): if the process spends less than 15% of its execution time in Garbage Collection (GC). GC doesn't apply to native process — see below for details.
  • Unhealthy (red): If GC is higher than the threshold, or the process was terminated unexpectedly.
  • Unavailable (gray): Information about the known process is unavailable, for example its Agent or Collector is disconnected.

Native process

For native processes, GC Time is not available. The health of this process only depends on its running state:

  • Healthy (green) if the process is running.
  • Unhealthy (red) if the process was shutdown unexpectedly.
  • Unavailable (gray) if the process is not running.

What is monitored

Java .NET Native
Memory Yes 1 Yes 2 Yes 3
Passing Transactions Yes Yes Yes
GC Time Yes Yes No
CPU Usage Yes Yes Yes
Thread Count Yes Yes Yes

1 Young Generation and Old Generation are shown (names may differ depending on the JVM vendor).
2 Generation 0, Generation 1, Generation 2 and Large Object Heap are shown.
3 Only the total process memory is shown.

Process Health incidents

The table shows the default values when process health incidents are triggered, and how to change them in <DT_HOME>/dtserver.iniwith -D<property>=<value>.

Property Value Since Description
com.dynatrace.diagnostics.maxRelativeGCActivity int (default = 15) % 4.2 Set custom health threshold for max relative GC activity of a process (percentage of wall clock time)
com.dynatrace.diagnostics.healthWatchPeriodGc int (default = 5) minutes 4.2 Set custom process health threshold for the watch period
com.dynatrace.diagnostics.healthWatchPeriodViolationThresholdGc int (default = 4) minutes 4.2 Set custom process health threshold for the watch period threshold to be considered unhealthy