Discovery server configuration
This page lists describes configuration items for the Discovery server.
Changes to Discovery’s configuration while Discovery is running does not take effect until Discovery is restarted.
- application.properties
- hazelcast.cluster-name
- hazelcast.tcp-ip.member-list
- hazelcast.multicast.enabled
- logging.level.namespace
- logging.file
- logging.file.max-history
- logging.file.max-size
- management.endpoints.web.exposure.include
- monitoring.graphql.max-query-length
- monitoring.graphql.max-query-depth
- monitoring.graphql.max-query-complexity
- license.file.path
- server.port
- spring.datasource.driverClassName
- spring.datasource.url
- spring.datasource.username
- spring.datasource.password
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.
hazelcast.cluster-name
Since: 7.1.5
The name of the Hazelcast cluster of which this Discovery server is a member.
hazelcast.tcp-ip.member-list
Since: 7.1.5
A comma-separated list of the network addresses of all Discovery servers in this deployment. If your deployment has only one Discovery server, then you do not need to set this option.
If you set this option, then set hazelcast.multicast.enabled to false
.
hazelcast.multicast.enabled
Since: 7.1.5
A boolean configuration option that enables or disables Hazelcast’s automatic discovery of cluster nodes. If you specify a list of Discovery server network addresses in hazelcast.tcp-ip.member-list, then set hazelcast.multicast.enabled
to false
.
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.
logging.level.namespace={TRACE|DEBUG|INFO|WARN|ERROR}
logging.level.root=INFO
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.
logging.file={full_path}
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.
logging.file.max-history={integer}
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.
logging.file.max-size={integer}{KB|MB|GB}
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.
management.endpoints.web.exposure.include={id}[,…]
management.endpoints.web.exposure.include=metrics,prometheus
monitoring.graphql.max-query-length
Since: 8.0.1
The maximum length (in characters) for queries made to the Discovery GraphQL server. Defining the maximum query length can help to prevent against resource exhaustion attacks by the client.
Validation of the GraphQL query length is only performed if this property is defined.
The recommended setting for this property is 3000.
monitoring.graphql.max-query-length={integer}
monitoring.graphql.max-query-length=3000
monitoring.graphql.max-query-depth
Since: 8.0.1
The maximum depth for queries made to the Discovery GraphQL server. Defining the maximum query depth can help to prevent against resource exhaustion attacks by the client.
Validation of the GraphQL query depth is only performed if this property is defined.
The recommended setting for this property is 5.
monitoring.graphql.max-query-depth={integer}
monitoring.graphql.max-query-depth=5
monitoring.graphql.max-query-complexity
Since: 8.0.1
The maximum number of data fields that can be used in queries made to the Discovery GraphQL server. Defining the maximum query complexity can help to prevent against resource exhaustion attacks by the client.
Validation of the GraphQL query complexity is only performed if this property is defined.
The recommended setting for this property is 60.
monitoring.graphql.max-query-complexity={integer}
monitoring.graphql.max-query-complexity=60
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.
license.file.path={path}
license.file.path=discovery.lic
server.port
The HTTP port of Discovery’s web management UI.
server.port={integer}
server.port=4567
spring.datasource.driverClassName
The fully-qualified 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.
spring.datasource.driverClassName={fully_qualified_class_name}
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.
spring.datasource.url={jdbc_url}
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.
spring.datasource.username={username}
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.
spring.datasource.password={password}
spring.datasource.password=qWvw4QUDbnTBxmf2
See also: