props=<path> |
Location of a properties file to configure CRS. |
~/.az_crs/config.properties |
api.url=<url> |
This is the base URL of your Forwarder instance and must be specified. If no Forwarder is specified, CRS is effectively disabled.
The Forwarder endpoint must be in URL format https://<FORWARDER_IP:PORT>. https is required, unless you set noSsl=true. The port is optional and must be specified if different then 443. |
null |
noSsl=<true/false> |
Allows an http:// address in api.url, so the Agent connects to the Forwarder over plain HTTP. Without this option, the Agent refuses an http:// address and reports why. This option is available in the Azul Intelligence Cloud Agent since version 1.3.0.
This is intended mainly for Azul Intelligence On-Premises installations, where no Azul-issued certificate is available, and for environments where TLS is terminated by another layer, such as a proxy or load balancer in front of the Forwarder. With Azul Intelligence Cloud, Azul manages the certificates, and you don’t need this option. The Forwarder must allow plain HTTP too, see Forwarder setup for Azul Intelligence On-Premises.
|
Warning
|
With plain HTTP, the authentication token of the Agent and all observations travel unencrypted. Use it only on networks you trust. For production, use HTTPS with a certificate from your own certificate authority.
|
|
false |
enable=<true/false> |
Use this argument when you can’t adjust the command line, to enable or disable the CRS agent. Enabling the CRS agent with enable=true has the same effect as -XX:AzCRSMode=auto.
|
Note
|
When you specify the -XX:AzCRSMode runtime flag, this enable environment variable flag, gets ignored.
|
|
true |
delayTermination=<value> |
Number of milliseconds to hold a JVM alive at its end, providing time to send the collected data to the Forwarder. Raise the value to provide time to short-lived microservices. The provided value is used as a maximum, if CRS takes less time (down to 0), the delay doesn’t use the fully defined duration. |
0 |
delayInitiation=<value> |
Number of milliseconds to delay the CRS start. The default enables integration with major Java frameworks. Lower to 0 for short-lived microservices. |
2000 |
stackRecordId=<value> |
Suffix of the DNS record to query for an endpoint. |
null |
sendPOMData=<true/false> |
Flag to define if the content of pom.properties files must be sent to Intelligence Cloud. |
true |
keystore=<value> |
If set, this keystore is used to authenticate the JVM with the Forwarder. Set this to a Java keystore file when using self-signed certificates.
If not specified, CRS will use the certificates from the JVM. |
null |
keystorepassword=<value> |
The password for the custom keystore. If it is not provided, the default password is used. |
crscrs |
notifyJarLoad=<true/false> |
Send JAR and component information. |
true |
notifyClassLoad=<true/false> |
Send class level information. |
true |
notifyFirstCall=<true/false> [1]This option is available in the Azul Intelligence Cloud Agent since version 1.1.22 of January 2025 |
Enables the Code Inventory functionality at the method level. When set to true, it sends events of the first method execution to your Intelligence Cloud instance through the Forwarder connection. |
false |
sendClassMethods=<true/false> |
Enables the Code Inventory functionality for the "Unused Methods" report. This also requires notifyFirstCall=true. |
false |
sendCRSLogs=<true/false> |
Flag to define if the logs, generated by the agent, must be forwarded to Azul Intelligence Cloud. |
true |
compressArtifacts=<true/false> |
Compresses large reports before they are uploaded. When the Agent reports a JAR with full details (all entries and methods), the report can get large, and reports over 512 KB are uploaded as separate artifacts. With true, the Agent compresses these reports with gzip before the upload, which reduced the upload size by about two thirds in tests (for example, 660 KB to 220 KB). The compression runs in the background upload thread of the Agent, not in the threads of your application. With false, the reports are uploaded uncompressed. This option is available in the Azul Intelligence Cloud Agent since version 1.3.0.
Like the other on/off arguments, this option accepts true/false, yes/no, and on/off. |
true |
protectAppResources=<true/false> |
Flag to define if edge cases of running agents in highly constrained memory environments should be detected, as this may lead to OOM errors. When the agent recognizes that it competes for memory with the application, it will proactively free the memory used by it and terminate itself.
In Azul Intelligence Cloud Agent 2.0.0 and later, use protectAppResources. The legacy memorySafeguards option is deprecated.
Some applications, for example, caches, use the same approach. In such cases, the JVM will also clear its data and the agent can continue without problems. You should not use the protection for this kind of applications.
Side effects to take into account:
-
In some cases, this protection may trigger the termination of the agent when it is not really necessary or too early.
-
The termination triggered by the protection is immediate, meaning the value specified for delayTermination isn’t handled and no finishing tasks are executed.
|
false |
disableDeepIdentification=<true/false> |
Turns off Deep Identification. By default, the Agent recognizes how an application was launched (Spring Boot, Apache Tomcat, a plain Java application, or the Java Service Wrapper) and sends a small set of identifying values, so that Azul Intelligence On-Premises can show a meaningful application name instead of the main class of a launcher. With true, the Agent reports the main class only. This option is available in the Azul Intelligence Cloud Agent since version 1.3.0.
Azul Intelligence Cloud doesn’t use this data. If you don’t want the Agent to send it, set this option to true. See What Info is Transmitted for the values that are sent. |
false |
log=<level> |
The level of logging for CRS. Options are (case insensitive): trace, debug, info, warning, error, off. The use of the trace level is discouraged, since this leads to enormous sized output.
If you want to see all messages logged by all services and monitors, you need to use, for instance, log=info to get all info messages. You can further extend the logged messages, by specifying the service or monitor. These are the available options:
You can combine several configurations, for instance, log=info,log+connection=trace to get all info messages plus the trace messages related to the connection. |
error |