Configuration Options
This part of the documentation is only intended in the context of a supported PoC (Proof of Concept) together with the Steadybit team. Please, book an appointment to scope your PoC before continuing to evaluate the on-prem solution.
If you just want to try out Steadybit, we recommend you sign up for our SaaS platform.
Machine Requirements
The machine you are installing Steadybit onto, must have at least 4 CPUs and 8 GB available memory.
JVM_MAX_RAM_PERCENTAGE
Define the MaxRAMPercentage
of the platform JVM
Default: 75.0
Debug Docker Images
The platform docker image doesn't contain any shell by default. In case you need to exec into the container using a shell for debugging purposes, we provide an additional debug variant whith the platform-debug
tag.
Database Configuration
Steadybit requires a PostgresSQL 15 database.
SPRING_DATASOURCE_URL
yes
JDBC Url for the database connection
Example: jdbc:postgresql://postgres:5432/steadybitdb
SPRING_DATASOURCE_USERNAME
yes
Database Username
Example: postgres
SPRING_DATASOURCE_PASSWORD
yes
Database Password
Example: postgres
STEADYBIT_DB_WEB_ENABLED
Enable Http Endpoint for Database export
Default: true
RDS Machine Requirements
The workload is bound by the database CPU on peaks.
If you have ~100k targets simultaneously in the platform, we recommend a burstable instance with four vCPU (e.g., db.t4g.xlarge). Regarding disk size, 20 GB should be enough capacity for the start (as extending on AWS should not be a problem).
If you choose a smaller instance for cost savings, the target ingestion will be slower, so it will take a bit longer until the target data in the platform is consistent.
Message Broker Configuration
For running the platform with multiple instances, a Redis message broker is required.
SPRING_REDIS_HOST
yes
Redis server host
Example: redis
SPRING_REDIS_PORT
Redis server port
Default: 6379
SPRING_REDIS_USERNAME
Redis Username
SPRING_REDIS_PASSWORD
Redis Password
platform <= 1.0.96 SPRING_REDIS_SSL
, platform > 1.0.96 SPRING_REDIS_SSL_ENABLED
Wether to enable ssl support.
Default: false
SPRING_REDIS_CLIENT_NAME
Client name to be set on connections with CLIENT SETNAME.
Tenant Configuration
STEADYBIT_TENANT_AGENTKEY
yes
Agent key for the tenant assigned to you. Treat it as sensitive information.
Example: foobar
Web Configuration
STEADYBIT_WEB_PUBLIC_URL
URL to point to your Steadybit installation. Use this if your platform is running behind a reverse proxy doing path rewriting. Also it is used for the links in notifications.
STEADYBIT_WEB_PUBLIC_EXPERIMENT_PORT
By default the Websocket connections are advertised to the agents on port 7878. If the public port differs (e.g. because of a proxy) use this property to advertise a different port.
STEADYBIT_WEB_PUBLIC_EXPERIMENT_URL
By default the Websocket connections are advertised on the same url name as the agents registers to. If you run a separate loadbalancer for the websockets you can override the advertised url.
Log Configuration
LOGGING_FORMAT
By default Steadybit uses text
format. Set this this to json
to switch the log format to JSON.
Static-Authentication
You can use a static username/password to authenticate as an admin user
STEADYBIT_AUTH_PROVIDER
yes
Use STATIC
for static authentication
Example: LDAP
STEADYBIT_AUTH_STATIC_0_USERNAME
yes
Username
Example: admin
STEADYBIT_AUTH_STATIC_0_PASSWORD
yes
Password
Example: {noop}admin
LDAP-Authentication
You can use a LDAP Server for user authentication.
By default the ldap is accessed anonymously, unless STEADYBIT_AUTH_LDAP_MANAGER_DN
and STEADYBIT_AUTH_LDAP_MANAGER_PASSWORD
is set. The users are authenticated by doing a bind with their credentials, unless STEADYBIT_AUTH_LDAP_METHOD
is set to password-compare
.
STEADYBIT_AUTH_PROVIDER
yes
Use LDAP
for LDAP-Authentication
Example: LDAP
STEADYBIT_AUTH_LDAP_URL
yes
LDAP-Server URL
Example: ldap://openldap:389/dc=steadybit,dc=com
STEADYBIT_AUTH_LDAP_MANAGER_DN
Username (DN) of the "manager" user identity is used to authenticate to a LDAP server. If omitted anonymous access will be used. Example: uid=admin,ou=system
STEADYBIT_AUTH_LDAP_MANAGER_PASSWORD
The password for the manager DN. This is required if the manager-dn is specified.
STEADYBIT_AUTH_LDAP_USER_DN_PATTERNS
The search pattern to find the usernames
Default: uid={0},ou=people
STEADYBIT_AUTH_LDAP_METHOD
The method to authenticate the user. Either bind
or password-compare
.
Default: bind
STEADYBIT_AUTH_LDAP_PASSWORD_ATTRIBUTE
The attribute in the directory which contains the user password, used if using password-compare
Default: userPassword
STEADYBIT_AUTH_SYNC_ADMIN_GROUP_DN
yes
The DN for the groupOfNames/groupOfUniqueNames for the Admin
users
Example: cn=steadybit_admin,ou=groups,dc=steadybit,dc=com
STEADYBIT_AUTH_SYNC_USER_GROUP_DN
yes
The DN for the groupOfNames/groupOfUniqueNames for the User
users
Example: cn=steadybit_user,ou=groups,dc=steadybit,dc=com
STEADYBIT_AUTH_LDAP_SYNC_TEAM_SEARCH_FILTER
The filter for the groupOfNames/groupOfUniqueNames for the teams
Example: ou=teams,ou=groups,dc=steadybit,dc=com
STEADYBIT_AUTH_LDAP_SYNC_TEAM_KEY_ATTRIBUTE
The attribute to use as Team key
Example: cn=steadybit_admin,ou=groups,dc=steadybit,dc=com
STEADYBIT_AUTH_LDAP_SYNC_TEAM_NAME_ATTRIBUTE
The attribute to use as Team name
Example: cn=steadybit_admin,ou=groups,dc=steadybit,dc=com
STEADYBIT_AUTH_SYNC_CRON
Cron Expression which defines the periods for the LDAP synchronization
Default: 0 0 _/2 ? _ * *
OpenID-Connect Authentication
You can use an OpenID Connect compatible authentication provider for user authentication. Steadybit uses the authorization_code
grant type. The callback URL is https://<host>/oauth2/login/code/default
The first user to login will be assigned the
ADMIN
role, all other will be assigned theUSER
role. The roles can be changed by an admin user via the UI.
Be aware to configure your ingress / loadbalancer to set the X-Forwarded-Proto
and x-forwarded-for
header. Otherwise the correct redirect URL will not be generated.
STEADYBIT_AUTH_PROVIDER
yes
Use OAUTH2
for OIDC-Authentication
Example: OAUTH2
STEADYBIT_AUTH_OAUTH2_ISSUER_URI
yes
URI for the OpenID Connect discovery endpoint.
Example: https://keycloak/auth/realms/demo
STEADYBIT_AUTH_OAUTH2_CLIENT_ID
yes
The client ID to use for the OIDC registration
Example: steadybit
STEADYBIT_AUTH_OAUTH2_CLIENT_SECRET
yes
The client secret to use for the OIDC registration
Example: ijhdfpjdf80wiphubfqwd113342r
STEADYBIT_AUTH_OAUTH2_SCOPE
The OAUTH2 scope to use for the OIDC registration
Default: openid,profile,email
STEADYBIT_AUTH_OAUTH2_USER_NAME_ATTRIBUTE
Name of the OidcIdToken attribute that will be used to identify the user
Default: sub
STEADYBIT_AUTH_OAUTH2_FULL_NAME_ATTRIBUTE
Name of the OidcIdToken attribute that will be used to pick the full name of the user
Default: name
STEADYBIT_AUTH_OAUTH2_CLAIMS_TEAM_NAME_ATTRIBUTE_NAME
Name of the OidcIdToken claims attribute that will be used to pick up the assigned team names from. Steadybit automatically creates the specified teams in the platform and assigns the user to them.
Default: groups
Example value in OIDC provider for single team: team1
Example value in OIDC provider for multiple teams: ["team1","team2"]
STEADYBIT_AUTH_OAUTH2_HOSTED_DOMAIN
Restrict the login to users with a specific email domain. If set, only users with an email address from this domain will be allowed to login. Can be used with Google Workspace OIDC.
Example: example.com
Using SSL/TLS Encryption
SSL can be configured by setting the various SERVER_SSL_*
properties and requires a java keystore (typically PKCS12).
SERVER_PORT
Port to use
Default: 8080
SERVER_SSL_KEY_STORE
Path to the key store that holds the SSL certificate (typically a .jks
or .p12
file).
Example: file:/keystores/steadybit.p12
SERVER_SSL_KEY_STORE_TYPE
Type of the keystore
Example: PKCS12
SERVER_SSL_KEY_STORE_PASSWORD
Password used to access the key store
SERVER_SSL_KEY_ALIAS
Alias that identifies the key in the keystore to be used
SERVER_SSL_KEY_PASSWORD
Password used to access the key in the key store.
Audit-Log Export
Audit logs can be exported to a AWS S3 Bucket
STEADYBIT_AUDITLOG_EXPORT_CRON
Cron Expression which defines the periods for the audit log export
STEADYBIT_AUDITLOG_EXPORT_S3_BUCKET_NAME
AWS S3 Bucket Name
STEADYBIT_AUDITLOG_EXPORT_SUBFOLDER
Subfolder in the S3 Bucket
STEADYBIT_AUDITLOG_EXPORT_REGION
AWS Region
Advanced Agent Authentication
OpenID Connect can be used to authenticate the agents to the platform.
STEADYBIT_AUTH_AGENT_PROVIDER
Set to OAUTH2
to use the OIDC.
Default: AGENT_KEY
STEADYBIT_AUTH_AGENT_OAUTH2_ISSUER_URI
yes
The issuer URI of your identity provider
Proxy Settings
Steadybit will use these proxy settings if the platform needs to connect to other services (for example your OIDC identity provider).
STEADYBIT_PROXY_HOST
Hostname of your proxy
STEADYBIT_PROXY_PORT
Port of your proxy
STEADYBIT_PROXY_PROTOCOL
Protocol of your proxy
Default: http
STEADYBIT_PROXY_USER
Username of your proxy
STEADYBIT_PROXY_PASSWORD
Password of your proxy
Experiment Execution
STEADYBIT_EXPERIMENT_EXECUTION_PARALLEL_EXECUTION_CHECK_SCOPE
Steadybit will show a warning, if there are experiments running for the same TENANT
(default), TEAM
or ENVIRONMENT
STEADYBIT_EXPERIMENT_EXECUTION_MAXIMUM_DURATION
The maximum total duration of an experiment. Default is 12h
STEADYBIT_EXPERIMENT_EXECUTION_EXPERIMENT_TIMEOUT
The time after which the experiment execution should time out after the estimated duration is reached. Default is 15m
STEADYBIT_EXPERIMENT_EXECUTION_PREPARATION_TIMEOUT
The time after which the experiment execution should time out if not all agents are prepared. Default is 60s
STEADYBIT_EXPERIMENT_EXECUTION_STEP_START_TIMEOUT
The time after which an experiment step should time out if not started after triggering. Default is 180s
Data Retention Settings
All retention settings are defined via
STEADYBIT_X_RETENTION_PERIOD
a duration string, sequence of decimal numbers and a unit suffix, see Spring conversion expressions.STEADYBIT_X_RETENTION_CRON
cron string for Quartz
Note that X
links to a specific domain, see below (e.g. targets stats via TARGETS_STATS
).
STEADYBIT_EXTERNAL_VENDOR_AMPLITUDE_LOCAL_STORAGE_RETENTION_PERIOD
Maximum age of Amplitude analytics events.
Only applicable, if Amplitude is enabled and the mode
is set to LOCAL_STORAGE
.
amplitude_local_event
365d
STEADYBIT_EXTERNAL_VENDOR_AMPLITUDE_LOCAL_STORAGE_RETENTION_CRON
Cron String for the cleanup job of Amplitude analytics events.
amplitude_local_event
0 15 5 1/1 * ? *
(every day at 5:15)
STEADYBIT_AUDITLOG_RETENTION_PERIOD
Maximum age of audit logs.
audit_log
90d
STEADYBIT_AUDITLOG_RETENTION_CRON
Cron String for the cleanup job of audit logs.
audit_log
0 20 5 1/1 * ? *
(every day at 5:20)
STEADYBIT_EXPERIMENT_EXECUTION_ARTIFACT_RETENTION_PERIOD
Maximum age of experiment execution artifacts.
execution_artifact
Keep until the execution is deleted
STEADYBIT_EXPERIMENT_EXECUTION_ARTIFACT_RETENTION_CRON
Cron String for the cleanup job of experiment execution artifacts.
execution_artifact
STEADYBIT_EXPERIMENT_EXECUTION_LOG_RETENTION_PERIOD
Maximum age of experiment execution logs.
execution_log_event
Keep until the execution is deleted
STEADYBIT_EXPERIMENT_EXECUTION_LOG_RETENTION_CRON
Cron String for the cleanup job of experiment execution logs.
execution_log_event
STEADYBIT_EXPERIMENT_EXECUTION_METRIC_RETENTION_PERIOD
Maximum age of experiment execution metrics.
execution_metric_event
Keep until the execution is deleted
STEADYBIT_EXPERIMENT_EXECUTION_METRIC_RETENTION_CRON
Cron String for the cleanup job of experiment execution metrics.
execution_metric_event
STEADYBIT_EXPERIMENT_EXECUTION_SPAN_RETENTION_PERIOD
Maximum age of experiment execution spans.
execution_spans
28d
STEADYBIT_EXPERIMENT_EXECUTION_SPAN_RETENTION_CRON
Cron String for the cleanup job of experiment execution spans.
execution_spans
0 25 5 1/1 * ? *
(every day at 5:25)
STEADYBIT_EXPERIMENT_EXECUTION_RETENTION_PERIOD
Maximum age of experiment executions.
experiment_execution
and more
No cleanup by default
STEADYBIT_EXPERIMENT_EXECUTION_RETENTION_CRON
Cron String for the cleanup job of experiment executions.
experiment_execution
and more
STEADYBIT_METRIC_RETENTION_PERIOD
Maximum age of metrics.
metric
365d
STEADYBIT_METRIC_RETENTION_CRON
Cron String for the cleanup job of metrics.
metric
0 35 5 1/1 * ? *
(every day at 5:35)
STEADYBIT_TARGETS_STATS_RETENTION_PERIOD
Maximum age of target stats.
target_stats
7d
STEADYBIT_TARGETS_STATS_RETENTION_CRON
Cron String for the cleanup job of target stats.
target_stats
0 30 5 1/1 * ? *
(every day at 5:30)
Last updated