Visit Azul.com Support

Diagnostic Configuration Options

Table of Contents
Need help?
Schedule a consultation with an Azul performance expert.
Contact Us

As described on CRS Configuration Options, the Connected Runtime Service (CRS) inside the Azul JVM and Azul Intelligence Cloud Agent can be configured according to your use-case. While setting up Intelligence Cloud in your environment, or troubleshooting a problem, you can use additional JVM properties or CRS arguments.

Diagnostic JVM Properties

The following JVM properties are provided by CRS for troubleshooting.

Property Default Description

com.azul.crs.jarload.debug

false

Used to print some debug info about JarLoadMonitor and methods parsing jar’s central directory

com.azul.crs.jarload.dedupSize

500

The size of known jar hashes. (after reporting 501 uniq jars, loading jar that is the same as first one will cause new jar loaded event)

com.azul.crs.jarload.forceFullJarLoadedEvents

false

Always send full jar loaded event (including shaded hashes, entries crs, and nested jar entries central directories hashes)

com.azul.crs.jarload.genericCentralDirectoryProvider

generic

Able to change fallback algorithm of getting central directory from default stream-based to one of existing (generic, jdk, spring.1.x, spring.2.x)

com.azul.crs.jarload.genericProvider.bufferSize

8 * 1024

Buffer size used in stream-based algorithm of getting jar’s central directory hash

com.azul.crs.jarload.genericProvider.maxBuffers

128

Number of buffers used in stream-based algorithm (algorithm reads jar suffix into that buffer list, all buffers content are aligned to bufferSize, that means in worst case expecting central directory length should be less than bufferSize * (maxBuffers - 1)

com.azul.crs.jarload.jarLoadByClassLoad

true

Whether class load event should trigger jar loaded event? jar loaded event will be triggered only if prefix of class source (effectively equals to jar url) does not equal already reported jar (the list of known jars restricted by dedupSize above)

com.azul.crs.jarload.jarLoadMonitorTaskQueueSize

1000

Maximum number of tasks allowed to have in the queue

com.azul.crs.jarload.tempfilesTimeToLive

30min

Maximum time allowed to live for temp files (in case if it was not deleted earlier by backend confirmation that related jar file is already known)

com.azul.crs.jarload.enableFromClassLoaders

false

Enable to use ClassLoader.urls to look for loaded jars

Example Use Case

This is an example to change a few of the default properties:

 
java -Dcom.azul.crs.jarload.jarLoadMonitorTaskQueueSize=1500 \ -Dcom.azul.crs.jarload.dedupSize=1000

Diagnostics CRS Arguments

The following CRS arguments are provided by CRS for troubleshooting.

Argument Default Description

forceSyncTimeout

Number of milliseconds for the synchronization timeout of cached data

notifyJarLoad

true

Send JAR and component information.

notifyClassLoad

true

Send class level information.

notifyFirstCall [1]This option is not available in the Azul Intelligence Cloud Agent

false

Enables the Code Inventory functionality at the method level. When set to true, it will send events of the first method execution to the Forwarder.

maxJarFileCacheSize

2048

Number of Kb to define the limit of the temporary file system usage to cache jar files.

sendJVMLogs [1]This option is not available in the Azul Intelligence Cloud Agent

false

Flag to define if (GC/JFR/JVM) logs should be send to Intelligence Cloudto the cloud.

heartbeat

4

Number of seconds for your JVM to keep its long-lasting connection to the Forwarder open. Raising this may improve Java 11+ through its HTTP2 connections but may cause timeout/new connections with Java 8 HTTP 1.1.

printParameters

false

Print the value of all CRS arguments.

log

error

Logging as described in CRS Configuration Options can be extended with channel information:

  • service.jfr (JFRMonitor.java)

  • service.vmlog (VMLogMonitor.java)

  • service.gclog (GCRotatingLogTailer.java)

  • service.jarload (JarLoadMonitor.java)

  • service.gclog (GCLogMonitor.java)

  • service.vmtooling (VMToolingClient.java)

  • service.classload (ClassLoadMonitor.java)

  • service.firstcall (FirstCallMonitor.java)

  • service.systeminfo (SystemInfoProvider.java)

  • args (Options.java)

  • inventory (Inventory.java)

  • vmsupport (VMSupport.java)

Example Use Cases

  • To get all debug info related to a specific part of CRS, for example, how first calls are monitored, add the following to your CRS arguments:

     
    -XX:AzCRSArguments=...,log+service.firstcall=debug
  • If you want to use Azul Intelligence Cloud to help in a migration process, and want as little overhead as possible, then you only need the JVM information. This info is collected as one of the first events when your application starts. Once that event is sent, there are no more messages to be handled. In that case, when you use the Azul Intelligence Cloud Agent, it disconnects from the Forwarder for the rest of the JVM life. To achieve this, add the following options to your CRS arguments:

     
    -XX:AzCRSArguments=...,notifyClassLoad=false,notifyJarLoad=false