Knobs

To allow control of its behavior, Artemis works with a concept of "knobs". A knob is a named value that affects Artemis in some way, and it is possible to change the value by a maintainer. Value of each knob is provided by two or more sources:

  1. (optional) the database. Can be changed in runtine with artemis-cli knob command.
  2. the environment variable. Cannot be changed in runtime, only when components starts.
  3. the default value. Cannot be changed because it is part of the source code.
KnobCastEnvironment variableDefaultEditable?
actor.default-max-backoffintARTEMIS_ACTOR_DEFAULT_MAX_BACKOFF60no
The biggest possible delay, in seconds, before the next attempt to run a failed task.
actor.default-min-backoffintARTEMIS_ACTOR_DEFAULT_MIN_BACKOFF15no
The lowest possible delay, in seconds, before the next attempt to run a failed task.
actor.default-prioritycast_priorityARTEMIS_ACTOR_DEFAULT_PRIORITYDEFAULTno
Task priority ("HIGH", "DEFAULT", "LOW" or any positive integer).
actor.default-queuecast_queueARTEMIS_ACTOR_DEFAULT_QUEUEdefaultno
Task queue ("default", "periodic", "pool-data-refresh" or any other string).
actor.default-retries-countintARTEMIS_ACTOR_DEFAULT_RETRIES5no
A number of time a failing task get retried. Serves as a default value for tasks without custom setting.
actor.default-singleton-deadlineintARTEMIS_ACTOR_DEFAULT_SINGLETON_DEADLINE300no
The biggest possible deadline for a singleton task, in seconds.
actor.delay-uniform-spreadintARTEMIS_ACTOR_DELAY_UNIFORM_SPREAD5no
A range, in seconds, by which can a task delay be modified before use.
actor.dispatch-preparing.delayintARTEMIS_ACTOR_DISPATCH_PREPARE_DELAY60no
A delay, in second, between successful acquire of a cloud instance and dispatching of post-acquire preparation tasks.
actor.guest-request-watchdog.dispatch.delayintARTEMIS_ACTOR_GUEST_REQUEST_WATCHDOG_DISPATCH_DELAY600yes
actor.guest-request-watchdog.dispatch.delay:$entitynameARTEMIS_ACTOR_GUEST_REQUEST_WATCHDOG_DISPATCH_DELAY_$entityname
A delay, in seconds, between successful provisioning and dispatching of guest request watchdog tasks.
actor.guest-request-watchdog.dispatch.periodintARTEMIS_ACTOR_GUEST_REQUEST_WATCHDOG_DISPATCH_PERIOD3600yes
actor.guest-request-watchdog.dispatch.period:$entitynameARTEMIS_ACTOR_GUEST_REQUEST_WATCHDOG_DISPATCH_PERIOD_$entityname
A delay, in seconds, after which new guest request watchdog task is scheduled.
actor.refresh-pool-avoid-groups-hostnames.schedulestrARTEMIS_ACTOR_REFRESH_POOL_AVOID_GROUPS_HOSTNAMES_SCHEDULE*/5 * * * *no
When to run refresh of Beaker avoid groups hostnames, as a Cron-like specification.
actor.refresh-pool-flavor-info.schedulestrARTEMIS_ACTOR_REFRESH_POOL_FLAVOR_INFO_SCHEDULE*/5 * * * *no
When to run OpenStack flavor info refresh task, as a Cron-like specification.
actor.refresh-pool-image-info.schedulestrARTEMIS_ACTOR_REFRESH_POOL_IMAGE_INFO_SCHEDULE*/5 * * * *no
When to run pool image info refresh task, as a Cron-like specification.
actor.refresh-pool-resources-metrics.schedulestrARTEMIS_ACTOR_REFRESH_POOL_RESOURCES_METRICS_SCHEDULE* * * * *no
When to run pool image info refresh task, as a Cron-like specification.
actor.shelved-guest-watchdog.connect-timeoutintARTEMIS_SHELVED_GUEST_WATCHDOG_SSH_CONNECT_TIMEOUT15yes
actor.shelved-guest-watchdog.connect-timeout:$entitynameARTEMIS_SHELVED_GUEST_WATCHDOG_SSH_CONNECT_TIMEOUT_$entityname
Shelved guest watchdog SSH connection timeout.
actor.shelved-guest-watchdog.dispatch.delayintARTEMIS_ACTOR_SHELVED_GUEST_WATCHDOG_DISPATCH_PERIOD600no
A delay, in seconds, between watchdog runs.
actor.verify-ssh.connect-timeoutintARTEMIS_PREPARE_VERIFY_SSH_CONNECT_TIMEOUT15yes
actor.verify-ssh.connect-timeout:$entitynameARTEMIS_PREPARE_VERIFY_SSH_CONNECT_TIMEOUT_$entityname
Prepare stage SSH timeout.
actor.worker-ping.schedulestrARTEMIS_ACTOR_WORKER_PING_SCHEDULE*/5 * * * *no
When to run worker ping task, as a Cron-like specification.
api.enable-authenticationboolARTEMIS_ENABLE_AUTHENTICATIONnono
If enabled, API requests must pass authentication by providing proper username and token.
api.enable-authorizationboolARTEMIS_ENABLE_AUTHORIZATIONnono
If enabled, API requests must pass authorization by providing username with privileges high enough for the requested action.
api.engine.debugboolARTEMIS_API_ENGINE_DEBUGnono
Run engine with a debugging enabled.
api.engine.reload-on-changeboolARTEMIS_API_ENGINE_RELOAD_ON_CHANGEnono
Reload API server when its code changes.
api.engine.reload.request-limitintARTEMIS_API_ENGINE_RELOAD_REQUESTS_LIMIT0no
Reload a worker process after serving this number of requests.
api.engine.reload.request-limit.spreadintARTEMIS_API_ENGINE_RELOAD_REQUESTS_LIMIT_SPREAD0no
A range by which is number of requests randomized.
api.processesintARTEMIS_API_PROCESSES1no
Number of processes to spawn for servicing API requests.
api.profiling.enabledboolARTEMIS_API_ENABLE_PROFILINGnono
If enabled, API server will profile handling of each request, emitting a summary into log.
api.profiling.limitintARTEMIS_API_PROFILING_LIMIT20no
How many functions should be included in the summary.
api.threadsintARTEMIS_API_THREADS1no
Number of threads to spawn in each process for servicing API requests.
aws.logs.console.dump.blob.update-tickintARTEMIS_AWS_LOGS_CONSOLE_LATEST_BLOB_UPDATE_TICK300no
How long, in seconds, to take between updating guest console log.
aws.logs.console.interactive.urlstrARTEMIS_AWS_LOGS_CONSOLE_INTERACTIVE_URLhttps://console.aws.amazon.com/ec2/v2/connect/ec2-user/{instance_id}?connection-type=isc&serial-port=0no
Templated URL of serial console of an AWS EC2 instance.
aws.mapping.environment-to-image.pattern-map.filepathstrARTEMIS_AWS_ENVIRONMENT_TO_IMAGE_MAPPING_FILEPATHartemis-image-map-aws.yamlno
aws.mapping.environment-to-image.pattern-map.filepath:$entitynameARTEMIS_AWS_ENVIRONMENT_TO_IMAGE_MAPPING_FILEPATH_$entityname
Path to a pattern map file with environment to image mapping.
aws.mapping.environment-to-image.pattern-map.needlestrARTEMIS_AWS_ENVIRONMENT_TO_IMAGE_MAPPING_NEEDLE{{ os.compose }}no
aws.mapping.environment-to-image.pattern-map.needle:$entitynameARTEMIS_AWS_ENVIRONMENT_TO_IMAGE_MAPPING_NEEDLE_$entityname
A pattern for needle to match in environment to image mapping file.
aws.pending-timeoutintARTEMIS_AWS_PENDING_TIMEOUT600no
How long, in seconds, is an instance allowed to stay in pending state until cancelled and reprovisioned.
aws.spot-open-timeoutintARTEMIS_AWS_SPOT_OPEN_TIMEOUT60no
How long, in seconds, is an spot instance request allowed to stay in open state until cancelled and reprovisioned.
azure.mapping.environment-to-image.pattern-map.filepathstrARTEMIS_AZURE_ENVIRONMENT_TO_IMAGE_MAPPING_FILEPATHartemis-image-map-azure.yamlno
azure.mapping.environment-to-image.pattern-map.filepath:$entitynameARTEMIS_AZURE_ENVIRONMENT_TO_IMAGE_MAPPING_FILEPATH_$entityname
Path to a pattern map file with environment to image mapping.
azure.mapping.environment-to-image.pattern-map.needlestrARTEMIS_AZURE_ENVIRONMENT_TO_IMAGE_MAPPING_NEEDLE{{ os.compose }}no
azure.mapping.environment-to-image.pattern-map.needle:$entitynameARTEMIS_AZURE_ENVIRONMENT_TO_IMAGE_MAPPING_NEEDLE_$entityname
A pattern for needle to match in environment to image mapping file.
beaker.guest-watchdog.ssh.connect-timeoutintARTEMIS_BEAKER_GUEST_WATCHDOG_SSH_CONNECT_TIMEOUT15yes
beaker.guest-watchdog.ssh.connect-timeout:$entitynameARTEMIS_BEAKER_GUEST_WATCHDOG_SSH_CONNECT_TIMEOUT_$entityname
Guest watchdog SSH timeout.
beaker.job.whiteboard.templatestrARTEMIS_BEAKER_JOB_WHITEBOARD_TEMPLATE[artemis] [{{ DEPLOYMENT }}] {{ GUESTNAME }}no
beaker.job.whiteboard.template:$entitynameARTEMIS_BEAKER_JOB_WHITEBOARD_TEMPLATE_$entityname
A template for Beaker job whiteboard.
beaker.mapping.environment-to-image.patternstrARTEMIS_BEAKER_ENVIRONMENT_TO_IMAGE_MAPPING_PATTERN(?P<distro>[;]+)(?:;variant=(?P<variant>[a-zA-Z]+);?)?$no
beaker.mapping.environment-to-image.pattern:$entitynameARTEMIS_BEAKER_ENVIRONMENT_TO_IMAGE_MAPPING_PATTERN_$entityname
A pattern for extracting distro and other components from the right side of the image mapping file.
beaker.mapping.environment-to-image.pattern-map.filepathstrARTEMIS_BEAKER_ENVIRONMENT_TO_IMAGE_MAPPING_FILEPATHartemis-image-map-beaker.yamlno
beaker.mapping.environment-to-image.pattern-map.filepath:$entitynameARTEMIS_BEAKER_ENVIRONMENT_TO_IMAGE_MAPPING_FILEPATH_$entityname
Path to a pattern map file with environment to image mapping.
beaker.mapping.environment-to-image.pattern-map.needlestrARTEMIS_BEAKER_ENVIRONMENT_TO_IMAGE_MAPPING_NEEDLE{{ os.compose }}no
beaker.mapping.environment-to-image.pattern-map.needle:$entitynameARTEMIS_BEAKER_ENVIRONMENT_TO_IMAGE_MAPPING_NEEDLE_$entityname
A pattern for needle to match in environment to image mapping file.
beaker.reservation.durationintARTEMIS_BEAKER_RESERVATION_DURATION86400no
A time, in seconds, for which the guest would be initially reserved.
beaker.reservation.extensionintARTEMIS_BEAKER_RESERVATION_EXTENSION28800no
A time, in seconds, to extend the guest reservation every tick of a watchdog.
broker.close-after-dispatchboolARTEMIS_CLOSE_AFTER_DISPATCHnono
When enabled, broker connection will be forcefully closed after every message dispatch.
broker.confirm-deliveryboolARTEMIS_BROKER_CONFIRM_DELIVERYyesno
If set, every attempt to enqueue a messages will require a confirmation from the broker.
broker.urlstrARTEMIS_BROKER_URLamqp://guest:guest@127.0.0.1:5672no
Broker URL. See https://pika.readthedocs.io/en/1.2.0/modules/parameters.html#pika.connection.URLParameters for full list of connection parameters that can be specified via URL.
cache.urlstrARTEMIS_CACHE_URLredis://127.0.0.1:6379no
Cache URL.
config.dirpath<lambda>ARTEMIS_CONFIG_DIR$CWDno
Path to a directory with configuration.
db.pool.max-overflowintARTEMIS_DB_POOL_MAX_OVERFLOW10no
Maximum size of connection pool overflow.
db.pool.sizeintARTEMIS_DB_POOL_SIZE20no
Size of the DB connection pool.
db.urlstrARTEMIS_DB_URLNoneno
Database URL.
deployment.componentstrARTEMIS_COMPONENTundefined-componentno
Optional name of the Artemis component (e.g. "worker", "api", etc.).
deployment.environmentstrARTEMIS_DEPLOYMENT_ENVIRONMENTundefined-deployment-environmentno
Optional environment of the Artemis deployment (e.g. "production" or "staging").
deployment.namestrARTEMIS_DEPLOYMENTundefined-deploymentno
Optional name of the Artemis deployment (e.g. "production-01" or "development").
disable-cert-verificationboolARTEMIS_DISABLE_CERT_VERIFICATIONnono
When enabled, Artemis would disable HTTPS certificate verification when talking to remote URLs.
gc.events.schedulestrARTEMIS_GC_EVENTS_SCHEDULE15 */4 * * *no
When to run garbage collection task for guest request events.
gc.events.thresholdintARTEMIS_GC_EVENTS_THRESHOLD2592000no
How old must the guest events be to be removed, in seconds.
logging.cli.command-patternstrARTEMIS_LOG_CLI_COMMAND_PATTERN.*no
Log only commands matching the pattern.
logging.cli.commandsboolARTEMIS_LOG_CLI_COMMANDSnono
When enabled, Artemis would log CLI commands.
logging.cli.slow-command-patternstrARTEMIS_LOG_SLOW_CLI_COMMAND_PATTERN.*no
Log only slow commands matching the pattern.
logging.cli.slow-command-thresholdfloatARTEMIS_LOG_SLOW_CLI_COMMAND_THRESHOLD10.0no
Minimal time, in seconds, spent executing a CLI command for it to be reported as "slow".
logging.cli.slow-commandsboolARTEMIS_LOG_SLOW_CLI_COMMANDSnono
When enabled, Artemis would log "slow" CLI commands - commands whose execution took longer than ARTEMIS_LOG_SLOW_CLI_COMMAND_THRESHOLD seconds.
logging.db.poolstrARTEMIS_LOG_DB_POOLnono
When enabled, Artemis would log events related to database connection pool.
logging.db.queriesboolARTEMIS_LOG_DB_QUERIESnono
When enabled, Artemis would log SQL queries.
logging.db.slow-queriesboolARTEMIS_LOG_DB_SLOW_QUERIESnono
When enabled, Artemis would log "slow" queries - queries whose execution took longer than ARTEMIS_LOG_DB_SLOW_QUERY_THRESHOLD seconds.
logging.db.slow-query-thresholdfloatARTEMIS_LOG_DB_SLOW_QUERY_THRESHOLD10.0no
Minimal time, in seconds, spent executing a query for it to be reported as "slow".
logging.jsonboolARTEMIS_LOG_JSONyesno
If enabled, Artemis would emit log messages as JSON mappings.
logging.level<lambda>ARTEMIS_LOG_LEVEL20no
Level of logging. Accepted values are Python logging levels as defined by Python’s logging subsystem.
logging.sentryboolARTEMIS_LOG_SENTRYnono
When enabled, Artemis would log more Sentry-related debug info.
logging.singleton-locksboolARTEMIS_LOG_SINGLETON_LOCKSnono
When enabled, Artemis would log more debuginfo related to singleton task locking.
openstack.build-timeoutintARTEMIS_OPENSTACK_BUILD_TIMEOUT600no
How long, in seconds, is an instance allowed to stay in BUILD state until cancelled and reprovisioned.
openstack.console.blob.update-tickintARTEMIS_OPENSTACK_CONSOLE_BLOB_UPDATE_TICK30no
openstack.console.blob.update-tick:$entitynameARTEMIS_OPENSTACK_CONSOLE_BLOB_UPDATE_TICK_$entityname
How long, in seconds, to take between updating guest console log.
openstack.console.url.expiresintARTEMIS_OPENSTACK_CONSOLE_URL_EXPIRES600no
How long, in seconds, it takes for a console url to be qualified as expired.
openstack.mapping.environment-to-image.pattern-map.filepathstrARTEMIS_OPENSTACK_ENVIRONMENT_TO_IMAGE_MAPPING_FILEPATHartemis-image-map-openstack.yamlno
openstack.mapping.environment-to-image.pattern-map.filepath:$entitynameARTEMIS_OPENSTACK_ENVIRONMENT_TO_IMAGE_MAPPING_FILEPATH_$entityname
Path to a pattern map file with environment to image mapping.
openstack.mapping.environment-to-image.pattern-map.needlestrARTEMIS_OPENSTACK_ENVIRONMENT_TO_IMAGE_MAPPING_NEEDLE{{ os.compose }}no
openstack.mapping.environment-to-image.pattern-map.needle:$entitynameARTEMIS_OPENSTACK_ENVIRONMENT_TO_IMAGE_MAPPING_NEEDLE_$entityname
A pattern for needle to match in environment to image mapping file.
pool.cache-pattern-mapsboolARTEMIS_CACHE_PATTERN_MAPSyesno
pool.cache-pattern-maps:$entitynameARTEMIS_CACHE_PATTERN_MAPS_$entityname
If enabled, pattern maps loaded by pools would be cached.
pool.dispatch-resource-cleanupintARTEMIS_DISPATCH_RESOURCE_CLEANUP_DELAY0no
pool.dispatch-resource-cleanup:$entitynameARTEMIS_DISPATCH_RESOURCE_CLEANUP_DELAY_$entityname
A delay, in seconds, to schedule pool resources release with. This may be useful for post mortem investigation of crashed resources.
pool.enabledboolARTEMIS_POOL_ENABLEDyesyes
pool.enabled:$entitynameARTEMIS_POOL_ENABLED_$entityname
If unset for a pool, the given pool is ignored by Artemis in general.
pool.update-guest-request-tickintARTEMIS_UPDATE_GUEST_REQUEST_TICK30no
pool.update-guest-request-tick:$entitynameARTEMIS_UPDATE_GUEST_REQUEST_TICK_$entityname
A delay, in seconds, between two calls of update-guest-request task checking provisioning progress.
route.pool.enabledboolARTEMIS_ROUTE_POOL_ENABLEDyesyes
route.pool.enabled:$entitynameARTEMIS_ROUTE_POOL_ENABLED_$entityname
If unset for a pool, the given pool is ignored by the routing.
route.pool.forgiving-timeintARTEMIS_ROUTE_POOL_FORGIVING_TIME600yes
A time, in seconds, after which a pool error during a guest provisioning is ignored and pool becomes eligible for said guest request again.
route.pool.resource-thresholdfloatARTEMIS_ROUTE_POOL_RESOURCE_THRESHOLD90.0yes
A percentage part of pool resource that, when reached, marks pool as depleted and not eligible for provisioning.
route.request.max-timeintARTEMIS_ROUTE_REQUEST_MAX_TIME21600yes
A time, in seconds, after which a guest request is cancelled if provisioning haven’t succeeded.
sentry.base-urlstrARTEMIS_SENTRY_BASE_URLundefinedno
Sentry base URL, for nice event URLs in logs.
sentry.disable-cert-verificationboolARTEMIS_SENTRY_DISABLE_CERT_VERIFICATIONnono
When enabled, Artemis would disable HTTPS certificate verification when submitting to Sentry.
sentry.dsnstrARTEMIS_SENTRY_DSNundefinedno
Sentry DSN.
shelf.max-guestsintARTEMIS_SHELF_MAX_GUESTS10yes
shelf.max-guests:$entitynameARTEMIS_SHELF_MAX_GUESTS_$entityname
Maximum number of guests present on a shelf.
template.delimiters.variablestrARTEMIS_TEMPLATE_VARIABLE_DELIMITERS{{,}}no
Variable delimiters for various Jinja2 templates. Useful when Artemis deployment renders templates that Artemis itself is supposed to render. The value shall be comma-separated list of two strings, the start and end delimiter of a variable to render in a template.
vault.passwordstrARTEMIS_VAULT_PASSWORD``no
A password for decrypting files protected by Ansible Vault. Takes precedence over ARTEMIS_VAULT_PASSWORD_FILE.
vault.password.filepath<lambda>ARTEMIS_VAULT_PASSWORD_FILE$HOME/.vault_passwordno
Path to a file with a password for decrypting files protected by Ansible Vault.
worker.max-tasksintARTEMIS_WORKER_MAX_TASKS_PER_PROCESS0no
After this many tasks processed, a worker process would reload itself. Set to 0 to disable.
worker.metrics.process.enabledboolARTEMIS_WORKER_PROCESS_METRICS_ENABLEDyesno
If enabled, various metrics related to worker processes would be collected.
worker.metrics.process.ttlintARTEMIS_WORKER_PROCESS_METRICS_TTL120no
How long, in seconds, should worker process metrics remain in cache.
worker.metrics.process.update-tickintARTEMIS_WORKER_PROCESS_METRICS_UPDATE_TICK60no
How often, in seconds, should workers update their process metrics cache.
worker.metrics.traffic.enabledboolARTEMIS_WORKER_TRAFFIC_METRICS_ENABLEDyesno
If enabled, various metrics related to tasks and requests would be collected.
worker.metrics.traffic.ttlintARTEMIS_WORKER_TRAFFIC_METRICS_TTL600no
How long, in seconds, should worker traffic metrics remain in cache.