Salesforce

Support information collector

« Go Back

Information

 
Content

Installation / Update
Usage
    Available triggers
    Commands
        Inline help (help command)
        Get Mule Runtime process ids (pids command)
        Interactive collection of information (interactive command)
        Direct information download (download command)
        CPU/Threads profiling (profile command)
        Patch conflicts (patchconflict command)
        Additional flags
Self upgrade process
How to gather this information manually?
Reporting an issue/enhancement

Installation / Update

This is a standalone tool and you'll need to use the corresponding version for your operating system. The binaries for each supported operating system can be found here:

Mac OSX (64-bit)
Linux (32-bit)
Linux (64-bit)
Windows (32-bits)
Windows (64-bits)

Download your OS matching executable and place it in the system running your Mule Runtimes. Depending on your operating system you may need to grant executable permission to the downloaded file.

The command update will check if new versions are available (when possible) and notify you what's the latest version, giving you the option to update the tool automatically for you or download the new version to your machine and update the binary file manually.
Note that some OS can't update the binary when it's running to the "update" option will has no effect. Try the "download" option if this is your case.

update options

More information about the process here
 

Usage

Available collectors

  • Heap Dump of the JVM (heapdump)
  • Memory Usage of the JVM (heapdump)
  • Thread Dump of the JVM (threaddump)
  • JVM PerfCounter Properties (sysprops)
  • JVM system properties (sysprops)
  • Mule Runtime's policies folder (policies)
  • Mule Runtime's apps folder (apps)
  • Mule Runtime's domains folder (apps)
  • Mule Runtime's conf folder (conf)
  • Mule Runtime's logs folder (logs)
  • Mule Runtime's plugins folder (plugins)
  • Mule Runtime's .mule folder (dotmule)
  • Mule Runtime's cluster configuration (cluster)
  • Mule Runtime's installation folder tree listing (diskusage)
  • Disk Usage of the current system (diskusage)
  • Network Interfaces of the current system (network)
  • Current network connections for the Mule Runtime process (network)
  • Current network connections for all the running processes (network)
  • Environment properties (sysprops)
  • License verification result (license)
  • OS lsof listing for the process [not in Windows] (fd)
  • OS lsof listing [not in Windows] (fd)
  • ULimit configuration [only Linux] (fd)
  • Anypoint monitoring installation folder (am)
  • Anypoint platform whitelisting check (platformconns). Test the connection to Anypoint platform required host and ports:
    • https://docs.mulesoft.com/api-manager/2.x/runtime-urls-whitelist
    • https://docs.mulesoft.com/runtime-manager/installing-and-configuring-runtime-manager-agent#ports-ips-and-hostnames-to-whitelist
    • https://docs.mulesoft.com/monitoring/am-installing#install_ap_monitoring_onprem
  • Mule Agent installation details. mule-agent.yml and expiration details (agent)
  • sar command extracts. options -B, -b, -d, -r ,-S  [only Linux] (os)
  • /proc/cpuinfo /proc/meminfo /proc/MULE_PID/limits /proc/MULE_PID/status [only Linux] (os)
  • vmstat command extracts [only Linux] (os)

All aforementioned information can be collected manually by following the guideline of the article https://help.mulesoft.com/s/article/MuleSoft-Recommended-Support-Process.
Regarding Runtime Fabric, the collectors depending on java to be collected will fail. The rest of the collectors works as expected.

Known issues detection

The collector "knownissues" run a set of tests over the collected data trying to find known issues and reporting back with a linked knowledge article with the symptoms and possible solutions.
We strongly recommend to include this collector with each execution.
User-added image

Commands

Inline help

You can get usage help on-screen with the command `help`
support-collector help.  (or ./support-collector help)
Interactive command
 

Get Mule Runtime process ids (PIDs)

You can get the id number of the java process running the Mule Runtime with the "pids" option. This command will list you all the running Mule Runtimes in the current machine. It shows the next information:
 <pid> <mule_version> <mule_home>
support-collector pids
Interactive command
 

Interactive collection of information

It's possible to select the information to collect and the runtime interactively through a CLI like screen. To start it just use the "interactive" command. It will ask you to select the running Mule Runtime you want to collect the information for, from the list of all running ones. You can choose the option "Mule Runtime is not running" and you'll be asked for the full path to the Mule Runtime folder (by default the value of environment variable MULE_HOME). Then you'll need to select what's the information to be collected
 
support-collector interactive
Interactive command

The result is a zip file with all the information collected.
 

IMPORTANT NOTE:
This command will access the java process directly. It required that the same user that is the owner of the process run this command.
- In Linux/Mac you can use sudo to run the command as another user. 
    i.e., 'sudo -u <user_owner> support-collector interactive'
- In Windows, you can use psexec tool provided by Microsoft. 
    i.e., psexec -s support-collector interactive

Also, the information is stored by default in the local folder. If you want to store it in a different folder use the flag --workdir=<YOUR_PATH> when running the command

Direct information download

If you require to directly, non-interactive collect the information from a Mule Runtime, you can do it with the "download" command.
For this command is mandatory to use one of the following option:
-p - indicates the running Mule Runtime process id, or
--mulehome - indicates the full path for the installed Mule Runtime

Also, you'll required to explicit the information to collect with the -options flag. If you don't explicit this option, all the information will be collected. The options are explained in the section "Information that can be collected" of this article.
 
support-collector download -p <pid> -o <options...>
Download command

The result is a zip file with all the information collected.
 

IMPORTANT NOTE:
This command will access the java process directly. It required that the same user that is the owner of the process run this command.
- In Linux/Mac you can use sudo to run the command as another user. 
    i.e., 'sudo -u <user_owner> support-collector download'
- In Windows, you can use psexec tool provided by Microsoft. 
    i.e., psexec -s support-collector download

Also, the information is stored by default in the local folder. If you want to store it in a different folder use the flag --workdir=<YOUR_PATH> when running the command
 

CPU/Threads profiling (profile command)

Please read the article CPU/Threads profiling with support-collector for more information on this option.

Patch conflicts (patchconflict command)

This command is based on the article https://help.mulesoft.com/s/article/How-to-detect-conflicting-patches and use the same tools to detect pacth conflicts.
To execute it run: support-collector patchconflict and select the target runtime
This is sample output with a conflict:
pacth conflict example

Additional flags

      --compress          If true, compress the information collected. (default true)
      --jdkhome string    Full path to the JDK home folder. Use this path instead of detecting it automatically.
      --mulehome string   Use this path to replace auto detected MULE_HOME folder or when trying to get the information of a stopped runtime. By default is detected automatically from the running runtime selected.
  -w, --workdir string    Working base directory. By default is the current folder.
  -d, --debug             Run the command in debug mode.

Self upgrade process

This tool contains a feature to ease the upgrade to the latest versions. This feature use a HTTPS Rest API request to check for new versions so it requires an internet connection.
If your system doesn't have internet access, the tool will work as usual, but you'll need to check for new versions in this article and upgrade it manually if required. The manual upgrade process is very simple, just replace the previous binary with the new one. 

 

The command `update` will check for new version and upgrade when possible. If it's not possible to perform the automatic upgrade you'll be notified.
Also, each command check for new version at execution time letting you choose to upgrade or not.

Here you can see the update process execution:
update command
 
 

How to gather this information manually

The next information can be gathered following this guideline or this for ULimit.

  • Thread Dump of the JVM
  • Heap Dump of the JVM
  • OS lsof listing for the process [only Linux]
  • OS lsof listing [only Linux]
  • ULimit configuration [only Linux]

For network connections the tool used is lsof (Linux/Mac) and the GetExtendedTcpTable function of iphlpapi.dll (Windows) (https://www.techrepublic.com/article/track-network-connections-with-lsof-on-linux)

  • Current network connections for the Mule Runtime process
  • Current network connections for all the running processes
To verify the license follow the guideline in the documentation page https://docs.mulesoft.com/mule-runtime/4.2/installing-an-enterprise-license#verify-or-remove-enterprise-edition-license

For the MULE_HOME information, just zip the corresponding folder or file:

  • Mule Runtime's apps folder (folder MULE_HOME/apps)
  • Mule Runtime's domains folder (folder MULE_HOME/domains)
  • Mule Runtime's conf folder (folder MULE_HOME/conf)
  • Mule Runtime's logs folder (folder MULE_HOME/logs)
  • Mule Runtime's .mule folder (folder MULE_HOME/.mule)
  • Mule Runtime's cluster configuration (file MULE_HOME/.mule/mule-cluster.properties)
  • Mule Runtime's installation folder tree listing (tree listing of folder MULE_HOME)

Finally, use the jcmd Utility with the referred option to gather the information

  • Memory Usage of the JVM (option GC.heap_info)
  • JVM PerfCounter Properties (option PerfCounter.print)
  • JVM system properties (option VM.system_properties)

Reporting an issue/enhancement

Please use the Mulesoft Support Tools group to report any issues/enhancement you have. Also, you can subscribe to receive new updates by email about Mulesoft Support tools.
 
Attachments

Powered by