Discovery server configuration

application.properties

Discovery-versionconfig application.properties

The application.properties configuration file includes configuration options for Discovery’s web management UI and database connection.

By default, Discovery is configured to use a bundled HyperSQL database (HSQLDB). Example configuration, commented out, is included for MySQL and PostgreSQL.

logging.level.namespace

The logging level for a logging namespace.

For more information on logging.level, see Logging in the Spring Boot 2.1.6 documentation.

Syntax
logging.level.namespace={TRACE|DEBUG|INFO|WARN|ERROR}
Example: set the logging level for the root namespace to INFO
logging.level.root=INFO
Example: set the logging level for the com.caplin namespace to DEBUG
logging.level.com.caplin=DEBUG

logging.file

Specifies the path to Discovery’s log file. If this option is not specified, Discovery write logs to the console only, which the example start script, start.sh, redirects to discovery.log.

Log files rotate when they reach logging.file.max-size, which defaults to 10MB.

For more information on logging.file, see Logging in the Spring Boot 2.1.6 documentation.

Syntax
logging.file={full_path}
Example
logging.file=logs/discovery.log

logging.file.max-history

The maximum number of rolled log files to retain. Defaults to 7.

For more information on logging.file.max-history, see Logging in the Spring Boot documentation.

Syntax
logging.file.max-history={integer}
Example
logging.file.max-size=7

logging.file.max-size

The maximum size a log file can reach before it is rotated. Defaults to 10MB.

Rotated log files use the file name format {logging.file}.YYYY-MM-DD.n.gz, where n is a zero-based sequential integer (0 oldest). Example: discovery.log.2021-11-02.0.gz.

For more information on logging.file.max-size, see Logging in the Spring Boot documentation.

Syntax
logging.file.max-size={integer}{KB|MB|GB}
Example
logging.file.max-size=10MB

management.endpoints.web.exposure.include

Lists the IDs of actuator endpoints that are exposed over HTTP at URI /actuator/ID.

For more information about available end points, see Endpoints in the Spring Boot 2.1.6 documentation.

Syntax
management.endpoints.web.exposure.include={id}[,…]
Example
management.endpoints.web.exposure.include=metrics,prometheus

license.file.path

The path to the Discovery licence. The path can be absolute or relative. Relative paths are resolved in relation to the Discovery installation root.

Syntax
license.file.path={path}
Example
license.file.path=discovery.lic

server.port

The HTTP port of Discovery’s web management UI.

Syntax
server.port={integer}
Example
server.port=4567

spring.datasource.driverClassName

The class name of the JDBC driver for Discovery’s database.

For more information on configuring database connections in Spring Boot, see Working with SQL Databases in the Spring Boot 2.1.6 documentation.

Syntax
spring.datasource.driverClassName={fully_qualified_class_name}
Example
spring.datasource.driverClassName=org.hsqldb.jdbc.JDBCDriver

spring.datasource.url

The JDBC URL to Discovery’s database.

If the database does not exist, Discovery throws an error.

For more information on configuring database connections in Spring Boot, see Working with SQL Databases in the Spring Boot 2.1.6 documentation.

Syntax
spring.datasource.url={jdbc_url}
Example
spring.datasource.url=jdbc:hsqldb:hsql://localhost/clouddb

spring.datasource.username

The username for Discovery’s database connection.

The database user account must have permission to run DDL statements CREATE TABLE, ALTER TABLE, and DROP TABLE on Discovery’s database schema.

For more information on configuring database connections in Spring Boot, see Working with SQL Databases in the Spring Boot 2.1.6 documentation.

Syntax
spring.datasource.username={username}
Example
spring.datasource.username=SA

spring.datasource.password

The password to Discovery’s database connection.

For more information on configuring database connections in Spring Boot, see Working with SQL Databases in the Spring Boot 2.1.6 documentation.

Syntax
spring.datasource.password={password}
Example
spring.datasource.password=qWvw4QUDbnTBxmf2

hazelcast.yaml

Discovery-versionconfig hazelcast.yaml

The hazelcast.yaml configuration file contains options for the Hazelcast IMDG library, which provides distributed data-structures to Discovery and connected DataSource applications.

hazelcast/cluster-name

hazelcast:
  cluster-name: caplin-platform

The name of this Discovery server’s Hazelcast cluster. Choose a unique name for each of your Caplin Platform deployments.

If no cluster name is specified in hazelcast.yaml, it defaults to caplin-platform.

All Discovery servers in a cluster must be configured with the same cluster name. All DataSource applications that connect to the cluster must be configured with the same cluster name (see discovery-cluster-name in the DataSource documentation).

hazelcast/network/join

hazelcast:
  network:
    join:
      ...

Configures how Discovery cluster members discover each other. For detailed information on this configuration option, see Discovery mechanisms and the Join element in the Hazelcast documentation.

We recommend a maximum of two Discovery servers in a cluster, with cluster member locations listed as hostnames or IP addresses. For more information, see TCP/IP discovery in the Hazelcast documentation.

Configuring TCP/IP cluster member discovery
hazelcast:
  network:
    join:
      tcp-ip:
        enabled: true
        member-list:
          - <hostname or IP>
          - <hostname or IP>

See also: