Application Properties File

The application.properties file is the main configuration for Analytics Backend. It is located in the following directory: <Automic>/Automation.Platform/Analytics/backend.

You can secure the cleartext passwords in your application.properties file by utilizing the opt-in automatic password encryption. When explicitly enabled (by setting encryption.enabled= to true), any cleartext passwords are automatically encrypted when the Analytics backend starts. These encrypted passwords are saved back to the file with a --20 prefix, and the generated 32-byte encryption key is stored in the directory specified by the security.folder parameter. For more information, see Obfuscating and Encrypting Passwords.

The following file provides some example parameter usages, descriptions and standard default settings.

########################
## Security           ##
########################

# Enable password obfuscation in application.properties. If false, passwords are left as plain text. Default: false
encryption.enabled=true

# Folder where the analytics.key file is stored (used for password obfuscation). Default: security
security.folder=security

####################################
## Analytics datastore connection ##
####################################

# JDBC connection string pointing at the Analytics datastore
datasource.analytics.url=jdbc:postgresql://[DB_HOST]:[PORT]/[ANALYTICS_DB]

# Username used to connect to the Analytics datastore
datasource.analytics.username=[ANALYTICS_USER]

# Password for the Analytics datastore user
datasource.analytics.password=[ENCRYPTED_PASSWORD]

###########################
## External data sources ##
###########################

# Please make sure that the users provided for the JDBC connections have minimum rights in the
# target DB (ideally read-only).

# You can specify additional datasource properties like this
# <datasource>.additional_properties[<property>]=<value>

# The following lines are example JDBC strings for different types of databases. Replace <datasource> with the datasource that is being
# configured.
#
# PostgreSQL:
# <datasource>.url=jdbc:postgresql://[IP_ADDRESS]:5432/[DB_NAME]
#
# MSSQL:
# <datasource>.url=jdbc:sqlserver://[IP_ADDRESS]:1433;databaseName=[DB_NAME]
#
# MSSQL2012 with named instance:
# <datasource>.url=jdbc:sqlserver://[IP_ADDRESS];instanceName=[INSTANCE];databaseName=[DB_NAME]
#
# MSSQL2014 with named instance:
# <datasource>.url=jdbc:sqlserver://[IP_ADDRESS]:1433;instanceName=[INSTANCE];databaseName=[DB_NAME]
# Make sure you enabled TCP/IP for the named instance in the MSSQL server configuration
# See https://msdn.microsoft.com/en-us/ms177440.aspx for details
#
# Oracle:
# <datasource>.url=jdbc:oracle:thin:@[DB_CLUSTER]:1521/[SERVICE_NAME]
#
# DB2:
# <datasource>.url=jdbc:db2://[HOST]:50000/[DB_NAME]

## Automation Engine
####################

# JDBC connection string pointing at the Automation Engine database
datasource.ae.url=jdbc:postgresql://[AE_DB_HOST]:[PORT]/[AE_DB_NAME]

# Username used to connect to the Automation Engine database
datasource.ae.username=[AE_USER]

# Password corresponding the Automation Engine database user
datasource.ae.password=[ENCRYPTED_PASSWORD]

# Specify an initial SQL file that will be executed before querying data
# datasource.ae.schema=file:ae_schema.sql

## Application Release Automation
#################################
# Make sure to uncomment and set these settings when collecting data from an ARA instance.

# JDBC connection string pointing at the ARA database for a given client
#datasource.ara.url=

# Username used to connect to the ARA database
#datasource.ara.username=

# Password for the ARA database user
#datasource.ara.password=

# Specify an initial SQL file that will be executed before querying data
# datasource.ara.schema=file:ara_schema.sql

################
## Collectors ##
################

# Enable/disable all data collectors globally, precedes collector specific switches
collectors.enabled=true

# The following settings can be configured for collectors. Replace <collector> with the collector that is being configured. The values shown
# are the default values for those settings.
#
# Enable/disable the collection of source data
#<collector>.enabled=true
#
# Safety margin for interval calculation
#<collector>.safety_margin_seconds=60

# Normal sampling period for data collection interval
#<collector>.normal_sampling_period_minutes=5
#
# Large sampling period used when last interval is longer ago than normal sampling period
#<collector>.large_sampling_period_days=1
#
# Initial start for data collection in days before now
#<collector>.initial_collect_before_now_days=32
#
# Maximum number of rows to be inserted at once within data collection
#<collector>.chunk_size_rows=10000
#
# Maximum number of rows to be enriched at once
#<collector>.enricher_chunk_size_rows=1000

## Automation Engine
####################

# Enable/disable the collection of source data
#collector.ae.enabled=true

## Application Release Automation
#################################

# Enable/disable the collection of source data
collector.ara.enabled=false


#########################
## Collector scheduling #
#########################

# How many threads to use for the scheduler
#scheduler.pool_size=30

# Specify the timeout in seconds to wait for the collector thread pool task scheduler to shutdown
#scheduler.await_termination_seconds=10

#########################
## Cache configuration ##
#########################

# Enable caching of charts
service-cache.enabled=true

# Request cache expiration
service-cache.expiration_minutes=120

# Request cache refresh
service-cache.refresh_minutes=15

# Specify how many requests should stay cached at maximum
service-cache.size=10000

# Specify the mode of the expiration process
# Possible values: after_access, after_write
service-cache.expiration_mode=after_access

# Enable the continuous refresh of the cache
service-cache.continuous-refresh.enabled=true

# The strategy for the continuous refresh. 
# At the moment the only possible value is: hottest
service-cache.continuous-refresh.strategy=hottest

# The maximum number of entries to be refreshed. If empty, all of the entries will be refreshed.
service-cache.continuous-refresh.max_entries=10

# The maximum number of threads to be used for refreshing the entries.
# Set the value to 'auto' if you want to base the number of threads on the number of available cores.
service-cache.continuous-refresh.max_threads=auto

# The interval for the continuous refresh (if it is enabled)
service-cache.continuous-refresh.interval_minutes=10

# Enable logging of cache statistics
service-cache.logging.stats_enabled=true

# The interval at which cache statistics will be logged
service-cache.logging.stats_interval_minutes=5

# Enable logging of requests made in order to load an entry in the cache.
service-cache.logging.requests_enabled=true

# The number of milliseconds of the request duration, under which no logging will occur.
# To log all requests, set it to 0
service-cache.logging.request_duration_threshold_ms=10000


#######################
## Log configuration ##
#######################

# Base directory where all backend logs will be stored
logging.basedir=logs

# Application logging level
# Possible values: TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF
logging.level.root=INFO

# Log output file
# Writes to the specified log file. Names can be an exact location or relative to the current directory.
logging.file.name=${logging.basedir}/analytics_backend.log
logging.config=logging.xml

logging.group.cache.stats=com.automic.analytics.backend.cache.StatsLogger
logging.file.group.cache.stats=${logging.basedir}/cache-stats.log

# Log configuration for embedded Tomcat
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%a %h %l %u %t "%r" %s %b %D %{X-Forwarded-Port}i %{X-Forwarded-Host}i %{X-Forwarded-Ssl}i %{X-Forwarded-For}i %{X-Forwarded-Proto}i %{X-Forwarded-Server}i
server.tomcat.basedir=${logging.basedir}/tomcat-logs

##########################
## HTTP server settings ##
##########################

# Backend port
server.port=8090

########################
## SSL Configuration  ##
########################

# By enabling the server.ssl.* settings the backend will only accept HTTPS connections. An unsecure
# HTTP connection will be automatically disabled. Change the port to 8443 if required by setting
# server.port=8443.

# Path to the key store that holds the SSL certificate (typically a .jks file).
#server.ssl.key-store=/path/to/keystore.jks

# Password used to access the key store.
#server.ssl.key-store-password=

# Password used to access the key in the key store.
#server.ssl.key-password=

##############################
## Internal Spring settings ##
##############################
spring.main.banner-mode=off
spring.main.allow-circular-references=true
spring.jmx.enabled=false
spring.flyway.baseline-on-migrate=true
spring.flyway.baseline-version=0
spring.flyway.table=schema_version
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
collector.ae.enabled=true

See also:

Configuring Analytics