---
schema_version: "1"
id: e97f9ce6e9448fdc57fd76e93c00c9fe8a22e4a2483c1996147f167ee15887d2
title: Mule Troubleshooting Plugin
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/mule-runtime/4.11/mule-troubleshooting-plugin.md
canonical_url: https://docs.mulesoft.com/mule-runtime/4.11/mule-troubleshooting-plugin
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 1ff37b305b54b9ec4c2b75a193a6641fab3d1cb2c574186a5f69e2668f181042
description: MuleSoft Documentation Site
release: "4.11"
latest: false
---
# Mule Troubleshooting Plugin

Use the Mule Troubleshooting plugin to generate structured diagnostic information, simplify troubleshooting, and provide consistent data for Mule runtime support.

The Mule Troubleshooting plugin provides a unified way to collect diagnostic data from Mule runtime environments. It generates a structured diagnostic archive called the Diagnostic Information Analysis File (DIAF), which consolidates Mule runtime information, application metrics, and system data into a single, standardized output.

This Java-based plugin provides an extensible, environment-agnostic solution that simplifies troubleshooting for Mule runtime engineers, MuleSoft Support teams, customers running self-service diagnostics, and AI-assisted analysis.

## [](#before-you-begin)Before You Begin

Before using the plugin, make sure that you have these prerequisites:

- Supported Mule runtime distributions include version 4.10 and later, or LTS versions 4.9 (with patch 4.9.10 or later) and 4.6 (with patch 4.6.23 or later).
- Java 8 or later, matching the Mule runtime version requirements.
- Access to the `$MULE_HOME` directory. The CLI script `diag` automatically locates the Mule home directory.

The plugin works out-of-the-box in the Standalone, CloudHub, and CloudHub 2.0 deployment models without installing additional dependencies. For details about CloudHub 2.0 diagnostics, see [Generating Apps Diagnostics and Analyzing with Einstein](https://docs.mulesoft.com/cloudhub-2/ch2-view-diag).

## [](#using-the-mule-troubleshooting-plugin)Using the Mule Troubleshooting Plugin

Run this command from your Mule runtime installation at `$MULE_HOME/tools/diag` to generate the DIAF and a thread dump. By default, the tool saves the files unzipped in the `logs` directory of the distribution.

Use the `./diag --extended` command to generate a heap dump. Use `./diag --output some/dir/name/` to create the directories if they don’t exist and save unzipped files there. Use `./diag --output some/dir/name` (without a trailing `/`) to create a ZIP file at that path containing all output files.

On Windows, run `diag.bat`. The `--stdout` option isn’t supported.

The plugin’s help output lists the available commands and options.

```bash
➜  mule-enterprise-standalone-4.6.23 ./tools/diag help
Mule Troubleshooting Tool
=========================

Usage: ./diag [options] [command] [command-options]

Commands:
  diaf                    Generate a complete Mule diagnostic dump (default)
  help                    Show this help message
  <operation-name>        Execute a specific troubleshooting operation

Global Options:
  --stdout                Output the diagnostic dump to standard output
  --output <path>         Specify custom output directory or file path
  --extended              Enable extended mode (includes heap dump)
  --debug                 Enable debug mode with remote debugging on port 5005

Examples:
  ./diag                          # Generate diagnostic dump to logs directory
  ./diag --stdout                 # Output diagnostic dump to stdout
  ./diag --extended               # Include heap dump in diagnostic
  ./diag --output /tmp/mule.zip   # Save to specific file
  ./diag --output /tmp/           # Save to specific directory
  ./diag <operation-name>         # Execute specific operation

Output:
  By default, the tool creates a ZIP file containing:
  - mule_dump_<timestamp>.diaf    # Diagnostic information
  - thread_dump_<timestamp>.txt   # Thread dump
  - heap_dump_<timestamp>.hprof   # Heap dump (if --extended is used)

  The ZIP file is saved to the 'logs' directory by default.
```

## [](#understanding-diagnostic-information-analysis-file-diaf)Understanding Diagnostic Information Analysis File (DIAF)

The Diagnostic Information Analysis File (DIAF) organizes all diagnostic data collected by the Mule Troubleshooting plugin into structured sections. Use this reference to understand the content of each section:

- [Title](#diaf-title)
- [Basic Information](#diaf-basic-info)
- [System Info](#diaf-system-info)
- [JVM Agents](#diaf-jvm-agents)
- [Statistics](#diaf-statistics)
- [Alerts](#diaf-alerts)
- [Event Dump](#diaf-event-dump)
- [Schedulers](#diaf-schedulers)
- [CPU Usage](#diaf-cpu-usage)
- [Deployments](#diaf-deployments)
- [Connectors State](#diaf-connectors-state)
- [Cluster Info](#diaf-cluster-info)

### [](#diaf-title)Title

This section shows the report generation timestamp.

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Report Generation Timestamp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The report generation time, expressed in the local time zone.</p></td>
</tr>
</tbody>
</table>

### [](#diaf-basic-info)Basic Information

This section shows details about the environment where the Mule runtime instance is running.

<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p>Available in Mule runtime 4.11.6 and later. The JVM resource metrics in this section appear under the JVM Resources block and use the jvm. prefix (for example, jvm.memory.used). In earlier patch versions, these metrics appear at the top level without the prefix (for example, memory.used). The metrics have the same meaning in both formats.
Operating system details and the system-wide CPU load no longer appear in this section. See <a href="#diaf-system-info">System Info</a> for those metrics.</p>
</div>
</td>
</tr>
</tbody></table>

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Mule Product/version</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Product (CE/EE), version, and build number of the Mule runtime. Formatted as <code>[productName] [version] (build [buildNumber])</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>mule_home</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Absolute path to <code>MULE_HOME</code> for the Mule runtime.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>mule_base</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Absolute path to <code>MULE_BASE</code> for the Mule runtime.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>mule.*</code> System Properties</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">All system properties starting with <code>mule.</code>, including those defined by DataWeave and API Gateway. Listed with values and sorted alphabetically.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Java Version</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Version of the JVM running the Mule runtime.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Java Vendor</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor of the JVM running the Mule runtime.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Java VM Name</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Full name of the JVM running the Mule runtime.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>JAVA_HOME</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Location of the JVM running the Mule runtime.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Running Time</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Total time the Mule runtime has been running.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">PID</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Process ID of the JVM running the Mule runtime.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Report Millis Time</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Report generation time in milliseconds since epoch (<code>System.currentTimeMillis</code>).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Report Nano Time</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Report generation time in nanoseconds (<code>System.nanoTime</code>).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>memory.used</code> (<code>jvm.memory.used</code>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Amount of used memory in the JVM.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>memory.free</code> (<code>jvm.memory.free</code>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Amount of available memory in the JVM.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>memory.total</code> (<code>jvm.memory.total</code>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Total amount of memory in the JVM.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>memory.max</code> (<code>jvm.memory.max</code>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum amount of memory the JVM attempts to use.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>memory.used/total</code> (<code>jvm.memory.used/total</code>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Percentage of used memory compared to the total allocated memory.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>memory.used/max</code> (<code>jvm.memory.used/max</code>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Percentage of used memory compared to the maximum available memory.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>processors.available</code> (<code>jvm.processors.available</code>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of processors available to the JVM process.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>load.process</code> (<code>jvm.load.process</code>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Percentage of recent CPU usage for the JVM process; negative value if unavailable.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">License</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>(Enterprise Edition only) License information for Enterprise Edition distributions appears under the <code>License</code> block. This block doesn’t appear in Community Edition or when no Enterprise license is registered. When present, it can include:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>valid</code>: Indicates whether the license is valid.</p>
</li>
<li>
<p><code>validationError</code>: Indicates the reason the license is not valid, when applicable.</p>
</li>
<li>
<p><code>evaluation</code>: Indicates whether the license is an evaluation license.</p>
</li>
<li>
<p><code>expirationDate</code>: The license expiration date.</p>
</li>
<li>
<p><code>licenseFile</code>: The license file in use.</p>
</li>
<li>
<p><code>contact</code>: Contact information, including <code>name</code>, <code>email</code>, <code>telephone</code>, <code>company</code>, and <code>country</code>.</p>
</li>
<li>
<p><code>entitlements</code>: The list of entitlements granted by the license.</p>
</li>
</ul>
</div></div></td>
</tr>
</tbody>
</table>

<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p>In Mule runtime patches earlier than 4.11.6, this section also reports <code>OS Name</code>, <code>OS Version</code>, <code>OS Arch</code>, <code>load.system</code>, and <code>load.systemAverage</code>. Starting with Mule 4.11.6, the operating system details (<code>host.os.<strong></strong></code><strong>) and the host CPU load (<code>host.cpu.load.</code></strong>) are reported in the <a href="#diaf-system-info">System Info</a> section instead.</p>
</div>
</td>
</tr>
</tbody></table>

### [](#diaf-system-info)System Info

<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p>Available in Mule runtime 4.11.6 and later.</p>
</div>
</td>
</tr>
</tbody></table>

This section shows host-level diagnostics for the machine, container, or pod where the Mule runtime instance is running. The diagnostics are collected from the host operating system. Unlike [Basic Information](#diaf-basic-info), which reports JVM-level metrics, this section reports host-level information. CPU load percentages are sampled over a short interval. Some fields are only populated on Linux hosts. On other operating systems, these fields can be absent or display `n/a`. If the runtime can’t collect host information, the report shows `Host info not available` instead.

#### [](#operating-system)Operating System

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host.os.name</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the host operating system.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host.os.version</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Version of the host operating system.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host.os.arch</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Architecture of the host operating system (for example, <code>amd64</code> or <code>aarch64</code>).</p></td>
</tr>
</tbody>
</table>

#### [](#cpu)CPU

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host.cpu.model</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Processor model name.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host.cpu.cores.physical</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of physical CPU cores on the host.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host.cpu.cores.logical</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of logical CPUs (hardware threads) on the host.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host.cpu.load.user</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Percentage of CPU time spent in user space during the sampling interval.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host.cpu.load.system</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Percentage of CPU time spent in kernel or system space during the sampling interval.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host.cpu.load.idle</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Percentage of idle CPU time during the sampling interval.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host.cpu.load.iowait</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(Linux only) Percentage of CPU time spent waiting for input or output operations to complete. High values indicate disk or network I/O bottlenecks rather than CPU saturation.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host.cpu.load.steal</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(Linux only) Percentage of CPU time taken by the hypervisor to serve other tenants. High values indicate a noisy-neighbor or over-committed virtualized host.</p></td>
</tr>
</tbody>
</table>

#### [](#memory)Memory

This section reports host physical memory, not the JVM heap.

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host.memory.total</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Total physical RAM on the host.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host.memory.available</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Physical RAM currently available.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host.memory.used</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Physical RAM currently in use (total minus available).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host.memory.page.size</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Memory page size, in bytes.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host.memory.swap.total</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Total swap space configured on the host.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host.memory.swap.used</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Swap space currently in use. Non-zero swap usage often indicates memory pressure.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host.memory.virtual.max</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum virtual memory (RAM plus swap) available.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host.memory.virtual.in.use</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Virtual memory currently in use.</p></td>
</tr>
</tbody>
</table>

#### [](#disk-input-and-output)Disk Input and Output

(Linux only) For each physical disk device, the report includes information about the device. The report excludes pseudo-devices such as `loop`, `ram`, and `dm-`, and zero-size devices. A device can show `(stats unavailable)` if the runtime can’t read its per-device counters.

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>model</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Disk model.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>size</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Total size of the disk.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>reads</code> / <code>writes</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of read or write operations the device has served since the runtime started.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>read.bytes</code> / <code>write.bytes</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Total amount of bytes the device has read or written since the runtime started.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>transfer.time.ms</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Total time spent on transfers, in milliseconds.</p></td>
</tr>
</tbody>
</table>

### [](#diaf-jvm-agents)JVM Agents

<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p>Available in Mule runtime 4.11.6 and later.</p>
</div>
</td>
</tr>
</tbody></table>

This section lists the JVM agents attached at JVM startup through the `-javaagent`, `-agentpath`, or `-agentlib` arguments. JVM agents can instrument the runtime, intercept class loading, redefine classes, and add overhead. Use this information to identify third-party, APM, and observability agents such as profilers, monitoring, security, and bytecode instrumentation agents, that can affect runtime behavior or interfere with the Mule runtime. The report doesn’t include agents attached dynamically after the JVM starts by using the Attach API. If no agents were attached at startup, the report shows `No JVM agents detected.` instead. Option values that appear to contain secrets, such as license keys, tokens, and passwords, are masked as `******` in both the report and the debug logs.

#### [](#java-agents)Java Agents

Jar-based agents attached with `-javaagent`. For each agent, the report shows the JAR path, the option string, and metadata read from the JAR’s `META-INF/MANIFEST.MF`. If the JAR is missing or has no usable manifest, the report shows `(no manifest metadata available)`.

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Path</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Absolute path to the agent JAR.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Options</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Option string passed to the agent. The report shows <code>(none)</code> if no options are given or <code>(empty)</code> if an empty option string is given. Sensitive values are masked.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Premain-Class</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Class with the <code>premain</code> method that runs before the application’s <code>main</code> method, when the agent is attached at startup.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Agent-Class</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Class with the <code>agentmain</code> method, used when the agent is attached to a running JVM.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Launcher-Agent-Class</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Class used to launch the agent from an executable JAR.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Can-Redefine-Classes</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Indicates whether the agent can redefine classes.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Can-Retransform-Classes</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Indicates whether the agent can retransform classes.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Can-Set-Native-Method-Prefix</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Indicates whether the agent can set a native method prefix.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boot-Class-Path</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Paths the agent adds to the bootstrap class loader search.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Implementation-Title</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Title of the agent implementation.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Implementation-Vendor</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Vendor of the agent implementation.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Implementation-Version</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Version of the agent implementation.</p></td>
</tr>
</tbody>
</table>

#### [](#native-agents)Native Agents

Agents attached through `-agentpath` or `-agentlib` are native libraries, which don’t carry a manifest.

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Name</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Name (for <code>-agentlib</code>) or path (for <code>-agentpath</code>) of the native agent.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Flag</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Argument used to attach the agent through <code>-agentpath</code> or <code>-agentlib</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Options</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Option string passed to the agent. The report shows <code>(none)</code> if no options are given or <code>(empty)</code> if an empty option string is given. Sensitive values are masked.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>File exists</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the native library is found on disk. Shown only for agents attached through <code>-agentpath</code>.</p></td>
</tr>
</tbody>
</table>

### [](#diaf-statistics)Statistics

This section shows detailed statistics information about deployed Mule applications and their performance metrics. Metrics reflect the runtime state since the last start or redeployment. They reset after redeployments and don’t capture complete historical data. Note that this information represents a snapshot, or point in time, of the runtime behavior and can differ from the information in the Anypoint Platform usage report, which reflects a period of time.

Set the `mule.enable.statistics` system property to collect General Application Metrics and Flow Statistics.

#### [](#flow-summary-statistics)Flow Summary Statistics

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Private Flows Declared</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Total number of private flows declared in the application. A private flow doesn’t contain a <code>MessageSource</code> and isn’t used by an APIkit router.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Private Flows Active</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of private flows that are currently in a started state.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Trigger Flows Declared</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Total number of trigger flows declared in the application. A trigger flow contains a MessageSource.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Trigger Flows Active</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of trigger flows currently in a started state.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">API Kit Flows Declared</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Total number of APIkit flows declared in the application. An APIkit router uses an APIkit flow, but the flow doesn’t contain a <code>MessageSource</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">API Kit Flows Active</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of APIkit flows currently in a started state.</p></td>
</tr>
</tbody>
</table>

#### [](#general-application-metrics)General Application Metrics

This section shows counter metrics for the application or flow. Counter metrics include cumulative totals and rolling counts for the last 1, 5, 15, and 60 minutes (shown next to the total as `(rolling) 1m: …​ 5m: …​ 15m: …​ 60m: …​`).

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Events Received</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of events received by the application or flow.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Events Processed</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of events processed by the application or flow.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Messages Dispatched</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Total number of messages dispatched from message sources within the application.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Execution Errors</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of execution errors encountered.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Fatal Errors</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of fatal errors that cause the application to fail or stop processing.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Connection Errors</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of connection-related errors that occur.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Average Processing Time</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Average time (in milliseconds) required to process an event.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Min Processing Time</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Minimum time (in milliseconds) required to process an event.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Max Processing Time</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum time (in milliseconds) required to process an event.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Total Processing Time</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Cumulative time (in milliseconds) spent processing all events.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Processing Time (rolling)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Aggregated processing-time figures for rolling windows of the last 1, 5, 15, and 60 minutes. Each window reports <code>min</code>, <code>max</code>, <code>avg</code>, and <code>count</code> (number of processed events that contributed to the window). When <code>count</code> is <code>0</code>, <code>min</code>, <code>max</code>, and <code>avg</code> are reported as <code>0</code>.</p></td>
</tr>
</tbody>
</table>

#### [](#flow-statistics)Flow Statistics

This section shows counter metrics for the flow. Counter metrics include cumulative totals and rolling counts for the last 1, 5, 15, and 60 minutes (shown next to the total as `(rolling) 1m: …​ 5m: …​ 15m: …​ 60m: …​`).

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Events Received</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Total number of events received by the application since it started.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Events Processed</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Total number of events successfully processed by the application.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Messages Dispatched</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Total number of messages dispatched from message sources within the application.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Execution Errors</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of execution errors that occur during event processing.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Fatal Errors</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of fatal errors that cause the application to fail or stop processing.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Connection Errors</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of connection-related errors that occur.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Average Processing Time</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Average time (in milliseconds) required to process an event.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Processing Time (rolling)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Aggregated processing-time figures for rolling windows of the last 1, 5, 15, and 60 minutes. Each window reports <code>min</code>, <code>max</code>, <code>avg</code>, and <code>count</code> (number of processed events that contributed to the window). When <code>count</code> is <code>0</code>, <code>min</code>, <code>max</code>, and <code>avg</code> are reported as <code>0</code>.</p></td>
</tr>
</tbody>
</table>

### [](#diaf-alerts)Alerts

This section shows alerts for known Mule runtime issues. The report lists how many times each alert triggers during the last 1, 5, 15, and 60 minutes along with the context of the alert at the time of triggering. Some alerts, like the backpressure alert, trigger multiple times with the same context, so the plugin shows the context once and indicates how many times it happens to avoid flooding the report. Alerts that don’t trigger in any of the time intervals aren’t included in the report.

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>MULE:UNKNOWN</code> error raised</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The runtime generated <code>MULE:UNKNOWN</code> errors, which go unhandled. If such an error raises or appears in the app log, it indicates an error in the Mule runtime. The context shows the details of the errors categorized as <code>MULE:UNKNOWN</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Reactor discarded event</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A discarded event is one that a component explicitly filters in a flow. This cuts the processing of such an event, causing the execution to hang. The context shows the correlation ID of each discarded event.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Reactor dropped event</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A dropped event doesn’t pass to the following component in a flow through a reactor chain and doesn’t complete. Its symptom is that the event is “hanged”. The alert doesn’t show context because the event dump provides the information.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Reactor dropped error</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A dropped error doesn’t pass to the corresponding error handler in a flow through a reactor chain, and so doesn’t complete. Its symptom is that the event is “hanged” when an error occurs. The context shows the string representation of each dropped error.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Not consumed stream</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A stream that is garbage collected before being completely consumed can provoke leaks on certain conditions (the most common one is connections from a DB connection pool that remain taken until the data is fully read). The context shows the originating location of the components that generated the streams.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Backpressure triggered</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Backpressure is the mechanism that rejects incoming events that exceed the current capacity. This happens because of a spike of incoming events or a longer than usual processing time of the flows. A common sign is when backpressure triggers on systems that have a CPU and memory capacity. The context shows the flow or component that exceeded capacity and the reason for backpressure.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">XA recovery start error</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Triggered if recovery of an XA connection fails to start. The context shows the unique name (including the configuration name) of the connection for which recovery fails.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Async logger ringbuffer full</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">When a log appender writes logs slower than the log entries are generated, the logger ringbuffer fills up. When full, threads attempting to log either wait for space in the ringbuffer or log synchronously, depending on the configuration. In either case, a thread that shouldn’t block or wait does so, causing performance issues in the Mule runtime. No context is available for this alert because it always means the same, the buffer is full.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Event dispatched after flow stop</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If a source dispatches an event after the flow stops, the graceful shutdown period extends unnecessarily. The context shows the connector that owns the flow’s source, and a thread dump helps you identify why the source doesn’t finish stopping.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">OTel export queue full</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If OpenTelemetry export queues fill up, Mule runtime either drops the exceeding spans and logs or blocks the thread that tries to add them to the export queue until space is available. Dropping these resources results in missing data, while blocking threads can cause performance issues. System logs specify which spans or logs were affected and whether they were dropped or blocked.</p></td>
</tr>
</tbody>
</table>

<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p>The report provides hints about potential issues. For details on a specific alert, query the log. This report isn’t intended to replace the log for detailed analysis.</p>
</div>
</td>
</tr>
</tbody></table>

### [](#diaf-event-dump)Event Dump

This section shows a hierarchical listing of in-flight events. For each event hierarchy executing through a flow in Mule has at least one entry in the report. For each child context for the event, a nested entry appears, sorted in a stack order: children on top, parents on bottom. If an event is dropped, the legend `DROPPED` appears next to it.

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>eventId</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A unique identifier for the event. For child events, it has the ID of the parent event context as prefix.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>runningTime</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">How long the event has been running. For child events, this time refers to the execution of this child context. The format is “mm:ss”.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>eventContextState</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
<ul>
<li>
<p><code>PENDING</code>: Event has been created but not yet accepted by the flow for processing.</p>
</li>
<li>
<p><code>EXECUTING</code>: Event is being executing by the flow or executable component, or has finished but the response is still being processed.</p>
</li>
<li>
<p><code>WAITING_NON_BLOCKING</code>: Event is waiting for a non-blocking operation to complete.</p>
</li>
<li>
<p><code>RESPONSE_PROCESSED</code>: Event execution is complete and the response is handled.</p>
</li>
<li>
<p><code>COMPLETE</code>: Same as <code>RESPONSE_PROCESSED</code>, and all child events are <code>RESPONSE_PROCESSED</code>.</p>
</li>
<li>
<p><code>TERMINATED</code>: After <code>COMPLETE</code>, and all completion callbacks of the context execute.</p>
</li>
</ul>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>flowStack</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>flowStack</code> contains zero-to-many lines, each with this format.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">at [componentId]@[componentLocation](https://docs.mulesoft.com/mule-runtime/4.11/[muleFileName]:[muleFileLineNumber]) [timeInLocation] ms</code></pre>
</div>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>flowStack.componentId</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Identifier of the component (for example, <code>http:request</code>).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>flowStack.componentLocation</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Unique identifier of a component within a Mule application. The first part is the flow or policy name, followed by the index and chains that nests the component.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>flowStack.muleFileName</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the Mule configuration file that contains the component.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>flowStack.muleFileLineNumber</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Line number in the Mule configuration file that contains the component.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>flowStack.timeInLocation</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Duration in milliseconds the event spends at the <code>flowStack</code> entry.</p></td>
</tr>
</tbody>
</table>

### [](#diaf-schedulers)Schedulers

This section shows the status and metrics of schedulers provided by the scheduler service, which the Mule runtime manages internally, not the [source components](https://docs.mulesoft.com/mule-runtime/4.11/scheduler-concept) themselves. For Mule runtime instances with multiple deployed applications, entries are grouped by application.

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>schedulerName</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Name assigned to the scheduler when created, showing where in the code it happened.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>threadType</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Type of tasks the scheduler runs:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>IO</code>: A task that spends most of its execution waiting for I/O operations to complete.</p>
</li>
<li>
<p><code>CPU_INTENSIVE</code>: A task that runs longer than 10 milliseconds, with less than 20% of time blocked.</p>
</li>
<li>
<p><code>CPU_LIGHT</code>: A task that never blocks and runs is less than 10 milliseconds.</p>
</li>
<li>
<p><code>CUSTOM</code>: Threads that aren’t managed by Mule runtime or shared among schedulers. Used when a thread pool needs exclusive use (for example, NIO selectors).</p>
</li>
</ul>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>shutdown</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A shutdown scheduler doesn’t accept new tasks. Tasks still running are allowed a graceful period to complete.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>terminated</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A terminated scheduler is shut down and all in progress tasks are completed or forcefully terminated after a graceful shutdown period.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>activeTasks</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of tasks currently executing by the scheduler.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>queuedTasks</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of tasks waiting in a queue. Not shown if there’s no queue, the queue size can’t be queried, or no tasks are queued.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>rejections</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of tasks rejected because the scheduler is at capacity. Shows rejections in the last 1, 5, 15, and 60 minutes. If there aren’t any in those intervals, the alert isn’t shown.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>throttles</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of tasks throttled because the scheduler is at capacity. Shows throttles in the last 1, 5, 15, and 60 minutes. If there aren’t any in those intervals, the alert isn’t shown.</p></td>
</tr>
</tbody>
</table>

### [](#diaf-cpu-usage)CPU Usage

This section shows the CPU usage for each thread in the Mule runtime process. Use it to identify high CPU consumption that can affect application performance. The data is sorted by current CPU usage to highlight the most active threads.

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Thread ID</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Unique identifier of the thread within the Mule runtime process.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>%CPU</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Percentage of CPU consumed by the thread during the last three-second sampling interval, calculated like the Linux top command. This metric provides a short-term view of CPU activity instead of a lifetime average.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Thread Name</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the thread as reported by the JVM.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>State</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Current execution state of the thread (for example, <code>RUNNABLE</code>, <code>WAITING</code>, <code>TIMED_WAITING</code>, or <code>BLOCKED</code>).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CPU Time (3s)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Total CPU time the thread consumed during the most recent three-second measurement interval, in milliseconds.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Total CPU Time</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Total CPU time the thread has consumed since the Mule runtime process started, in milliseconds.</p></td>
</tr>
</tbody>
</table>

### [](#diaf-deployments)Deployments

This section shows the status and metadata of all artifacts currently deployed in the Mule runtime instance: applications, domains, policy templates, and policies applied to applications. It also shows undeployed artifacts still present in memory, which can indicate possible leaks.

#### [](#applications)Applications

For each application, the report includes this information:

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Artifact Name</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the application.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Artifact Type</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>APPLICATION</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">State</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Current state of the application:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>INITIAL</code></p>
</li>
<li>
<p><code>DEPLOYED</code></p>
</li>
<li>
<p><code>STARTED</code></p>
</li>
<li>
<p><code>STOPPED</code></p>
</li>
<li>
<p><code>UNDEPLOYED</code></p>
</li>
<li>
<p><code>FAILED</code></p>
</li>
</ul>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Domain</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the domain the application uses. Shown only if the application uses a non-default domain.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Policies</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">List of policy IDs applied to the application. Shown only if the application has policies.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Plugins</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">List of all plugins available in the application’s deployment.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Time since Last State Update</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Timestamp of the most recent state update, formatted as <code>yyyy-MM-dd HH:mm:ss</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Feature Flags</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">List of all enabled feature flags for the application, sorted alphabetically. Shown only for <code>DEPLOYED</code>, <code>STARTED</code>, or <code>STOPPED</code> applications.</p></td>
</tr>
</tbody>
</table>

#### [](#domains)Domains

For each domain (excluding the default domain), the report includes this information:

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Artifact Name</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the domain.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Artifact Type</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>DOMAIN</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">State</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Current state of the domain:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>INITIAL</code></p>
</li>
<li>
<p><code>DEPLOYED</code></p>
</li>
<li>
<p><code>STARTED</code></p>
</li>
<li>
<p><code>STOPPED</code></p>
</li>
<li>
<p><code>UNDEPLOYED</code></p>
</li>
<li>
<p><code>FAILED</code></p>
</li>
</ul>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Plugins</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">List of all plugins available in the domain’s deployment.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Time since Last State Update</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Timestamp of the most recent state update, formatted as <code>yyyy-MM-dd HH:mm:ss</code>.</p></td>
</tr>
</tbody>
</table>

#### [](#policy-templates)Policy Templates

Policy templates appear as separate top-level entries. Each entry represents a unique policy template used by one or more applications.

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Template Name/ID</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Name or identifier of the policy template.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Artifact Type</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>POLICY_TEMPLATE</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Version</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Version of the policy template.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Plugins</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">List of all plugins available in the policy template.</p></td>
</tr>
</tbody>
</table>

### [](#diaf-connectors-state)Connectors State

<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p>Available in Mule runtime 4.11.6 and later.</p>
</div>
</td>
</tr>
</tbody></table>

This section reports the state of each connector configuration in the deployed applications, including the connection lifecycle, connection pool information, recent errors, and TLS details. When more than one application is deployed, the report groups connector configurations by application. If an application isn’t started, the report shows `Application is not started — no artifact context available.`. If an application has no connector configurations, the report shows `No connector configurations found.`.

For each connector configuration, the report includes a header with the name, the `Extension` it belongs to, and whether the configuration is `Dynamic` (resolved per event from expressions). The report fields depend on whether the configuration is static or dynamic.

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Connection Provider</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Class name of the resolved connection provider. If the configuration doesn’t declare one, the report shows <code>(configuration does not declare a connection provider)</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">TLS details</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">TLS context information for the connection provider, including certificate validity where applicable. The report shows this information only for providers that use TLS.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Connection State</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>A block of connection statistics for the configuration, shown as <code>(no statistics available)</code> when none have been recorded. When present, the block contains:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>Last Used</code>: Timestamp of the most recent use of the connection.</p>
</li>
<li>
<p><code>Active Components</code>: Number of components currently using this configuration.</p>
</li>
<li>
<p><code>Last Connection Attempt</code>: Timestamp of the most recent connection attempt.</p>
</li>
<li>
<p><code>Last Successful Conn.</code>: Timestamp of the most recent successful connection.</p>
</li>
<li>
<p><code>Pool Info</code>: For pooling connection providers, the connection pool state: <code>active</code>, <code>idle</code>, <code>maxTotal</code>, <code>maxIdle</code>, <code>created</code>, <code>borrowed</code>, <code>returned</code>, and <code>destroyed</code> connection counts. An <code>active</code> count at or near <code>maxTotal</code> indicates the pool is saturated.</p>
</li>
<li>
<p><code>Last Error</code>: Timestamp and details of the most recent connection error, when one has occurred.</p>
</li>
</ul>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Usages</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(Static configurations) Component locations that reference this configuration, or <code>(not referenced by any component)</code> / <code>(no usages created yet)</code> if there are none.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Last Resolution Failure</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(Dynamic configurations) Timestamp and details of the most recent failure to resolve the dynamic configuration, or <code>Not available</code> if there are none.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Last Successful Creation</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(Dynamic configurations) Timestamp of the most recent successful resolution of a configuration instance, or <code>Not available</code> if there are none.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Active Usages</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(Dynamic configurations) Currently active resolved instances, each with its own <code>Connection State</code> block, or <code>(no active dynamic usages)</code> if there are none.</p></td>
</tr>
</tbody>
</table>

### [](#diaf-cluster-info)Cluster Info

<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p>This section applies to Enterprise Edition only and is available in Mule runtime 4.11.6 and later.</p>
</div>
</td>
</tr>
</tbody></table>

This section reports the clustering configuration of the local node. When lock diagnostics are enabled, it also reports the distributed locks currently held across the cluster. This section isn’t available in Community Edition or non-clustered runtimes. If the node isn’t part of an active cluster, the report shows `Cluster is not active. No cluster information available.`.

#### [](#cluster-configuration)Cluster Configuration

The report mirrors the cluster configuration of the local node.

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>clusterId</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Identifier of the cluster the node belongs to.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>clusterNodeId</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Identifier of the local node in the cluster.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>clusterSize</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of nodes currently in the cluster.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>clusterSchema</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Cluster schema in use.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>multicastEnabled</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Indicates whether multicast is enabled for cluster discovery.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>tcpInboundPort</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">TCP port the node uses for inbound cluster communication.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>nodes</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">IP addresses of the nodes in the cluster.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>networkInterfaces</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Network interfaces used for cluster communication.</p></td>
</tr>
</tbody>
</table>

#### [](#lock-diagnostics)Lock Diagnostics

Available only when lock diagnostics are enabled on the runtime. Reports the local member, the number of reporting members, and the distributed locks currently held. For each held lock, the report includes the `lockId` and the lock holder details.

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Field</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>holder.nodeId</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Node holding the lock, shown as <code>LOCAL</code> or <code>REMOTE</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>holder.thread</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Name of the thread that holds the lock.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>holder.threadId</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Identifier of the thread holding the lock.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>holder.threadState</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">State of the holding thread, or <code>n/a</code> for remote nodes.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>holder.acquiredAt</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Timestamp when the lock was acquired.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>holder.heldFor</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">How long the lock has been held.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>holder.callerClass</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(When acquisition stack capture is enabled) Class that acquired the lock.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>holder.acquireStack</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(When acquisition stack capture is enabled) Stack frames captured when the lock was acquired.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>hz.isLocked</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Hazelcast-level lock state, or <code>hz.state: unavailable</code> if it can’t be queried.</p></td>
</tr>
</tbody>
</table>

The report also lists orphan locks, which are held locks that have no owning node in any member’s registry, for example, the holding node stopped before releasing the lock. If acquisition stack traces aren’t enabled, the report includes a note explaining how to enable them.

## [](#considerations)Considerations

- DIAF provides investigation hints. Check the logs for complete details.
- Heap dumps can contain sensitive data. Enable the `--extended` option only in secure environments.
- In Mule runtime instances with multiple applications, DIAF sections are grouped by application.
- Use DIAF for initial troubleshooting before collecting heap or thread dumps manually.
- Correlate events in the event dump section with logs by using the `eventId` for deeper analysis.
- Collect scheduled diagnostics during maintenance windows in production environments.
- To verify if all the hosts defined in your deployable artifacts (domains, applications, policies) support TLS 1.2 and 1.3 connectivity, enable the `mule.extractConnectionData.enable` system property. On UNIX, the tool generates `<ORIGINAL_CSV_NAME>_tls_results.csv` along with DIAF output. Enable the `mule.extractConnectionData.silentErrors` system property to log errors without failing deployment. Not available for Windows.

## [](#see-also)See Also

- [Known Issues](https://help.salesforce.com/s/issues)