---
schema_version: "1"
id: 09651e23220a1cb8d8f7d312f82a03a39bf630efdc3af25de8fac59a8436768b
title: Mule Troubleshooting Plugin
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/mule-runtime/4.6/mule-troubleshooting-plugin.md
canonical_url: https://docs.mulesoft.com/mule-runtime/4.6/mule-troubleshooting-plugin
source_site: docs.mulesoft.com
content_type: documentation
content_hash: d06890329eacf44ddee9f1a1ec8d515d3755950d0e8d4f1ead3c32aeeef3b620
description: MuleSoft Documentation Site
release: "4.6"
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 LTS version 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 an archive at that path containing all output files. The tool uses ZIP format when the `zip` command is available and falls back to TAR.GZ otherwise.

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.34 ./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 (heap dump + file artifacts: conf, logs, server-plugins, apps, domains, policies)
  --logsmaxage <days>     Maximum age in days for logs collected with --extended (default 7, 0 disables)
  --logsmaxtotalsize <mb> Maximum total size in MB for logs collected with --extended (default 100, 0 disables)
  --debug                 Enable debug mode with remote debugging on port 5005
Watch Mode (generate dumps automatically when a condition is met):
  --watch                 Poll runtime metrics and fire a diagnostic dump when a --trigger condition is met
  --trigger <condition>   Trigger condition (repeatable; a dump fires when any one matches). Forms:
                            cpu>N / cpu<N       CPU load percentage above/below N
                            heap>N / heap<N     heap usage percentage above/below N
                            thread>N / thread<N live thread count above/below N
                            time=N              every N seconds
                            cron=<expression>   on a Quartz cron schedule (e.g. cron=0 0/5 * * * ?)
                            script=<path>       when <path> exits with a non-zero status
  --occurrences <n>       Number of dumps to fire before stopping (default 1; 0 or negative = unlimited)
  --checkperiod <seconds> How often to check the triggers, in seconds (default 30; a lower time=N trigger takes precedence)
Examples:
  ./diag                          # Generate diagnostic dump to logs directory
  ./diag --stdout                 # Output diagnostic dump to stdout
  ./diag --extended               # Include heap dump and file artifacts in diagnostic
  ./diag --output /tmp/mule       # Save to specific file (see Archive Format below)
  ./diag --output /tmp/           # Save to specific directory
  ./diag <operation-name>         # Execute specific operation
  ./diag --watch --trigger heap>90              # Dump once when heap usage exceeds 90%
  ./diag --watch --trigger cpu>80 --trigger time=300 --occurrences 0 --checkperiod 10
                                  # Dump every time CPU exceeds 80% or every 300s, checking every 10s, forever
  ./diag --watch --trigger 'cron=0 0/5 * * * ?' --extended
                                  # Extended dump every 5 minutes on a cron schedule
Output:
  The tool creates an archive file containing:
  - mule_dump_<timestamp>.diaf    # Diagnostic information
  - thread_dump_<timestamp>.txt   # Thread dump
  - heap_dump_<timestamp>.hprof   # Heap dump
  - tls_support/                  # TLS introspection results (if available)
  If --extended is used, the following are also included:
  - conf/, logs/, server-plugins/, apps/, domains/, policies/
                                  # logs/ capped at 100MB / 7 days by default
                                  # configurable via --logsmaxtotalsize / --logsmaxage
  Archive Format:
  - Uses ZIP format when 'zip' command is available
  - Falls back to TAR.GZ format when only 'tar' is available
```

### [](#command-line-options)Command-Line Options

The previous output lists every option and its default. These behaviors aren’t mentioned in that summary:

- `--output <path>`: when `<path>` is an existing directory or ends with a trailing slash (`/`), the tool writes the individual output files into that directory. Any other `<path>` is treated as the archive to create, with the format taken from the extension (for example, `.zip` or `.tar.gz`).
- `--stdout`: streams the archive to standard output instead of writing a file, so you can’t combine it with `--output`. It isn’t supported on Windows.
- `--debug`: the JVM listens for a remote debugger on port `5005` and suspends until one attaches, so use it only to troubleshoot the tool itself.

#### [](#watch-mode)Watch Mode

Watch mode (`--watch`) keeps the tool running and generates a diagnostic dump automatically whenever a `--trigger` condition is met, which is useful for capturing state at the moment an intermittent problem occurs. The `help` output lists the watch options and trigger forms. These behaviors aren’t covered there:

- Watch mode runs in the foreground and blocks the terminal until it reaches the number of successful dumps specified by `--occurrences`, or you stop it with `kbd:[Ctrl+C]`.
- Watch mode wraps the default full diagnostic dump, so you can’t combine it with a single named operation. You can combine it with `--extended`.
- A trigger whose metric can’t be sampled on the current host never fires, so it doesn’t produce false dumps.

<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p>Watch mode and the <code>--logsmaxage</code> and <code>--logsmaxtotalsize</code> options are available in Mule runtime 4.6.34 and later.</p>
</div>
</td>
</tr>
</tbody></table>

#### [](#run-a-single-troubleshooting-operation)Run a Single Troubleshooting Operation

Use `./diag <operation-name>` to run only one troubleshooting operation instead of generating the full DIAF. The tool logs the operation result and also saves it to a file named `<operation-name>_<timestamp>.txt`. The `<timestamp>` value is in milliseconds since epoch. A single-operation run doesn’t generate the `mule_dump_<timestamp>.diaf` or `thread_dump_<timestamp>.txt` files.

The `--output` option works the same way as it does for the DIAF:

- Without `--output`, the tool saves the result file in the `logs` directory of the distribution.
- With `--output some/dir/name/` (an existing directory or a path that ends with `/`), the tool saves the result file in that directory. If the directory doesn’t exist, the tool creates it.
- With any other `--output` path, the tool creates an archive at that path that contains the result file, using the same ZIP or TAR.GZ format as the DIAF archive.

For example, this command runs the `threadDump` operation and saves the result to `/tmp/diag/threadDump_<timestamp>.txt`:

```bash
./diag --output /tmp/diag/ threadDump
```

## [](#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)
- [Health Signals](#diaf-health-signals)
- [Memory Detail](#diaf-memory-detail)
- [Network Info](#diaf-network-info)
- [JVM Agents](#diaf-jvm-agents)
- [Statistics](#diaf-statistics)
- [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)
- [Agent Info](#diaf-agent-info)
- [Platform Connectivity](#diaf-platform-connectivity)
- [Known Issues](#diaf-known-issues)

### [](#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.6.32 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></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.6.32, 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.6.32, 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.6.32 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-health-signals)Health Signals

<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.6.34 and later.</p>
</div>
</td>
</tr>
</tbody></table>

This section evaluates a small set of fast host- and JVM-level health signals and reports only the ones that fired. The inputs come from JMX and the host operating system, plus a check for a JVM crash log. No log-file contents are read. On a healthy host, the section shows `None`.

Each fired signal is listed on its own line with a short description and, where available, the measured values. These are the possible signals:

<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">Signal</th>
<th class="tableblock halign-left valign-top">Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Low Available Memory</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Available physical memory is below 10% of total memory.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>No Swap</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The host has no swap memory configured, which is a risk on a low-memory host.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Low storage</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A mounted file system has less than 10% usable space. Reported per affected mount.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>High CPU Steal</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CPU steal time is high, which can indicate low CPU credits on the host (Linux only).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>High CPU IOWait</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CPU I/O wait time is high, which can indicate I/O problems or excessive disk usage (Linux only).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>JVM was restarted</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The JVM process is much younger than the host, which can indicate an unexpected restart.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>JVM crash log present</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A JVM fatal-error log (<code>hs_err_pid&lt;PID&gt;.log</code>) is present in the runtime logs directory or the JVM error-file location, indicating a previous JVM crash.</p></td>
</tr>
</tbody>
</table>

### [](#diaf-memory-detail)Memory Detail

<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.6.34 and later.</p>
</div>
</td>
</tr>
</tbody></table>

This section shows the JVM memory-pool breakdown and garbage-collector statistics of the running Mule runtime, read in-process from JMX. It has four blocks: aggregate `Heap` usage, aggregate `Non-Heap` usage, one entry per memory pool under `Memory Pools`, and one entry per collector under `Garbage Collectors`.

The `Heap`, `Non-Heap`, and each `Memory Pools` entry report these usage fields:

<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>init</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Initial amount of memory the JVM requested for the pool. Shown as <code>n/a</code> when the JVM doesn’t define it.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>used</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Amount of memory currently in use.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>committed</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Amount of memory guaranteed to be available to the JVM.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>max</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum amount of memory that can be used. Shown as <code>n/a</code> for an unbounded pool.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>used/committed</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Ratio of used to committed memory, as a percentage. Omitted when committed memory isn’t positive.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>used/max</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Ratio of used to maximum memory, as a percentage. Omitted when maximum memory isn’t defined.</p></td>
</tr>
</tbody>
</table>

Each `Memory Pools` entry also reports its `type` (`HEAP` or `NON_HEAP`). Each `Garbage Collectors` entry reports:

<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>count</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Number of collections the collector has performed. Shown as <code>n/a</code> when the collector doesn’t support the counter.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>time.ms</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Accumulated collection time, in milliseconds. Shown as <code>n/a</code> when the collector doesn’t support the field.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>pools</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Names of the memory pools the collector manages, separated by <code>|</code>.</p></td>
</tr>
</tbody>
</table>

### [](#diaf-network-info)Network 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.6.33 and later.</p>
</div>
</td>
</tr>
</tbody></table>

This section shows host-level network diagnostics for the machine, container, or pod where the Mule runtime instance is running: the hostname, the network interfaces with their assigned IP addresses and I/O counters, and the active and listening network connections. Interface counters and connection tables are collected from the host operating system.

#### [](#host)Host

<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.network.hostname</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Hostname of the machine running the Mule runtime.</p></td>
</tr>
</tbody>
</table>

#### [](#interfaces)Interfaces

Each network interface is reported under its own name (for example, `eth0:`, `lo:`), including loopback, physical, virtual, and tunnel interfaces. For each interface, the report includes these fields:

<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>mtu</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum transmission unit of the interface, in bytes.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>mac</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MAC address of the interface, or <code>None</code> for interfaces that don’t have one (for example, loopback).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>flags</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Interface flags, such as <code>UP</code>, <code>LOOPBACK</code>, <code>POINTOPOINT</code>, <code>VIRTUAL</code>, and <code>MULTICAST</code>, or <code>None</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>addrs</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">IP addresses (IPv4 and IPv6) assigned to the interface, or <code>None</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>bytes.recv</code> / <code>bytes.sent</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Cumulative number of bytes received or sent on the interface since the host started. These are raw counters intended for computing rates by comparing two reports.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>packets.recv</code> / <code>packets.sent</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Cumulative number of packets received or sent on the interface.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>errors.in</code> / <code>errors.out</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Cumulative number of inbound or outbound errors on the interface.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>drops.in</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Cumulative number of inbound packets dropped on the interface.</p></td>
</tr>
</tbody>
</table>

#### [](#connections)Connections

The report includes three connection tables, each preceded by its own header. Each connection line has the format `type=<type> state=<state> local=<address>:<port> foreign=<address>:<port>`, where `type` is one of `tcp4`, `tcp6`, `udp4`, or `udp6` and `state` is a TCP connection state (for example, `ESTABLISHED`, `LISTEN`, or `TIME_WAIT`). A wildcard address or port is shown as `*`. IPv6 addresses are shown in compressed form and enclosed in brackets (for example, `[::1]:8081`).

<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">Table</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>Connections (Mule pid=&lt;pid&gt;)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Connections owned by the Mule runtime process.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Listening ports</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Host-wide sockets in the <code>LISTEN</code> state. Each line also includes the owning <code>pid</code>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Connections (all, count=&lt;n&gt;)</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Full host-wide connection table, with the total count in the header. Each line also includes the owning <code>pid</code>.</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.6.32 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-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. Dropped events aren’t flagged.

<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.6/[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.6/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.6.32 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.6.32 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.

### [](#diaf-agent-info)Agent 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.6.33 and later. This section is available only in Enterprise Edition runtimes that have the Mule agent installed.</p>
</div>
</td>
</tr>
</tbody></table>

The Agent Info section reports the installation and health of the Mule agent that pairs this runtime with Anypoint Platform: whether the agent is installed, its version, key configuration values, keystore certificate details, and the most recent connection status. Use it to diagnose agent pairing and platform-connectivity issues.

The first line reports whether the agent is installed:

<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>installed</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code> if the Mule agent plugin is present, or <code>false</code> if it isn’t. When <code>false</code>, the report shows a message directing you to run <code>./bin/amc_setup</code> to install and pair the runtime, and no further fields are reported.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>version</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Version of the installed agent, read from the <code>mule-agent-api</code> JAR file name, or <code>n/a</code> if it can’t be determined.</p></td>
</tr>
</tbody>
</table>

#### [](#configuration)Configuration

Key values read from the agent descriptor file (`conf/mule-agent.yml`). If the file isn’t present, the report shows a note indicating the agent hasn’t been configured. Fields that can’t be read are shown as `n/a`.

<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>websocket.enabled</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the WebSocket transport is enabled.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>websocket.consoleUri</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">WebSocket connection URI to Anypoint Platform.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>rest.enabled</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the REST transport is enabled.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>rest.port</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Port configured for the REST transport.</p></td>
</tr>
</tbody>
</table>

#### [](#keystore)Keystore

Certificate details read from the agent keystore (`conf/mule-agent.jks`). If the file isn’t present, can’t be loaded, or has no certificates, the report shows a note describing which of those cases applies. Otherwise, the report shows one entry per certificate.

<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>alias</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Alias of the certificate entry in the keystore.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>subjectDN</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Subject distinguished name of the certificate.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>issuerDN</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Issuer distinguished name of the certificate.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>validFrom</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Date from which the certificate is valid.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>validUntil</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Date until which the certificate is valid.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>validity</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Current validity status of the certificate: valid (with days until expiry), expired, or not yet valid.</p></td>
</tr>
</tbody>
</table>

#### [](#connectivity)Connectivity

Connection status derived from the certificate and the agent log file (`logs/mule-agent.log`). If the log file isn’t present, the report notes that the connection history is unavailable.

<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>serverId</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Server ID that identifies this runtime to Anypoint Platform, read from the common name of the agent certificate, or <code>n/a</code> if it can’t be determined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>log</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Path to the agent log file inspected for connection events.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>status</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Latest connection status found in the log: <code>CONNECTED</code>, <code>DISCONNECTED</code>, <code>DELETED</code> (the runtime was deleted from the platform), or <code>UNKNOWN</code> if no connection events are found.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>lastSuccessfulConnection</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Timestamp of the most recent successful connection to the platform, or <code>n/a</code> if none is found.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>recentHistory</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The most recent connection events, each shown as a timestamp and status, up to the last five events.</p></td>
</tr>
</tbody>
</table>

### [](#diaf-platform-connectivity)Platform Connectivity

<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.6.33 and later. This operation runs on demand only. Because it performs outbound network connections, it isn’t included in the default diagnostic dump. Run it explicitly by name with <code>./diag platformConnectivity</code>.</p>
</div>
</td>
</tr>
</tbody></table>

This operation checks TCP connectivity from the Mule runtime host to the Anypoint Platform endpoints and dumps the TLS certificate chain presented by the platform. Use it to diagnose connectivity or TLS issues between a runtime and the control, data, and monitoring planes. The report has two subsections.

#### [](#connectivity-2)Connectivity

For each endpoint, the operation resolves the host and attempts a TCP connection, reporting one line per endpoint. The operation probes a fixed list of US, EU, and monitoring-plane endpoints, plus any endpoints derived from this runtime’s `anypoint.platform.base_uri` and `anypoint.platform.analytics_base_uri` configuration. Endpoints that share the same host and port are probed only once.

A reachable endpoint is reported as:

```text
OK     plane=<label> host=<host> port=<port> ips=<resolved-ips> (<duration> ms)
```

An unreachable endpoint is reported as:

```text
FAILED plane=<label> host=<host> port=<port> ips=<resolved-ips> : <reason>
```

<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>plane</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Label identifying the endpoint’s origin: <code>us</code> or <code>eu</code> for the control and data planes, <code>us-mon</code> or <code>eu-mon</code> for the monitoring plane, or <code>configured</code> for an endpoint derived from this runtime’s configuration.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>host</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Hostname or IP address of the endpoint.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>port</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">TCP port probed (typically <code>443</code>, or <code>5044</code> for the monitoring ingestor).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>ips</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">IP addresses the host resolved to.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>duration</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(Reachable endpoints only) Time taken to establish the connection, in milliseconds.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>reason</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(Unreachable endpoints only) Cause of the failure, such as an unresolvable host or a refused connection.</p></td>
</tr>
</tbody>
</table>

#### [](#certificate-chain)Certificate Chain

This subsection opens a TLS connection to `mule-manager.anypoint.mulesoft.com:443` and dumps the certificate chain the platform presents. The chain is captured for inspection even when it wouldn’t pass validation, so it can be used to diagnose TLS interception or trust issues.

The report first shows the handshake outcome as `handshake: success` or `handshake: FAILED: <error>`, followed by one entry per certificate in the chain, indexed from `[0]`:

<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>subject</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Subject distinguished name of the certificate.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>issuer</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Issuer distinguished name of the certificate.</p></td>
</tr>
</tbody>
</table>

### [](#diaf-known-issues)Known Issues

<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.6.34 and later.</p>
</div>
<div class="paragraph">
<p>This operation runs on demand only. Because it scans the full set of rotated log files, which is disk-intensive, it isn’t included in the default diagnostic dump. Run it explicitly by name with <code>./diag knownIssues</code>.</p>
</div>
</td>
</tr>
</tbody></table>

This operation scans the runtime logs and the deployed applications for a set of well-known problem signatures and reports the ones it detects. Use it to surface recurring issues, such as out-of-memory conditions or abnormal terminations, that otherwise require manual log inspection.

The report shows these sections, in this order. Under each section, the operation lists one line per detected signal, showing the signal, the number of occurrences, and, where available, a short diagnosis. A section with no detections shows `None`. When a source can’t be read, the operation shows a marker such as `(source not available: no readable Mule log files found)` instead of a count.

<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">Section</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>Memory:</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Out-of-memory conditions detected in the Mule logs, including Java heap, PermGen, and Metaspace exhaustion.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Linux OOM-killer:</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Events where the Linux kernel out-of-memory killer terminated a process, detected in the kernel logs.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Abnormal termination:</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Signs of an abnormal JVM termination, such as a <code>SIGKILL</code>, an unexpected JVM exit, or a CloudHub restart trigger, detected in the runtime and monitor logs.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>MUnit at runtime:</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MUnit artifacts found among the deployed applications. MUnit is a test-scope dependency and shouldn’t be packaged for deployment. Each detection lists the artifact coordinates followed by this diagnosis.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Connector versions:</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The connector versions found in the deployed applications, listed for reference.</p></td>
</tr>
</tbody>
</table>

## [](#considerations)Considerations

- DIAF provides investigation hints. Check the logs for complete details.
- 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)