The Reaper Docker container has been designed to be highly configurable. Many of the environment variables map directly or indirectly to a settings in the cassandra-reaper.yaml configuration file.
The Docker environment variables listed in this section map directly to Reaper specific settings in the cassandra-reaper.yaml configuration file. The following table below lists the Docker environment variables, their associated Reaper specific setting in the cassandra-reaper.yaml configuration file, and the default value assigned by the Docker container (if any). Definitions for each Docker environment variable can be found via the link to the associated setting.
Environment Variable | Configuration Setting | Default Value |
---|---|---|
REAPER_AUTO_SCHEDULING_ENABLED |
enabled | false |
REAPER_AUTO_SCHEDULING_EXCLUDED_KEYSPACES |
excludedKeyspaces | [] |
REAPER_AUTO_SCHEDULING_EXCLUDED_CLUSTERS |
excludedClusters | [] |
REAPER_AUTO_SCHEDULING_INITIAL_DELAY_PERIOD |
initialDelayPeriod | PT15S |
REAPER_AUTO_SCHEDULING_PERIOD_BETWEEN_POLLS |
periodBetweenPolls | PT10M |
REAPER_AUTO_SCHEDULING_SCHEDULE_SPREAD_PERIOD |
scheduleSpreadPeriod | PT6H |
REAPER_AUTO_SCHEDULING_TIME_BEFORE_FIRST_SCHEDULE |
timeBeforeFirstSchedule | PT5M |
REAPER_AUTO_SCHEDULING_ADAPTIVE |
adaptive | true |
REAPER_AUTO_SCHEDULING_INCREMENTAL |
incremental | false |
REAPER_AUTO_SCHEDULING_PERCENT_UNREPAIRED_THRESHOLD |
percentUnrepairedThreshold | 10 |
REAPER_BLACKLIST_TWCS |
blacklistTwcsTables | false |
REAPER_DATACENTER_AVAILABILITY |
datacenterAvailability | ALL |
REAPER_ENABLE_CROSS_ORIGIN |
enableCrossOrigin | true |
REAPER_ENABLE_DYNAMIC_SEED_LIST |
enableDynamicSeedList | true |
REAPER_HANGING_REPAIR_TIMEOUT_MINS |
hangingRepairTimeoutMins | 30 |
REAPER_INCREMENTAL_REPAIR |
incrementalRepair | false |
REAPER_SUBRANGE_INCREMENTAL |
subrangeIncrementalRepair | false |
REAPER_JMX_AUTH_PASSWORD |
password | |
REAPER_JMX_AUTH_USERNAME |
username | |
REAPER_JMX_CREDENTIALS |
jmxCredentials | |
REAPER_JMX_CONNECTION_TIMEOUT_IN_SECONDS |
jmxConnectionTimeoutInSeconds | 20 |
REAPER_JMX_PORTS |
jmxPorts | {} |
REAPER_LOGGING_APPENDERS_CONSOLE_LOG_FORMAT |
logFormat | “%-6level [%d] [%t] %logger{5} - %msg %n” |
REAPER_LOGGING_APPENDERS_CONSOLE_THRESHOLD |
threshold | INFO |
REAPER_LOGGING_LOGGERS |
loggers | {} |
REAPER_LOGGING_ROOT_LEVEL |
level | INFO |
REAPER_MAX_PENDING_COMPACTIONS |
maxPendingCompactions | 20 |
REAPER_METRICS_FREQUENCY |
fequency | 1 minute |
REAPER_METRICS_REPORTERS |
reporters | [] |
REAPER_REPAIR_INTENSITY |
repairIntensity | 0.9 |
REAPER_REPAIR_MANAGER_SCHEDULING_INTERVAL_SECONDS |
repairManagerSchedulingIntervalSeconds | 30 |
REAPER_REPAIR_PARALELLISM |
repairParallelism | DATACENTER_AWARE |
REAPER_REPAIR_RUN_THREADS |
repairRunThreadCount | 15 |
REAPER_SCHEDULE_DAYS_BETWEEN |
scheduleDaysBetween | 7 |
REAPER_SEGMENT_COUNT_PER_NODE |
segmentCountPerNode | 64 |
REAPER_SERVER_ADMIN_BIND_HOST |
bindHost | 0.0.0.0 |
REAPER_SERVER_ADMIN_PORT |
port | 8081 |
REAPER_SERVER_APP_BIND_HOST |
bindHost | 0.0.0.0 |
REAPER_SERVER_APP_PORT |
port | 8080 |
REAPER_STORAGE_TYPE |
storageType | memory |
REAPER_USE_ADDRESS_TRANSLATOR |
useAddressTranslator | false |
REAPER_MAX_PARALLEL_REPAIRS |
maxParallelRepairs | 2 |
CRYPTO_SYSTEM_PROPERTY_SECRET |
cryptograph/systemPropertySecret | Unset |
REAPER_HTTP_MANAGEMENT_ENABLE |
httpManagement/enabled | false |
REAPER_HTTP_MANAGEMENT_KEYSTORE_PATH |
httpManagement/keystorePath | |
REAPER_HTTP_MANAGEMENT_TRUSTSTORE_PATH |
httpManagement/truststorePath | |
REAPER_HTTP_MANAGEMENT_TRUSTSTORES_DIR |
httpManagement/truststoresDir | |
REAPER_MGMT_API_METRICS_PORT |
mgmtApiMetricsPort | 9000 |
REAPER_PURGE_RECORDS_AFTER_IN_DAYS |
purgeRecordsAfterInDays | 30 |
The following Docker environment variables control runtime behavior and do not map directly to configuration file settings:
Environment Variable | Description | Default Value |
---|---|---|
REAPER_HEAP_SIZE |
JVM heap size for the Reaper process | 1G |
REAPER_TMP_DIRECTORY |
Temporary directory for Reaper operations | /var/tmp/cassandra-reaper |
REAPER_MEMORY_STORAGE_DIRECTORY |
Directory for memory storage persistence | /var/lib/cassandra-reaper/storage |
JAVA_OPTS |
Additional JVM options to pass to the Reaper process |
The following Docker environment variables are used when running the register-clusters
command:
Environment Variable | Description | Default Value |
---|---|---|
REAPER_AUTO_SCHEDULING_SEEDS |
Comma-separated list of ‘host:port’ entries for Cassandra nodes | |
REAPER_HOST |
Hostname of the Reaper instance | |
REAPER_PORT |
Port of the Reaper instance | 8080 |
The Docker environment variables listed in this section are those related to the feature address translator mapping.
Environment Variable | Configuration Setting | Example Values |
---|---|---|
REAPER_CASS_ADDRESS_TRANSLATOR_TYPE |
addressTranslator | ec2MultiRegion or multiIpPerNode |
REAPER_CASS_ADDRESS_TRANSLATOR_MAPPING |
addressTranslator | host1:ip1,host2:ip2,host3:ip3 |
JMX_ADDRESS_TRANSLATOR_TYPE |
jmxAddressTranslator | ec2MultiRegion or multiIpPerNode |
JMX_ADDRESS_TRANSLATOR_MAPPING |
jmxAddressTranslator | host1:ip1,host2:ip2,host3:ip3 |
Example :
REAPER_CASS_ADDRESS_TRANSLATOR_TYPE=multiIpPerNode
REAPER_CASS_ADDRESS_TRANSLATOR_MAPPING=host1:ip1,host2:ip2
config bloc at the container startup file ‘/etc/cassandra-reaper/cassandra-reaper.yml’ :
addressTranslator:
type: multiIpPerNode
ipTranslations:
- from: "host1"
to: "ip1"
- from: "host2"
to: "ip2"
and the same thing for the jmx mapping
JMX_ADDRESS_TRANSLATOR_TYPE=multiIpPerNode
JMX_ADDRESS_TRANSLATOR_MAPPING=host1:ip1,host2:ip2
result
jmxAddressTranslator:
type: multiIpPerNode
ipTranslations:
- from: "host1"
to: "ip1"
- from: "host2"
to: "ip2"
Note:
The following Docker environment variables control authentication settings. These variables are handled specially by configuration scripts that run at container startup.
Environment Variable | Description | Required |
---|---|---|
REAPER_AUTH_ENABLED |
Enable/disable authentication globally | No (default: true) |
REAPER_AUTH_USER |
Username for the admin user with operator role | Yes (when auth is enabled) |
REAPER_AUTH_PASSWORD |
Password for the admin user | Yes (when auth is enabled) |
REAPER_READ_USER |
Username for optional read-only user | No (only configured if both user and password are set) |
REAPER_READ_USER_PASSWORD |
Password for optional read-only user | No (only configured if both user and password are set) |
Note: The read-only user (REAPER_READ_USER
and REAPER_READ_USER_PASSWORD
) is configured conditionally. The user is only added to the authentication configuration if both environment variables are set to non-empty values. This prevents environment variable resolution errors while maintaining security.
The following Docker environment variables have no direct mapping to a setting in the cassandra-reaper.yaml configuration file. However, they do affect the content contained in the file that is Reaper specific.
REAPER_METRICS_ENABLED
Type: Boolean
Default: false
Allows the sending of Reaper metrics to a metrics reporting system such as Graphite. If enabled, the other associated environment variables REAPER_METRICS_FREQUENCY
and REAPER_METRICS_REPORTERS
must be set to appropriate values in order for metrics reporting to function correctly.
REAPER_METRICS_REPORTERS
Type: List
Default: []
Defines the metrics reporters, using a JSON syntax instead of a YAML one. To activate graphite metrics reporting, run the container with the following sample arguments :
docker run \
-p 8080:8080 \
-p 8081:8081 \
-e "REAPER_METRICS_ENABLED=true" \
-e "REAPER_METRICS_FREQUENCY=10 second" \
-e "REAPER_METRICS_REPORTERS=[{type: graphite, host: my.graphite.host.com, port: 2003, prefix: my.prefix}]" \
thelastpickle/cassandra-reaper:master
The Docker environment variables listed in this section map directly to Cassandra backend specific settings in the cassandra-reaper.yaml configuration file. The following table below lists the Docker environment variables, their associated Cassandra backend specific setting in the cassandra-reaper.yaml configuration file, and the default value assigned by the Docker container (if any). Definitions for each Docker environment variable can be found via the link to the associated setting.
In order for the Cassandra backend to be used, REAPER_STORAGE_TYPE
must be set to cassandra
.
Environment Variable | Configuration Setting | Default Value |
---|---|---|
REAPER_CASS_ACTIVATE_QUERY_LOGGER |
activateQueryLogger | false |
REAPER_CASS_CLUSTER_NAME |
clusterName | clustername |
REAPER_CASS_CONTACT_POINTS |
contactPoints | {“host”: “127.0.0.1”, “port”: “9042”}, {“host”: “127.0.0.2”, “port”: “9042”} |
REAPER_CASS_KEYSPACE |
keyspace | reaper_db |
REAPER_CASS_LOCAL_DC |
localDC | |
REAPER_CASS_AUTH_USERNAME |
username | cassandra |
REAPER_CASS_AUTH_PASSWORD |
password | cassandra |
REAPER_CASS_SCHEMA_AGREEMENT_INTERVAL |
agreementIntervalMilliseconds | 2000 |
REAPER_CASS_SCHEMA_AGREEMENT_TIMEOUT |
agreementTimeoutSeconds | 10 |
REAPER_CASS_REQUEST_TIMEOUT |
requestTimeout | 10s |
Note:
Some variable names and defaults have changed between the release of Docker-support and Reaper for Apache Cassandra 1.0. The following Cassandra Backend specific variable name changes have occurred in an effort to match closely with our YAML parameter names:
Pre Reaper 1.0 | Post Reaper 1.0 |
---|---|
REAPER_ACTIVATE_QUERY_LOGGER |
REAPER_CASS_ACTIVATE_QUERY_LOGGER |
The following default values have changed:
Environment Variable | Previous Default | New Default |
---|---|---|
REAPER_CASS_KEYSPACE |
cassandra-reaper | reaper_db |
REAPER_CASS_SCHEMA_AGREEMENT_TIMEOUT |
2000 | 10 |
The following Docker environment variables have no direct mapping to a setting in the cassandra-reaper.yaml configuration file. However, the do affect the content contained in the file that is Cassandra backend specific.
REAPER_CASS_AUTH_ENABLED
Type: Boolean
Default: false
Allows Reaper to send authentication credentials when establishing a connection with Cassandra via the native protocol. When enabled, authentication credentials must be specified by setting values for REAPER_CASS_AUTH_USERNAME
and REAPER_CASS_AUTH_PASSWORD
.
REAPER_CASS_ADDRESS_TRANSLATOR_ENABLED
Type: Boolean
Default: false
Enables the use of address translation for Cassandra connections. When enabled, REAPER_CASS_ADDRESS_TRANSLATOR_TYPE
and REAPER_CASS_ADDRESS_TRANSLATOR_MAPPING
must be set appropriately.
REAPER_CASS_NATIVE_PROTOCOL_SSL_ENCRYPTION_ENABLED
Type: Boolean
Default: false
Allows Reaper to establish an encrypted connection when establishing a connection with Cassandra via the native protocol.