How do I see what properties are set in a Deephaven process?

Deephaven uses property files to control system operation and behavior. This guide shows how to use the Property Inspector to search for properties within these files and provide visibility into what properties are being included, where properties are set, and where properties are duplicated or overridden.

This utility is executed using iris_exec as follows:

/usr/illumon/latest/bin/iris_exec property_inspector -- -pf <propertyFile> [options]

Note that the "--" is required. It separates arguments to iris_exec from arguments to property_inspector. For example:

sudo -u irisadmin /usr/illumon/latest/bin/iris_exec property_inspector -j -Dservice.name=authentication_server -- -pf iris-environment.prop -pn authentication.server.acceptplaintext

In this example:

  • -j -Dservice.name=authentication_server passes the JVM argument service.name=authentication_server to the iris_exec command, limiting the scope of the Property Inspector's search to the authentication_server service.
  • -pf iris-environment.prop tells the Property Inspector to search in the iris-environment.prop file.
  • -pn authentication.server.acceptplaintext tells the Property Inspector to search for the property authentication.server.acceptplaintext.

Property Inspector Options

Parameter ValueDescription
-pf, --propertyFile <value>(required) The starting properties file to read.
-pn, --propertyName <value>(optional) A specific property to search for. Asterisks can be used as wildcard characters here.
-cs, --csv(optional) Format output as CSV (for easy import into a spreadsheet).
-fm,--mode <value in {ALL (default), ALL_DUPLICATES, NON_DUPLICATES, FILE_DUPLICATES, COMPARE}>(optional) Search mode. ALL_DUPLICATES will show properties whose value is set more than once anywhere in the chain of properties files, while FILE_DUPLICATES will only show properties whose values are set more than once in the same file. NON_DUPLICATES will show properties whose value is not set more than once anywhere in the chain of properties files. COMPARE, when used with the -in or -ex options (or both), checks whether specific properties are included in the chain of properties files. When using COMPARE, at least one of -in or -ex must be specified.
-out <value>(optional) If specified, the output from the Property Inspector is printed to the specified file. Otherwise, the output is displayed in the console.
-in <value>(optional) A file containing a list of property names that must be included at least once in the chain of properties files when using the COMPARE mode.
-ex <value>(optional) A file containing a list of property names that must not be included in the chain of properties files when using the COMPARE mode.
-all,--allStanzas(Optional) Ignore context indicators within the property file.

If no options are provided, or if the Property Inspector does not recognize the values entered, the Help option will be invoked.

Examples

Find a property's value and where it is set

sudo -u irisadmin /usr/illumon/latest/bin/iris_exec property_inspector -- -pf iris-environment.prop -pn Calendar.default

In this environment, Calendar.default was set in the iris-defaults.prop file:

Searching for: Calendar.default, starting with file: "iris-environment.prop"

Name: Calendar.default Value: USNYSE --- Line: 47 --- File: iris-defaults.prop --- Scope: []

The Property Inspector also searched the iris-defaults.prop file as it is included in the iris-environment.prop file.

Use wildcards to find multiple properties

sudo -u irisadmin /usr/illumon/latest/bin/iris_exec property_inspector -- -pf iris-environment.prop -pn UpdatePerformanceTracker.*

Example output:

Searching for: UpdatePerformanceTracker.*, starting with file: "iris-environment.prop"

Name: UpdatePerformanceTracker.reportingMode Value: DB_ONLY --- Line: 30 --- File: iris-environment.prop --- Scope: []
Name: UpdatePerformanceTracker.reportingMode Value: NONE --- Line: 520 --- File: iris-defaults.prop --- Scope: []
Name: UpdatePerformanceTracker.reportingMode Value: NONE --- Line: 345 --- File: iris-defaults.prop --- Scope: []
Name: UpdatePerformanceTracker.reportIntervalMillis Value: 60000 --- Line: 346 --- File: iris-defaults.prop --- Scope: []
Name: UpdatePerformanceTracker.useLogAggregatorService Value: true --- Line: 699 --- File: iris-defaults.prop --- Scope: []
Name: UpdatePerformanceTracker.useDynamicPartitions Value: true --- Line: 700 --- File: iris-defaults.prop --- Scope: []

Use system properties to find a property's value for a specific service

Deephaven's property files use stanzas to assign properties by service. Pass the service.name JVM argument to the iris_exec command to search for properties specific to a service. You must prefix any arguments set this way with -D, and the -j option must be used before the --:

sudo -u irisadmin /usr/illumon/latest/bin/iris_exec property_inspector -j -Dservice.name=authentication_server -- -pf iris-environment.prop -pn authentication.server.acceptplaintext

Example output:

Searching for: authentication.server.acceptplaintext, starting with file: "iris-environment.prop"

Name: authentication.server.acceptplaintext Value: false --- Line: 51 --- File: iris-environment.prop --- Scope: [service.name=authentication_server]

The service.name value must match the service name in the property file. For example, the service.name for the authentication server is authentication_server:

[service.name=authentication_server] {
    authentication.server.acceptplaintext=false
    authentication.server.customauth.enabled=true
    authentication.server.customauth.class=com.illumon.iris.db.v2.permissions.MysqlDbAclProvider
}

The service.name may not match the process names shown by monit. For example, the service.name for the db_merge_server monit process is dbmerge.

sudo -u irisadmin /usr/illumon/latest/bin/iris_exec property_inspector -j -Dservice.name=dbmerge -- -pf iris-environment.prop -pn authentication.server.acceptplaintext

authentication.server.acceptplaintext is not set for the dbmerge service, so the output will be empty:

Searching for: authentication.server.acceptplaintext, starting with file: "iris-environment.prop"

Find all properties that are set more than once

sudo -u irisadmin /usr/illumon/latest/bin/iris_exec property_inspector -- -pf iris-environment.prop -fm ALL_DUPLICATES

Sample output:

Searching for duplicate property value declarations, starting with file: "iris-environment.prop"

Name: UpdatePerformanceTracker.reportingMode Value: DB_ONLY --- Line: 30 --- File: iris-environment.prop --- Scope: []
Name: UpdatePerformanceTracker.reportingMode Value: NONE --- Line: 520 --- File: iris-defaults.prop --- Scope: []
Name: UpdatePerformanceTracker.reportingMode Value: NONE --- Line: 345 --- File: iris-defaults.prop --- Scope: []
Name: critEmail Value:  --- Line: 19 --- File: iris-environment.prop --- Scope: []
Name: critEmail Value:  --- Line: 18 --- File: iris-defaults.prop --- Scope: []

Write all properties to a CSV file

The -all flag includes all properties set in specific contexts:

sudo -u irisadmin /usr/illumon/latest/bin/iris_exec property_inspector -- -pf iris-environment.prop -all -cs -out iris_env_props.csv

For example, iris_env_props.csv will contain properties set in the stanza:

[service.name=authentication_server] {
    authentication.server.acceptplaintext=false
    authentication.server.customauth.enabled=true
    authentication.server.customauth.class=com.illumon.iris.db.v2.permissions.MysqlDbAclProvider
}

List the properties of a Deephaven worker

To better understand the configuration of a Deephaven worker (e.g., a Code Studio console or a Persistent Query), you can list all properties and their corresponding values using the following command:

import io.deephaven.configuration.Configuration
println Configuration.getInstance().getProperties()