- How to change configuration parameters?
- Configuration parameters
- ThingsBoard Core/Rule Engine Parameters
- HTTP server parameters
- Zookeeper connection parameters
- Cluster stats parameters
- Plugins configuration parameters
- Security parameters
- Usage statistics parameters
- UI parameters
- Common database parameters
- Cassandra driver configuration parameters
- SQL configuration parameters
- Actor system parameters
- Platform integrations parameters
- Reports parameters
- Cache parameters
- Caffeine parameters
- Redis connection parameters
- Check new version updates parameters
- Spring freemarker configuration
- Spring CORS configuration
- The default timeout for asynchronous requests in milliseconds
- Spring serve gzip compressed static resources
- SQL DAO Configuration
- Audit log parameters
- Device connectivity state parameters
- JavaScript evaluator parameters
- Transport parameters
- Edges parameters
- License parameters
- Swagger parameters
- Queue parameters
- ThingsBoard event parameters
- ThingsBoard service parameters
- ThingsBoard metrics parameters
- Local Version Control parameters
- HTTP Transport Parameters
- MQTT Transport Parameters
- CoAP Transport Settings
- LWM2M Transport Parameters
- SNMP Transport Parameters
- Version Control Server Parameters
- logback.xml
- ThingsBoard Core/Rule Engine Parameters
This guide will help you to get familiar with ThingsBoard configuration files and parameters. We recommend to configure ThingsBoard using environment variables. This way you do not need to merge the configuration files when new platform release arrives. List of available configuration parameters and corresponding environment variables is located here.
How to change configuration parameters?
Monolithic deployment on Linux
If ThingsBoard is installed on Linux as a monolithic application, you may specify the environment variables in the thingsboard.conf file:
1
sudo nano /usr/share/thingsboard/conf/thingsboard.conf
Use simple example below to add new environment variable ‘HTTP_BIND_PORT’ with value ‘8081’.
1
2
...
export HTTP_BIND_PORT=8081
Monolithic deployment on Windows
If ThingsBoard is installed on Windows as a monolithic application, you may specify the environment variables in the thingsboard.yml file located in the following directory:
1
YOUR_INSTALL_DIR/conf
The configuration file is written in YAML.
All configuration parameters have corresponding environment variable name and default value. In order to change configuration parameter you can simply change it’s default value. For example:
1
2
server:
address: "${HTTP_BIND_ADDRESS:0.0.0.0}"
In this case, ‘HTTP_BIND_ADDRESS’ is environment variable name and ‘0.0.0.0’ is a default value.
Docker based deployment
If ThingsBoard is installed in a docker compose environment, you may edit the scripts and add environment variables for the corresponding containers. See docker documentation for more details.
K8S based deployment
If ThingsBoard is installed in a K8S environment, you may edit the scripts and add environment variables for the corresponding deployments/stateful sets. See K8S documentation for more details.
Configuration parameters
The parameters are grouped by system components. The list contains the name (address in thingsboard.yml file), environment variable, default value and description.
ThingsBoard Core/Rule Engine Parameters
HTTP server parameters
Parameter | Environment Variable | Default Value | Description |
server.address | HTTP_BIND_ADDRESS | 0.0.0.0 | HTTP Server bind address |
server.port | HTTP_BIND_PORT | 8080 | HTTP Server bind port |
server.ssl.enabled | SSL_ENABLED | false | Enable/disable SSL support |
server.ssl.credentials.type | SSL_CREDENTIALS_TYPE | PEM | Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore) |
server.ssl.credentials.pem.cert_file | SSL_PEM_CERT | server.pem | Path to the server certificate file (holds server certificate or certificate chain, may include server private key) |
server.ssl.credentials.pem.key_file | SSL_PEM_KEY | server_key.pem | Path to the server certificate private key file (optional) |
server.ssl.credentials.pem.key_password | SSL_PEM_KEY_PASSWORD | server_key_password | Server certificate private key password (optional) |
server.ssl.credentials.keystore.type | SSL_KEY_STORE_TYPE | PKCS12 | Type of the key store |
server.ssl.credentials.keystore.store_file | SSL_KEY_STORE | classpath:keystore/keystore.p12 | Path to the key store that holds the SSL certificate |
server.ssl.credentials.keystore.store_password | SSL_KEY_STORE_PASSWORD | thingsboard | Password used to access the key store |
server.ssl.credentials.keystore.key_alias | SSL_KEY_ALIAS | tomcat | Key alias |
server.ssl.credentials.keystore.key_password | SSL_KEY_PASSWORD | thingsboard | Password used to access the key |
server.http2.enabled | HTTP2_ENABLED | true | Enable/disable HTTP/2 support |
server.ssl.credentials.keystore.key_password | SSL_KEY_PASSWORD | thingsboard | Password used to access the key in the keystore |
server.http2 | HTTP2_ENABLED | true | Enable/disable HTTP/2 support (takes effect only if server SSL is enabled) |
server.log_controller_error_stack_trace | HTTP_LOG_CONTROLLER_ERROR_STACK_TRACE | false | Log errors with stacktrace when REST API throws exception |
server.ws.send_timeout | TB_SERVER_WS_SEND_TIMEOUT | 5000 | Timeout for sending data to client WebSocket session in milliseconds |
server.ws.ping_timeout | TB_SERVER_WS_PING_TIMEOUT | 30000 | |
server.ws.limits.max_sessions_per_tenant | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_TENANT | 0 | Limit the amount of WebSocket sessions per each tenant available on each server. Zero value disables limitation |
server.ws.limits.max_sessions_per_customer | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_CUSTOMER | 0 | Limit the amount of WebSocket sessions per each customer available on each server. Zero value disables limitation |
server.ws.limits.max_sessions_per_regular_user | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_REGULAR_USER | 0 | Limit the amount of WebSocket sessions per each regular user available on each server. Zero value disables limitation |
server.ws.limits.max_sessions_per_public_user | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SESSIONS_PER_PUBLIC_USER | 0 | Limit the amount of WebSocket sessions per each public user available on each server. Zero value disables limitation |
server.ws.limits.max_queue_per_ws_session | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_QUEUE_PER_WS_SESSION | 500 | Limit the size of pending message queue per each WebSocket session |
server.ws.limits.max_subscriptions_per_tenant | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_TENANT | 0 | Limit the amount of WebSocket subscriptions per each tenant available on each server. Zero value disables limitation |
server.ws.limits.max_subscriptions_per_customer | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_CUSTOMER | 0 | Limit the amount of WebSocket subscriptions per each customer available on each server. Zero value disables limitation |
server.ws.limits.max_subscriptions_per_regular_user | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_REGULAR_USER | 0 | Limit the amount of WebSocket subscriptions per each regular user available on each server. Zero value disables limitation |
server.ws.limits.max_subscriptions_per_public_user | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_SUBSCRIPTIONS_PER_PUBLIC_USER | 0 | Limit the amount of WebSocket subscriptions per each public user available on each server. Zero value disables limitation |
server.ws.limits.max_updates_per_session | TB_SERVER_WS_TENANT_RATE_LIMITS_MAX_UPDATES_PER_SESSION | 300:1,3000:60 | Limit the maximum data updates sent to WebSocket session for specified time intervals in seconds. Comma separated list of limit:seconds pairs |
server.ws.dynamic_page_link.refresh_interval | TB_SERVER_WS_DYNAMIC_PAGE_LINK_REFRESH_INTERVAL_SEC | 60 | Refresh rate of the dynamic alarm end entity data queries. |
server.ws.dynamic_page_link.refresh_pool_size | TB_SERVER_WS_DYNAMIC_PAGE_LINK_REFRESH_POOL_SIZE | 1 | Thread pool size to execute dynamic queries. |
server.ws.dynamic_page_link.max_per_user | TB_SERVER_WS_DYNAMIC_PAGE_LINK_MAX_PER_USER | 10 | Maximum number of dynamic queries per user. For example, no more then 10 alarm widgets opened by user simultaneously in all browsers. |
server.ws.max_entities_per_data_subscription | TB_SERVER_WS_MAX_ENTITIES_PER_DATA_SUBSCRIPTION | 10000 | Maximum number of entities returned for single entity subscription. For example, no more then 10 000 entities on the map widget. |
server.ws.max_entities_per_alarm_subscription | TB_SERVER_WS_MAX_ENTITIES_PER_ALARM_SUBSCRIPTION | 10000 | Maximum number of alarms returned for single alarm subscription. For example, no more then 10 000 alarms on the alarm widget. |
server.rest.limits.tenant.enabled | TB_SERVER_REST_LIMITS_TENANT_ENABLED | false | Enable/disable REST API rate limits per tenant |
server.rest.limits.tenant.configuration | TB_SERVER_REST_LIMITS_TENANT_CONFIGURATION | 100:1,2000:60 | Limit the maximum REST API calls per tenant on each server for specified time intervals in seconds. Comma separated list of limit:seconds pairs |
server.rest.limits.customer.enabled | TB_SERVER_REST_LIMITS_CUSTOMER_ENABLED | false | Enable/disable REST API rate limits per customer |
server.rest.limits.customer.configuration | TB_SERVER_REST_LIMITS_CUSTOMER_CONFIGURATION | 50:1,1000:60 | Limit the maximum REST API calls per customer on each server for specified time intervals in seconds. Comma separated list of limit:seconds pairs |
server.rest.server_side_rpc.min_timeout | MIN_SERVER_SIDE_RPC_TIMEOUT | 5000 | Minimum value of the server side RPC timeout |
server.rest.server_side_rpc.default_timeout | DEFAULT_SERVER_SIDE_RPC_TIMEOUT | 10000 | Default value of the server side RPC timeout |
Zookeeper connection parameters
Parameter | Environment Variable | Default Value | Description |
zk.enabled | ZOOKEEPER_ENABLED | false | Enable/disable zookeeper discovery service. Used for ThingsBoard cluster |
zk.url | ZOOKEEPER_URL | localhost:2181 | Zookeeper connect string |
zk.retry_interval_ms | ZOOKEEPER_RETRY_INTERVAL_MS | 3000 | Zookeeper retry interval in milliseconds |
zk.connection_timeout_ms | ZOOKEEPER_CONNECTION_TIMEOUT_MS | 3000 | Zookeeper connection timeout in milliseconds |
zk.session_timeout_ms | ZOOKEEPER_SESSION_TIMEOUT_MS | 3000 | Zookeeper session timeout in milliseconds |
zk.zk_dir | ZOOKEEPER_NODES_DIR | /thingsboard | Name of the directory in zookeeper 'filesystem' |
Cluster stats parameters
Parameter | Environment Variable | Default Value | Description |
cluster.stats.enabled | TB_CLUSTER_STATS_ENABLED | false | Enable/Disable the cluster statistics. Calculates number of messages sent between cluster nodes based on each type. |
cluster.stats.print_interval_ms | TB_CLUSTER_STATS_PRINT_INTERVAL_MS | 10000 | Interval of printing the cluster stats to the log file. |
Plugins configuration parameters
Parameter | Environment Variable | Default Value | Description |
plugins.scan_packages | PLUGINS_SCAN_PACKAGES | org.thingsboard.server.extensions,org.thingsboard.rule.engine | Comma separated package list used during classpath scanning for plugins |
Security parameters
Parameter | Environment Variable | Default Value | Description |
security.jwt.tokenExpirationTime | JWT_TOKEN_EXPIRATION_TIME | 9000 | User JWT Token expiration time in seconds |
security.jwt.refreshTokenExpTime | JWT_REFRESH_TOKEN_EXPIRATION_TIME | 604800 | User JWT Refresh Token expiration time in seconds |
security.jwt.tokenIssuer | JWT_TOKEN_ISSUER | thingsboard.io | User JWT Token issuer |
security.jwt.tokenSigningKey | JWT_TOKEN_SIGNING_KEY | thingsboardDefaultSigningKey | User JWT Token sign key |
security.user_token_access_enabled | SECURITY_USER_TOKEN_ACCESS_ENABLED | true | Enable/disable access to Tenant Administrators JWT token by System Administrator or Customer Users JWT token by Tenant Administrator |
security.user_login_case_sensitive | SECURITY_USER_LOGIN_CASE_SENSITIVE | true | Enable/disable case-sensitive username login |
security.claim.allowClaimingByDefault | SECURITY_CLAIM_ALLOW_CLAIMING_BY_DEFAULT | true | Enable/disable claiming devices, if false -> the device's [claimingAllowed] SERVER_SCOPE attribute must be set to [true] to allow claiming specific device |
security.claim.duration | SECURITY_CLAIM_DURATION | 86400000 | Time allowed to claim the device in milliseconds. 24 hours. Note this value must equal claimDevices.timeToLiveInMinutes value |
security.basic.enabled | SECURITY_BASIC_ENABLED | false | |
security.oauth2.loginProcessingUrl | SECURITY_OAUTH2_LOGIN_PROCESSING_URL | /login/oauth2/code/ | Redirect URL where access code from external user management system will be processed |
security.oauth2.githubMapper.emailUrl | SECURITY_OAUTH2_GITHUB_MAPPER_EMAIL_URL_KEY | https://api.github.com/user/emails |
Usage statistics parameters
Parameter | Environment Variable | Default Value | Description |
usage.stats.report.enabled | USAGE_STATS_REPORT_ENABLED | true | Enable/Disable collection of statistics about API usage. Collected on a system and tenant level by default. |
usage.stats.report.enabled_per_customer | USAGE_STATS_REPORT_PER_CUSTOMER_ENABLED | false | Enable/Disable collection of statistics about API usage on a customer level. |
usage.stats.report.interval | USAGE_STATS_REPORT_INTERVAL | 10 | Interval of reporting the statistics. By default, the summarized statistics is sent every 10 seconds. |
usage.stats.check.cycle | USAGE_STATS_CHECK_CYCLE | 60000 | Interval of checking the start of next cycle and re-enabling the blocked tenants/customers. |
UI parameters
Parameter | Environment Variable | Default Value | Description |
ui.dashboard.max_datapoints_limit | DASHBOARD_MAX_DATAPOINTS_LIMIT | 50000 | Maximum allowed datapoints fetched by widgets |
ui.help.base-url | UI_HELP_BASE_URL | https://raw.githubusercontent.com/thingsboard/thingsboard-pe-ui-help/release-3.3.3 | Base URL for UI Help Assets. This is a link to the raw files hosted in the dedicated GitHub project. You may fork the project, update the content of the files and put your own project link. The project should be public in order for any platfrom UI users to access help resources. |
Common database parameters
Parameter | Environment Variable | Default Value | Description |
database.ts_max_intervals | DATABASE_TS_MAX_INTERVALS | 700 | Max number of DB queries generated by single API call to fetch telemetry records |
database.ts.type | DATABASE_TS_TYPE | sql | Cassandra, sql, or timescale (for hybrid mode, DATABASE_TS_TYPE value should be cassandra, or timescale) |
database.ts_latest.type | DATABASE_TS_LATEST_TYPE | sql | Cassandra, sql, or timescale (for hybrid mode, DATABASE_TS_TYPE value should be cassandra, or timescale) |
Cassandra driver configuration parameters
Parameter | Environment Variable | Default Value | Description |
cassandra.cluster_name | CASSANDRA_CLUSTER_NAME | Thingsboard Cluster | Thingsboard cluster name |
cassandra.keyspace_name | CASSANDRA_KEYSPACE_NAME | thingsboard | Thingsboard keyspace name |
cassandra.url | CASSANDRA_URL | 127.0.0.1:9042 | Specify node list |
cassandra.local_datacenter | CASSANDRA_LOCAL_DATACENTER | datacenter1 | Specify local datacenter name |
cassandra.ssl.enabled | CASSANDRA_USE_SSL | false | Enable/disable secure connection |
cassandra.ssl.hostname_validation | CASSANDRA_SSL_HOSTNAME_VALIDATION | true | Enable/disable validation of Cassandra server hostname. If enabled, hostname of Cassandra server must match CN of server certificate |
cassandra.ssl.trust_store | CASSANDRA_SSL_TRUST_STORE | Set trust store for client authentication of server (optional, uses trust store from default SSLContext if not set) | |
cassandra.ssl.trust_store_password | CASSANDRA_SSL_TRUST_STORE_PASSWORD | The password for Cassandra trust store | |
cassandra.ssl.key_store | CASSANDRA_SSL_KEY_STORE | Set key store for server authentication of client (optional, uses key store from default SSLContext if not set). A key store is only needed if the Cassandra server requires client authentication | |
cassandra.ssl.key_store_password | CASSANDRA_SSL_KEY_STORE_PASSWORD | The password for Cassandra key store | |
cassandra.ssl.cipher_suites | CASSANDRA_SSL_CIPHER_SUITES | Comma separated list of cipher suites (optional, uses Java default cipher suites if not set) | |
cassandra.jmx | CASSANDRA_USE_JMX | false | Enable/disable JMX |
cassandra.metrics | CASSANDRA_USE_METRICS | false | Enable/disable metrics collection |
cassandra.compression | CASSANDRA_COMPRESSION | none | NONE SNAPPY LZ4 |
cassandra.init_timeout_ms | CASSANDRA_CLUSTER_INIT_TIMEOUT_MS | 300000 | Specify cassandra cluster initialization timeout in milliseconds (if no hosts available during startup) |
cassandra.init_retry_interval_ms | CASSANDRA_CLUSTER_INIT_RETRY_INTERVAL_MS | 3000 | Specify cassandra claster initialization retry interval (if no hosts available during startup) |
cassandra.max_requests_per_connection_local | CASSANDRA_MAX_REQUESTS_PER_CONNECTION_LOCAL | 32768 | Cassandra max local requests per connection |
cassandra.max_requests_per_connection_remote | CASSANDRA_MAX_REQUESTS_PER_CONNECTION_REMOTE | 32768 | Cassandra max remote requests per connection |
cassandra.credentials | CASSANDRA_USE_CREDENTIALS | false | Credential parameters |
cassandra.username | CASSANDRA_USERNAME | Specify your username | |
cassandra.password | CASSANDRA_PASSWORD | Specify your password | |
cassandra.socket.connect_timeout | CASSANDRA_SOCKET_TIMEOUT | 5000 | General Cassandra driver parameter |
cassandra.socket.read_timeout | CASSANDRA_SOCKET_READ_TIMEOUT | 20000 | General Cassandra driver parameter |
cassandra.socket.keep_alive | CASSANDRA_SOCKET_KEEP_ALIVE | true | General Cassandra driver parameter |
cassandra.socket.reuse_address | CASSANDRA_SOCKET_REUSE_ADDRESS | true | General Cassandra driver parameter |
cassandra.socket.so_linger | CASSANDRA_SOCKET_SO_LINGER | General Cassandra driver parameter | |
cassandra.socket.tcp_no_delay | CASSANDRA_SOCKET_TCP_NO_DELAY | false | General Cassandra driver parameter |
cassandra.socket.receive_buffer_size | CASSANDRA_SOCKET_RECEIVE_BUFFER_SIZE | General Cassandra driver parameter | |
cassandra.socket.send_buffer_size | CASSANDRA_SOCKET_SEND_BUFFER_SIZE | General Cassandra driver parameter | |
cassandra.query.read_consistency_level | CASSANDRA_READ_CONSISTENCY_LEVEL | ONE | Cassandra read consistency level |
cassandra.query.write_consistency_level | CASSANDRA_WRITE_CONSISTENCY_LEVEL | ONE | Cassandra write consistency level |
cassandra.query.default_fetch_size | CASSANDRA_DEFAULT_FETCH_SIZE | 2000 | Cassandra query fetch size |
cassandra.query.ts_key_value_partitioning | TS_KV_PARTITIONING | MONTHS | Specify partitioning size for timestamp key-value storage. Allowed values MINUTES, HOURS, DAYS, MONTHS, INDEFINITE |
cassandra.query.ts_key_value_partitions_max_cache_size | TS_KV_PARTITIONS_MAX_CACHE_SIZE | 100000 | The number of partitions that are cached in memory of each service. Useful to decrease load of re-inserting same partitions again. |
cassandra.query.ts_key_value_ttl | TS_KV_TTL | 0 | Timeseries Time To Live (in seconds) for Cassandra Record. 0 - record is never expired. |
cassandra.query.events_ttl | TS_EVENTS_TTL | 0 | Events(LC_EVENT, STATS) Time To Live (in seconds) for Cassandra Record. 0 - record is never expired. |
cassandra.query.debug_events_ttl | DEBUG_EVENTS_TTL | 604800 | Specify TTL of debug log in seconds. The current value corresponds to one week. |
cassandra.query.buffer_size | CASSANDRA_QUERY_BUFFER_SIZE | 200000 | Max number of Cassandra queries that are waiting for execution |
cassandra.query.concurrent_limit | CASSANDRA_QUERY_CONCURRENT_LIMIT | 1000 | MAx number of concurrent Cassandra queries |
cassandra.query.permit_max_wait_time | PERMIT_MAX_WAIT_TIME | 120000 | Max time in milliseconds query waits for execution |
cassandra.query.dispatcher_threads | CASSANDRA_QUERY_DISPATCHER_THREADS | 2 | Amount of threads to dispatch cassandra queries |
cassandra.query.callback_threads | CASSANDRA_QUERY_CALLBACK_THREADS | 4 | Amount of threads used to invoke callbacks for queries results |
cassandra.query.poll_ms | CASSANDRA_QUERY_POLL_MS | 50 | Cassandra query queue polling interval in milliseconds |
cassandra.query.rate_limit_print_interval_ms | CASSANDRA_QUERY_RATE_LIMIT_PRINT_MS | 10000 | Interval in milliseconds for printing Cassandra query queue statistic |
cassandra.query.set_null_values_enableds | CASSANDRA_QUERY_SET_NULL_VALUES_ENABLED | false | Set all data types values except target to null for the same ts on save |
cassandra.query.print_queries_freq | CASSANDRA_QUERY_PRINT_FREQ | 0 | Log one of cassandra queries with specified frequency (0 - logging is disabled) |
cassandra.query.tenant_rate_limits.enabled | CASSANDRA_QUERY_TENANT_RATE_LIMITS_ENABLED | false | Enable/disable cassandra query rate limits per tenant |
cassandra.query.tenant_rate_limits.configuration | CASSANDRA_QUERY_TENANT_RATE_LIMITS_CONFIGURATION | 1000:1,30000:60 | Limit the maximum Cassandra queries per tenant on each server for specified time intervals in seconds. Comma separated list of limit:seconds pairs. |
cassandra.query.tenant_rate_limits.print_tenant_names | CASSANDRA_QUERY_TENANT_RATE_LIMITS_PRINT_TENANT_NAMES | false | Whether to print rate-limited tenant names when printing Cassandra query queue statistic |
SQL configuration parameters
Parameter | Environment Variable | Default Value | Description |
sql.attributes.batch_size | SQL_ATTRIBUTES_BATCH_SIZE | 10000 | Batch size for persisting attribute updates |
sql.attributes.batch_max_delay | SQL_ATTRIBUTES_BATCH_MAX_DELAY_MS | 100 | Max timeout for attributes entries queue polling. Value set in milliseconds |
sql.attributes.stats_print_interval_ms | SQL_ATTRIBUTES_BATCH_STATS_PRINT_MS | 10000 | Interval in milliseconds for printing attributes updates statistic |
sql.attributes.batch_threads | SQL_ATTRIBUTES_BATCH_THREADS | 4 | Number of threads that execute batch insert/update statements for attributes |
sql.ts.batch_size | SQL_TS_BATCH_SIZE | 10000 | Batch size for persisting timeseries inserts |
sql.ts.batch_max_delay | SQL_TS_BATCH_MAX_DELAY_MS | 100 | Max timeout for time-series entries queue polling. Value set in milliseconds |
sql.ts.stats_print_interval_ms | SQL_TS_BATCH_STATS_PRINT_MS | 10000 | Interval in milliseconds for printing timeseries insert statistic |
sql.ts.batch_threads | SQL_TS_BATCH_THREADS | 4 | Number of threads that execute batch insert/update statements for time-series data |
sql.ts_latest.batch_size | SQL_TS_LATEST_BATCH_SIZE | 10000 | Batch size for persisting latest telemetry updates |
sql.ts_latest.batch_max_delay | SQL_TS_LATEST_BATCH_MAX_DELAY_MS | 100 | Max timeout for latest telemetry entries queue polling. The value set in milliseconds |
sql.ts_latest.stats_print_interval_ms | SQL_TS_LATEST_BATCH_STATS_PRINT_MS | 10000 | Interval in milliseconds for printing latest telemetry updates statistic |
sql.ts_latest.batch_threads | SQL_TS_LATEST_BATCH_THREADS | 4 | Number of threads that execute batch insert/update statements for latest data |
sql.ts_latest.update_by_latest_ts | SQL_TS_UPDATE_BY_LATEST_TIMESTAMP | true | Update latest values only if the timestamp of the new record is greater or equals than timestamp of the previously saved latest value. Latest values are stored separately from historical values for fast lookup from DB. Insert of historical value happens in any case. |
sql.batch_sort | SQL_BATCH_SORT | false | Specify whether to sort entities before batch update. Should be enabled for cluster mode to avoid deadlocks |
sql.remove_null_chars | SQL_REMOVE_NULL_CHARS | true | Specify whether to remove null characters from strValue of attributes and timeseries before insert |
sql.log_queries | SQL_LOG_QUERIES | false | Log slow SQL queries. Slow queries are determined using SQL_LOG_QUERIES_THRESHOLD threshold |
sql.log_queries_threshold | SQL_LOG_QUERIES_THRESHOLD | 5000 | Threshold of slow SQL queries to log. |
sql.postgres.ts_key_value_partitioning | SQL_POSTGRES_TS_KV_PARTITIONING | MONTHS | Specify partitioning size for timestamp key-value storage. Example: DAYS, MONTHS, YEARS, INDEFINITE |
sql.timescale.chunk_time_interval | SQL_TIMESCALE_CHUNK_TIME_INTERVAL | 604800000 | Specify Interval size for new data chunks storage |
sql.timescale.batch_threads | SQL_TIMESCALE_BATCH_THREADS | 4 | Number of threads that execute batch insert/update statements for timeseries data when using Timescale DB. |
sql.ttl.ts.enabled | SQL_TTL_TS_ENABLED | true | The parameter to specify whether to use TTL (Time To Live) for timeseries records |
sql.ttl.ts.execution_interval_ms | SQL_TTL_TS_EXECUTION_INTERVAL | 86400000 | The parameter to specify the period of execution TTL task for timeseries records. Value set in milliseconds. Default value corresponds to one day |
sql.ttl.ts.ts_key_value_ttl | SQL_TTL_TS_TS_KEY_VALUE_TTL | 0 | The parameter to specify system TTL(Time To Live) value for timeseries records. Value set in seconds. 0 - records are never expired. System TTL value can be overwritten for a particular Tenant, or parent Customer entity by setting the server-side attribute TTL to the corresponding Tenant or parent Customer entity. Please, note that the value should be set as long value, otherwise the TTL will be used from the higher level(Tenant or System) |
sql.ttl.events.enabled | SQL_TTL_EVENTS_ENABLED | true | The parameter to specify whether to use TTL (Time To Live) for events records. |
sql.ttl.events.execution_interval_ms | SQL_TTL_EVENTS_EXECUTION_INTERVAL | 2220000 | The parameter to specify the period of execution TTL task for events records. Value set in milliseconds. (max random initial delay and fixed period). 37 minutes to avoid common interval spikes |
sql.ttl.events.events_ttl | SQL_TTL_EVENTS_EVENTS_TTL | 0 | The parameter to specify TTL(Time To Live) value for Events(LC_EVENT, STATS) records. Value set in seconds. 0 - records are never expired. |
sql.ttl.events.debug_events_ttl | SQL_TTL_EVENTS_DEBUG_EVENTS_TTL | 604800 | The parameter to specify TTL(Time To Live) value for Debug Events(DEBUG_CONVERTER, DEBUG_INTEGRATION, DEBUG_RULE_NODE, DEBUG_RULE_CHAIN) records. Value set in seconds. 0 - records are never expired. Default value corresponds to one week. |
sql.ttl.edge_events.enabled | SQL_TTL_EDGE_EVENTS_ENABLED | true | Enable/disable TTL(Time To Live) for edge events |
sql.ttl.edge_events.execution_interval_ms | SQL_TTL_EDGE_EVENTS_EXECUTION_INTERVAL | 86400000 | Number of milliseconds. The current value corresponds to one day |
sql.ttl.edge_events.edge_events_ttl | SQL_TTL_EDGE_EVENTS_TTL | 2628000 | Number of seconds. The current value corresponds to one month |
sql.ttl.alarms.checking_interval | SQL_ALARMS_TTL_CHECKING_INTERVAL | 7200000 | Number of milliseconds. The current value corresponds to two hours |
sql.ttl.alarms.removal_batch_size | SQL_ALARMS_TTL_REMOVAL_BATCH_SIZE | 3000 | To delete outdated alarms not all at once but in batches |
sql.ttl.rpc.enabled | SQL_TTL_RPC_ENABLED | true | Parameter to enable or disable TTL(Time To Live) for Persistent RPC |
sql.ttl.rpc.checking_interval | SQL_RPC_TTL_CHECKING_INTERVAL | 7200000 | Parameter to specify how often TTL(Time To Live) will be checked.Number of milliseconds. The current value corresponds to two hours |
sql.relations.max_level | SQL_RELATIONS_MAX_LEVEL | 50 | This value has to be reasonable small to prevent infinite recursion as early as possible |
Actor system parameters
Parameter | Environment Variable | Default Value | Description |
actors.system.throughput | ACTORS_SYSTEM_THROUGHPUT | 5 | Number of messages the actor system will process per actor before switching to processing of messages for next actor. |
actors.system.scheduler_pool_size | ACTORS_SYSTEM_SCHEDULER_POOL_SIZE | 1 | Thread pool size for actor system scheduler. |
actors.system.max_actor_init_attempts | ACTORS_SYSTEM_MAX_ACTOR_INIT_ATTEMPTS | 10 | Maximum number of attempts to init the actor before disabling the actor. |
actors.system.app_dispatcher_pool_size | ACTORS_SYSTEM_APP_DISPATCHER_POOL_SIZE | 1 | Thread pool size for main actor system dispatcher. |
actors.system.tenant_dispatcher_pool_size | ACTORS_SYSTEM_TENANT_DISPATCHER_POOL_SIZE | 2 | Thread pool size for actor system dispatcher that process messages for tenant actors. |
actors.system.device_dispatcher_pool_size | ACTORS_SYSTEM_DEVICE_DISPATCHER_POOL_SIZE | 4 | Thread pool size for actor system dispatcher that process messages for device actors. |
actors.system.rule_dispatcher_pool_size | ACTORS_SYSTEM_RULE_DISPATCHER_POOL_SIZE | 4 | Thread pool size for actor system dispatcher that process messages for rule engine (chain/node) actors. |
actors.tenant.create_components_on_init | ACTORS_TENANT_CREATE_COMPONENTS_ON_INIT | true | Create components in initialization |
actors.session.max_concurrent_sessions_per_device | ACTORS_MAX_CONCURRENT_SESSION_PER_DEVICE | 1 | Max number of concurrent sessions per device |
actors.session.sync.timeout | ACTORS_SESSION_SYNC_TIMEOUT | 10000 | Default timeout for processing request using synchronous session (HTTP, CoAP) in milliseconds |
actors.rule.db_callback_thread_pool_size | ACTORS_RULE_DB_CALLBACK_THREAD_POOL_SIZE | 50 | Specify thread pool size for database request callbacks executor service |
actors.rule.js_thread_pool_size | ACTORS_RULE_JS_THREAD_POOL_SIZE | 50 | Specify thread pool size for javascript executor service |
actors.rule.mail_thread_pool_size | ACTORS_RULE_MAIL_THREAD_POOL_SIZE | 50 | Specify thread pool size for mail sender executor service |
actors.rule.sms_thread_pool_size | ACTORS_RULE_SMS_THREAD_POOL_SIZE | 50 | Specify thread pool size for sms sender executor service |
actors.rule.allow_system_mail_service | ACTORS_RULE_ALLOW_SYSTEM_MAIL_SERVICE | true | Whether to allow usage of system mail service for rules |
actors.rule.allow_system_sms_service | ACTORS_RULE_ALLOW_SYSTEM_SMS_SERVICE | true | Whether to allow usage of system sms service for rules |
actors.rule.external_call_thread_pool_size | ACTORS_RULE_EXTERNAL_CALL_THREAD_POOL_SIZE | 50 | Specify thread pool size for external call service |
actors.rule.chain.error_persist_frequency | ACTORS_RULE_CHAIN_ERROR_FREQUENCY | 3000 | Errors for particular actor are persisted once per specified amount of milliseconds |
actors.rule.chain.debug_mode_rate_limits_per_tenant.enabled | ACTORS_RULE_CHAIN_DEBUG_MODE_RATE_LIMITS_PER_TENANT_ENABLED | true | Enable/Disable the rate limit of persisted debug events for all rule nodes per tenant. |
actors.rule.chain.debug_mode_rate_limits_per_tenant.configuration | ACTORS_RULE_CHAIN_DEBUG_MODE_RATE_LIMITS_PER_TENANT_CONFIGURATION | 50000:3600 | The value of rate limit. By default, no more then 50 thousand events per hour. |
actors.rule.node.error_persist_frequency | ACTORS_RULE_NODE_ERROR_FREQUENCY | 3000 | Errors for particular actor are persisted once per specified amount of milliseconds |
actors.rule.transaction.queue_size | ACTORS_RULE_TRANSACTION_QUEUE_SIZE | 15000 | Size of queues which store messages for transaction rule nodes |
actors.rule.transaction.duration | ACTORS_RULE_TRANSACTION_DURATION | 60000 | Time in milliseconds for transaction to complete |
actors.rpc.max_retries | ACTORS_RPC_MAX_RETRIES | 5 | Maximum number of persistent RPC call retries in case of failed requests delivery. |
actors.rpc.sequential | ACTORS_RPC_SEQUENTIAL | false | Enable/Disable sequential processing of RPC calls per device. |
actors.statistics.enabled | ACTORS_STATISTICS_ENABLED | true | Enable/disable actor statistics |
actors.statistics.js_print_interval_ms | ACTORS_JS_STATISTICS_PRINT_INTERVAL_MS | 10000 | Frequency of printing the JS executor statistics |
actors.statistics.persist_frequency | ACTORS_STATISTICS_PERSIST_FREQUENCY | 3600000 | Actors statistic persistence frequency in milliseconds |
Platform integrations parameters
Parameter | Environment Variable | Default Value | Description |
integrations.statistics.enabled | INTEGRATIONS_STATISTICS_ENABLED | true | Enable/disable integrations statistics |
integrations.statistics.persist_frequency | INTEGRATIONS_STATISTICS_PERSIST_FREQUENCY | 3600000 | |
integrations.reinit.enabled | INTEGRATIONS_REINIT_ENABLED | true | |
integrations.reinit.frequency | INTEGRATIONS_REINIT_FREQUENCY | 300000 | |
integrations.allow_Local_network_hosts | INTEGRATIONS_ALLOW_LOCAL_NETWORK_HOSTS | true | |
integrations.rpc.enabled | INTEGRATIONS_RPC_ENABLED | true | |
integrations.rpc.port | INTEGRATIONS_RPC_PORT | 9090 | |
integrations.rpc.ssl.enabled | INTEGRATIONS_RPC_SSL_ENABLED | false | Enable/disable SSL support |
integrations.rpc.ssl.cert | INTEGRATIONS_RPC_SSL_CERT | certChainFile.pem | |
integrations.rpc.ssl.privateKey | INTEGRATIONS_RPC_SSL_PRIVATE_KEY | privateKeyFile.pem | |
integrations.rpc.client_max_keep_alive_time_sec | INTEGRATIONS_RPC_CLIENT_MAX_KEEP_ALIVE_TIME_SEC | 300 | Disconnect a client if no keepalive ping received in the specified time |
Reports parameters
Parameter | Environment Variable | Default Value | Description |
reports.server.endpointUrl | REPORTS_SERVER_ENDPOINT_URL | http://localhost:8383 | |
reports.rate_limits.enabled | REPORTS_TENANT_RATE_LIMITS_ENABLED | false | Enable/disable reports tenant rate limits |
reports.rate_limits.configuration | REPORTS_TENANT_RATE_LIMITS_CONFIGURATION | 5:300 | |
reports.scheduler.min_interval | REPORTS_SCHEDULER_MIN_INTERVAL_IN_SEC | 60 | Minimum interval between subsequent scheduler events. Applicable for timer based events |
Cache parameters
Parameter | Environment Variable | Default Value | Description |
cache.type | CACHE_TYPE | caffeine | Cache provider. caffeine for stand alone installations and redis for clustered installations |
cache.maximumPoolSize | CACHE_MAXIMUM_POOL_SIZE | 16 | Maximum pool size to process futures that calls the external cache |
cache.attributes.enabled | CACHE_ATTRIBUTES_ENABLED | true | Cache attribute request in caffeine or redis |
Caffeine parameters
Parameter | Environment Variable | Default Value | Description |
caffeine.specs.relations.timeToLiveInMinutes | 1440 | Relations cache TTL | |
caffeine.specs.relations.maxSize | 10000 | Relations cache max size. maxSize: 0 means the cache is disabled | |
caffeine.specs.deviceCredentials.timeToLiveInMinutes | 1440 | deviceCredentials cache TTL | |
caffeine.specs.deviceCredentials.maxSize | 10000 | deviceCredentials cache max size | |
caffeine.specs.devices.timeToLiveInMinutes | 1440 | devices cache TTL | |
caffeine.specs.devices.maxSize | 10000 | devices cache max size | |
caffeine.specs.sessions.timeToLiveInMinutes | 1440 | sessions cache TTL | |
caffeine.specs.sessions.maxSize | 10000 | sessions cache max size | |
caffeine.specs.assets.timeToLiveInMinutes | 1440 | assets cache TTL | |
caffeine.specs.assets.maxSize | 10000 | assets cache max size | |
caffeine.specs.downlink.timeToLiveInMinutes | 1440 | downlink cache TTL | |
caffeine.specs.downlink.maxSize | 100000 | downlink cache max size | |
caffeine.specs.entityViews.timeToLiveInMinutes | 1440 | entityViews cache TTL | |
caffeine.specs.entityViews.maxSize | 10000 | entityViews cache max size | |
caffeine.specs.roles.timeToLiveInMinutes | 1440 | roles cache TTL | |
caffeine.specs.roles.maxSize | 10000 | roles cache max size | |
caffeine.specs.permissions.timeToLiveInMinutes | 1440 | permissions cache TTL | |
caffeine.specs.permissions.maxSize | 10000 | permissions cache max size | |
caffeine.specs.owners.timeToLiveInMinutes | 1440 | owners cache TTL | |
caffeine.specs.owners.maxSize | 100000 | owners cache max size | |
caffeine.specs.claimDevices.timeToLiveInMinutes | 1440 | claimDevices cache TTL | |
caffeine.specs.claimDevices.maxSize | 10000 | claimDevices cache max size | |
caffeine.specs.securitySettings.timeToLiveInMinutes | 1440 | securitySettings cache TTL | |
caffeine.specs.securitySettings.maxSize | 10000 | securitySettings cache max size | |
caffeine.specs.remoteIntegrations.timeToLiveInMinutes | 1440 | remoteIntegrations cache TTL | |
caffeine.specs.remoteIntegrations.maxSize | 10000 | remoteIntegrations cache max size | |
caffeine.specs.tenantProfiles.timeToLiveInMinutes | 1440 | tenantProfiles cache TTL | |
caffeine.specs.tenantProfiles.maxSize | 10000 | tenantProfiles cache max size | |
caffeine.specs.deviceProfiles.timeToLiveInMinutes | 1440 | deviceProfiles cache TTL | |
caffeine.specs.deviceProfiles.maxSize | 10000 | deviceProfiles cache max size | |
caffeine.specs.attributes.timeToLiveInMinutes | 1440 | attributes cache TTL | |
caffeine.specs.attributes.maxSize | 100000 | attributes cache max size | |
caffeine.specs.tokensOutdatageTime.timeToLiveInMinutes | 20000 | tokensOutdatageTime cache TTL | |
caffeine.specs.tokensOutdatageTime.maxSize | 10000 | tokensOutdatageTime cache max size | |
caffeine.specs.otaPackages.timeToLiveInMinutes | 60 | otaPackages cache TTL | |
caffeine.specs.otaPackages.maxSize | 10 | otaPackages cache max size | |
caffeine.specs.otaPackagesData.timeToLiveInMinutes | 60 | otaPackagesData cache TTL | |
caffeine.specs.otaPackagesData.maxSize | 10 | otaPackagesData cache max size | |
caffeine.specs.edges.timeToLiveInMinutes | 1440 | edges cache TTL | |
caffeine.specs.edges.maxSize | 10000 | edges cache max size |
Redis connection parameters
Parameter | Environment Variable | Default Value | Description |
redis.connection.type | REDIS_CONNECTION_TYPE | standalone | Redis connection type - standalone or cluster |
redis.standalone.host | REDIS_HOST | localhost | Redis connection host |
redis.standalone.port | REDIS_PORT | 6379 | Redis connection port |
redis.standalone.useDefaultClientConfig | REDIS_USE_DEFAULT_CLIENT_CONFIG | true | Redis connection port |
redis.standalone.clientName | REDIS_CLIENT_NAME | standalone | This value may be used only if you used not default ClientConfig |
redis.standalone.connectTimeout | REDIS_CLIENT_CONNECT_TIMEOUT | 30000 | This value may be used only if you used not default ClientConfig |
redis.standalone.readTimeout | REDIS_CLIENT_READ_TIMEOUT | 60000 | This value may be used only if you used not default ClientConfig |
redis.standalone.usePoolConfig | REDIS_CLIENT_USE_POOL_CONFIG | false | This value may be used only if you used not default ClientConfig |
redis.cluster.nodes | REDIS_NODES | Comma-separated list of "host:port" pairs to bootstrap from | |
redis.cluster.max-redirects | REDIS_MAX_REDIRECTS | 12 | Maximum number of redirects to follow when executing commands across the cluster |
redis.cluster.useDefaultPoolConfig | REDIS_USE_DEFAULT_POOL_CONFIG | true | Use default redis pool configuration. If set to "true", the REDIS_POOL_CONFIG_* properties will be ignored. |
redis.db | REDIS_DB | 0 | Redis database index |
redis.password | REDIS_PASSWORD | Redis database password | |
redis.pool_config.maxTotal | REDIS_POOL_CONFIG_MAX_TOTAL | 128 | General redis pool settings |
redis.pool_config.maxIdle | REDIS_POOL_CONFIG_MAX_IDLE | 128 | General redis pool settings |
redis.pool_config.minIdle | REDIS_POOL_CONFIG_MIN_IDLE | 16 | General redis pool settings |
redis.pool_config.testOnBorrow | REDIS_POOL_CONFIG_TEST_ON_BORROW | true | General redis pool settings |
redis.pool_config.testOnReturn | REDIS_POOL_CONFIG_TEST_ON_RETURN | true | General redis pool settings |
redis.pool_config.testWhileIdle | REDIS_POOL_CONFIG_TEST_WHILE_IDLE | true | General redis pool settings |
redis.pool_config.minEvictableMs | REDIS_POOL_CONFIG_MIN_EVICTABLE_MS | 60000 | General redis pool settings |
redis.pool_config.evictionRunsMs | REDIS_POOL_CONFIG_EVICTION_RUNS_MS | 30000 | General redis pool settings |
redis.pool_config.maxWaitMills | REDIS_POOL_CONFIG_MAX_WAIT_MS | 60000 | General redis pool settings |
redis.pool_config.numberTestsPerEvictionRun | REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN | 3 | General redis pool settings |
redis.pool_config.blockWhenExhausted | REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED | true | General redis pool settings |
Check new version updates parameters
Parameter | Environment Variable | Default Value | Description |
updates.enabled | UPDATES_ENABLED | true | Enable/disable ThingsBoard updates checking. If enabled, the platform will periodically request information about new releases from updates.thingsboard.io |
Spring freemarker configuration
Parameter | Environment Variable | Default Value | Description |
spring.freemarker.checkTemplateLocation | false |
Spring CORS configuration
Parameter | Environment Variable | Default Value | Description |
spring.mvc.cors.mappings.[/api/**].allowed-origins | * | Comma-separated list of origins to allow. '*' allows all origins. When not set,CORS support is disabled | |
spring.mvc.cors.mappings.[/api/**].allowed-methods | * | Comma-separated list of methods to allow. '*' allows all methods | |
spring.mvc.cors.mappings.[/api/**].allowed-headers | * | Comma-separated list of headers to allow in a request. '*' allows all headers | |
spring.mvc.cors.mappings.[/api/**].max-age | 1800 | How long, in seconds, the response from a pre-flight request can be cached by clients | |
spring.mvc.cors.mappings.[/api/**].allow-credentials | true | Set whether credentials are supported. When not set, credentials are not supported |
The default timeout for asynchronous requests in milliseconds
Parameter | Environment Variable | Default Value | Description |
spring.mvc.async.request-timeout | SPRING_MVC_ASYNC_REQUEST_TIMEOUT | 30000 | Timeout for HTTP requests. |
Spring serve gzip compressed static resources
Parameter | Environment Variable | Default Value | Description |
spring.resources.chain.compressed | true | Enable/disable compression of static resources | |
spring.resources.chain.strategy.content.enabled | true | ||
spring.servlet.multipart.max-file-size | 50MB | ||
spring.servlet.multipart.max-request-size | 50MB | ||
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation | true | ||
spring.jpa.properties.hibernate.order_by.default_null_ordering | last |
SQL DAO Configuration
Parameter | Environment Variable | Default Value | Description |
spring.data.jpa.repositories.enabled | true | ||
spring.jpa.properties.javax.persistence.query.timeout | JAVAX_PERSISTENCE_QUERY_TIMEOUT | 30000 | General timeout for JDBC queries |
spring.jpa.open-in-view | false | ||
spring.jpa.hibernate.ddl-auto | none | ||
spring.datasource.driverClassName | SPRING_DRIVER_CLASS_NAME | org.postgresql.Driver | Database driver for Spring JPA - org.postgresql.Driver |
spring.datasource.url | SPRING_DATASOURCE_URL | jdbc:postgresql://localhost:5432/thingsboard | Database URL |
spring.datasource.username | SPRING_DATASOURCE_USERNAME | postgres | Database Username |
spring.datasource.password | SPRING_DATASOURCE_PASSWORD | postgres | Database password |
spring.datasource.hikari.maximumPoolSize | SPRING_DATASOURCE_MAXIMUM_POOL_SIZE | 16 | This property allows the number of connections in the pool to increase as demand increases. At the same time, the property ensures that the pool doesn't grow to the point of exhausting a system's resources, which ultimately affects an application's performance and availability. |
Audit log parameters
Parameter | Environment Variable | Default Value | Description |
audit-log.enabled | AUDIT_LOG_ENABLED | true | Enable/disable audit log functionality. |
audit-log.by_tenant_partitioning | AUDIT_LOG_BY_TENANT_PARTITIONING | MONTHS | Specify partitioning size for audit log by tenant id storage. Example MINUTES, HOURS, DAYS, MONTHS |
audit-log.default_query_period | AUDIT_LOG_DEFAULT_QUERY_PERIOD | 30 | Number of days as history period if startTime and endTime are not specified |
audit-log.logging-level.mask."device" | AUDIT_LOG_MASK_DEVICE | W | Device logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."asset" | AUDIT_LOG_MASK_ASSET | W | Asset logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."dashboard" | AUDIT_LOG_MASK_DASHBOARD | W | Dashboard logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."customer" | AUDIT_LOG_MASK_CUSTOMER | W | Customer logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."user" | AUDIT_LOG_MASK_USER | W | User logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."rule_chain" | AUDIT_LOG_MASK_RULE_CHAIN | W | Rule Chain logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."alarm" | AUDIT_LOG_MASK_ALARM | W | Alarm logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."integration" | AUDIT_LOG_MASK_INTEGRATION | W | Integration logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."converter" | AUDIT_LOG_MASK_CONVERTER | W | Converter logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."entity_group" | AUDIT_LOG_MASK_ENTITY_GROUP | W | Entity Group logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."scheduler_event" | AUDIT_LOG_MASK_SCHEDULER_EVENT | W | Scheduler Event logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."blob_entity" | AUDIT_LOG_MASK_BLOB_ENTITY | W | Blob Entity logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."entity_view" | AUDIT_LOG_MASK_ENTITY_VIEW | W | Entity View logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."device_profile" | AUDIT_LOG_MASK_DEVICE_PROFILE | W | Device Profile logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."edge" | AUDIT_LOG_MASK_EDGE | W | Edge logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."tb_resource" | AUDIT_LOG_MASK_RESOURCE | W | ThingsBoard resource logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."ota_package" | AUDIT_LOG_MASK_OTA_PACKAGE | W | Ota package logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."role" | AUDIT_LOG_MASK_ROLE | W | Role logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.logging-level.mask."group_permission" | AUDIT_LOG_MASK_GROUP_PERMISSION | W | Group Permission logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) |
audit-log.sink.type | AUDIT_LOG_SINK_TYPE | none | Type of external sink system to forward audit logs records. Possible options: none, elasticsearch |
audit-log.sink.index_pattern | AUDIT_LOG_SINK_INDEX_PATTERN | @{TENANT}_AUDIT_LOG_@{DATE} | Name of the index where audit logs stored. Index name could contain next placeholders (not mandatory): @{TENANT} - substituted by tenant ID @{DATE} - substituted by current date in format provided in audit_log.sink.date_format |
audit-log.sink.date_format | AUDIT_LOG_SINK_DATE_FORMAT | YYYY.MM.DD | Date format. Details of the pattern could be found in this link |
audit-log.sink.scheme_name | AUDIT_LOG_SINK_SCHEME_NAME | http | http or https |
audit-log.sink.host | AUDIT_LOG_SINK_HOST | localhost | Host of external sink system |
audit-log.sink.port | AUDIT_LOG_SINK_PORT | 9200 | Port of external sink system |
audit-log.sink.user_name | AUDIT_LOG_SINK_USER_NAME | Username used to access external sink system | |
audit-log.sink.password | AUDIT_LOG_SINK_PASSWORD | Password used to access external sink system |
Device connectivity state parameters
Parameter | Environment Variable | Default Value | Description |
state.defaultInactivityTimeoutInSec | DEFAULT_INACTIVITY_TIMEOUT | 600 | Device inactivity timeout in seconds |
state.defaultStateCheckIntervalInSec | DEFAULT_STATE_CHECK_INTERVAL | 60 | Device inactivity check period in seconds |
state.persistToTelemetry | PERSIST_STATE_TO_TELEMETRY | false |
JavaScript evaluator parameters
Parameter | Environment Variable | Default Value | Description |
js.evaluator | JS_EVALUATOR | local | Javascript evaluator type - local (Built-in JVM JavaScript environment properties) or remote (Remote JavaScript environment ) |
js.local.use_js_sandbox | USE_LOCAL_JS_SANDBOX | true | Use Sandboxed (secured) JVM JavaScript environment |
js.local.monitor_thread_pool_size | LOCAL_JS_SANDBOX_MONITOR_THREAD_POOL_SIZE | 4 | Specify thread pool size for JavaScript sandbox resource monitor |
js.local.max_cpu_time | LOCAL_JS_SANDBOX_MAX_CPU_TIME | 8000 | Maximum CPU time in milliseconds allowed for script execution |
js.local.max_errors | LOCAL_JS_SANDBOX_MAX_ERRORS | 3 | Maximum allowed JavaScript execution errors before JavaScript will be blacklisted |
js.local.max_requests_timeout | LOCAL_JS_MAX_REQUEST_TIMEOUT | 0 | JS Eval max request timeout. 0 - no timeout |
js.local.max_black_list_duration_sec | LOCAL_JS_SANDBOX_MAX_BLACKLIST_DURATION_SEC | 60 | Maximum time in seconds for black listed function to stay in the list |
js.local.stats.enabled | TB_JS_LOCAL_STATS_ENABLED | false | Enable/Disable stats collection for local JS executor |
js.local.stats.print_interval_ms | TB_JS_LOCAL_STATS_PRINT_INTERVAL_MS | 10000 | Interval of logging for local JS executor stats |
js.remote.max_errors | REMOTE_JS_SANDBOX_MAX_ERRORS | 3 | Maximum allowed JavaScript execution errors before JavaScript will be blacklisted |
js.remote.max_black_list_duration_sec | REMOTE_JS_SANDBOX_MAX_BLACKLIST_DURATION_SEC | 60 | Maximum time in seconds for black listed function to stay in the list |
js.remote.stats.enabled | TB_JS_REMOTE_STATS_ENABLED | false | Enable/Disable stats collection for remote JS executor |
js.remote.stats.print_interval_ms | TB_JS_REMOTE_STATS_PRINT_INTERVAL_MS | 10000 | Interval of logging for remote JS executor stats |
Transport parameters
Parameter | Environment Variable | Default Value | Description |
transport.sessions.inactivity_timeout | TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT | 300000 | Inactivity timeout for device session in transport service. The last activity time of the device session is updated if device sends any message, including keepalive messages. |
transport.sessions.report_timeout | TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT | 3000 | Interval of periodic check for expired sessions and report of the changes to session last activity time. |
transport.rate_limits.enabled | TB_TRANSPORT_RATE_LIMITS_ENABLED | false | |
transport.rate_limits.tenant | TB_TRANSPORT_RATE_LIMITS_TENANT | 1000:1,20000:60 | |
transport.rate_limits.device | TB_TRANSPORT_RATE_LIMITS_DEVICE | 10:1,300:60 | |
transport.json.type_cast_enabled | JSON_TYPE_CAST_ENABLED | true | Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON |
transport.json.max_string_value_length | JSON_MAX_STRING_VALUE_LENGTH | 0 | Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check) |
transport.client_side_rpc.timeout | CLIENT_SIDE_RPC_TIMEOUT | 60000 | |
transport.api_enabled | TB_TRANSPORT_API_ENABLED | true | Enable/disable http/mqtt/coap transport protocols (has higher priority than certain protocol's 'enabled' property) |
transport.log.enabled | TB_TRANSPORT_LOG_ENABLED | true | Enable/Disable log of transport messages to telemetry. For example, logging of LwM2M registration update. |
transport.log.max_length | TB_TRANSPORT_LOG_MAX_LENGTH | 1024 | Maximum length of the log message. The content will be truncated to the specified value if needed. |
transport.stats.enabled | TB_TRANSPORT_STATS_ENABLED | true | Enable/Disable collection of transport statistics |
transport.stats.print-interval-ms | TB_TRANSPORT_STATS_PRINT_INTERVAL_MS | 60000 | Interval of transport statistics logging. |
Local HTTP transport parameters
Parameter | Environment Variable | Default Value | Description |
transport.http.enabled | HTTP_ENABLED | true | Enable/Disable local HTTP transport protocol |
Parameter | Environment Variable | Default Value | Description |
transport.http.request_timeout | HTTP_REQUEST_TIMEOUT | 60000 | HTTP request processing timeout in milliseconds |
transport.http.max_request_timeout | HTTP_MAX_REQUEST_TIMEOUT | 300000 | HTTP maximum request processing timeout in milliseconds |
Local MQTT transport parameters
Parameter | Environment Variable | Default Value | Description |
transport.mqtt.enabled | MQTT_ENABLED | true | Enable/Disable local MQTT transport protocol |
Parameter | Environment Variable | Default Value | Description |
transport.mqtt.bind_address | MQTT_BIND_ADDRESS | 0.0.0.0 | MQTT bind address |
transport.mqtt.bind_port | MQTT_BIND_PORT | 1883 | MQTT bind port |
transport.mqtt.timeout | MQTT_TIMEOUT | 10000 | MQTT processing timeout in milliseconds |
transport.mqtt.msg_queue_size_per_device_limit | MQTT_MSG_QUEUE_SIZE_PER_DEVICE_LIMIT | 100 | Messages await in the queue before device connected state. This limit works on low level before TenantProfileLimits mechanism |
transport.mqtt.netty.leak_detector_level | NETTY_LEAK_DETECTOR_LVL | DISABLED | Netty leak detector level |
transport.mqtt.netty.boss_group_thread_count | NETTY_BOSS_GROUP_THREADS | 1 | Netty BOSS threads count |
transport.mqtt.netty.worker_group_thread_count | NETTY_WORKER_GROUP_THREADS | 12 | Netty worker threads count |
transport.mqtt.netty.max_payload_size | NETTY_MAX_PAYLOAD_SIZE | 65536 | Max payload size in bytes |
transport.mqtt.netty.so_keep_alive | NETTY_SO_KEEPALIVE | false | |
transport.mqtt.ssl.enabled | MQTT_SSL_ENABLED | false | Enable/disable MQTTS support |
transport.mqtt.ssl.bind_address | MQTT_SSL_BIND_ADDRESS | 0.0.0.0 | MMQTT SSL bind address |
transport.mqtt.ssl.bind_port | MQTT_SSL_BIND_PORT | 8883 | MQTT SSL bind port |
transport.mqtt.ssl.protocol | MQTT_SSL_PROTOCOL | TLSv1.2 | SSL protocol: See this link |
transport.mqtt.ssl.credentials.type. | MQTT_SSL_CREDENTIALS_TYPE | PEM | Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore) |
transport.mqtt.ssl.credentials.pem.cert_file | MQTT_SSL_PEM_CERT | mqttserver.pem | Path to the server certificate file (holds server certificate or certificate chain, may include server private key) |
transport.mqtt.ssl.credentials.pem.key_file | MQTT_SSL_PEM_KEY | mqttserver_key.pem | Path to the server certificate private key file (optional) |
transport.mqtt.ssl.credentials.pem.key_password | MQTT_SSL_PEM_KEY_PASSWORD | server_key_password | Server certificate private key password (optional) |
transport.mqtt.ssl.credentials.keystore.type | MQTT_SSL_KEY_STORE_TYPE | PKCS12 | Type of the key store: PKCS12 or JKS |
transport.mqtt.ssl.credentials.keystore.store_file | MQTT_SSL_KEY_STORE | mqttserver.jks | Path to the key store that holds the SSL certificate |
transport.mqtt.ssl.credentials.keystore.store_password | MQTT_SSL_KEY_STORE_PASSWORD | server_ks_password | Password used to access the key store |
transport.mqtt.ssl.credentials.keystore.key_password | MQTT_SSL_KEY_PASSWORD | server_key_password | Password used to access the key |
transport.mqtt.ssl.skip_validity_check_for_client_cert | MQTT_SSL_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT | false | Skip certificate validity check for client certificates |
Local CoAP transport parameters
Parameter | Environment Variable | Default Value | Description |
transport.coap.enabled | COAP_ENABLED | true | Enable/Disable local CoAP transport protocol |
Parameter | Environment Variable | Default Value | Description |
transport.coap.bind_address | COAP_BIND_ADDRESS | 0.0.0.0 | CoAP bind address |
transport.coap.bind_port | COAP_BIND_PORT | 5683 | CoAP bind port |
transport.coap.timeout | COAP_TIMEOUT | 10000 | CoaP processing timeout in milliseconds |
transport.coap.psm_activity_timer | COAP_PSM_ACTIVITY_TIMER | 10000 | Default PSM Activity Timer if not specified in device profile. |
transport.coap.paging_transmission_window | COAP_PAGING_TRANSMISSION_WINDOW | 10000 | Default Paging Transmission Window for eDRX support if not specified in the device profile. |
transport.coap.dtls.enabled | COAP_DTLS_ENABLED | false | Enable/disable DTLS 1.2 support |
transport.coap.dtls.bind_address | COAP_DTLS_BIND_ADDRESS | 0.0.0.0 | CoAP DTLS bind address |
transport.coap.dtls.bind_port | COAP_DTLS_BIND_PORT | 5684 | CoAP DTLS bind port |
transport.coap.dtls.credentials.type | COAP_DTLS_CREDENTIALS_TYPE | PEM | Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore) |
transport.coap.dtls.credentials.pem.cert_file | COAP_DTLS_PEM_CERT | coapserver.pem | Path to the server certificate file (holds server certificate or certificate chain, may include server private key) |
transport.coap.dtls.credentials.pem.key_file | COAP_DTLS_PEM_KEY | coapserver_key.pem | Path to the server certificate private key file (optional) |
transport.coap.dtls.credentials.pem.key_password | COAP_DTLS_PEM_KEY_PASSWORD | server_key_password | Server certificate private key password (optional) |
transport.coap.dtls.credentials.keystore.type | COAP_DTLS_KEY_STORE_TYPE | JKS | Type of the key store |
transport.coap.dtls.credentials.keystore.store_file | COAP_DTLS_KEY_STORE | coapserver.jks | Path to the key store that holds the SSL certificate |
transport.coap.dtls.credentials.keystore.store_password | COAP_DTLS_KEY_STORE_PASSWORD | server_ks_password | Password used to access the key store |
transport.coap.dtls.credentials.keystore.key_alias | COAP_DTLS_KEY_ALIAS | serveralias | Key alias |
transport.coap.dtls.credentials.keystore.key_password | COAP_DTLS_KEY_PASSWORD | server_key_password | Password used to access the key |
transport.coap.dtls.x509.skip_validity_check_for_client_cert | TB_COAP_X509_DTLS_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT | false | Skip check of client certificate validity. |
transport.coap.dtls.x509.dtls_session_inactivity_timeout | TB_COAP_X509_DTLS_SESSION_INACTIVITY_TIMEOUT | 86400000 | Inactivity timeout of DTLS session. Used to cleanup cache. |
transport.coap.dtls.x509.dtls_session_report_timeout | TB_COAP_X509_DTLS_SESSION_REPORT_TIMEOUT | 1800000 | Interval of periodic eviction of the timed-out DTLS sessions. |
Local LwM2M transport parameters
Parameter | Environment Variable | Default Value | Description |
transport.lwm2m.enabled | LWM2M_ENABLED | true | Enable/disable lvm2m transport protocol |
Parameter | Environment Variable | Default Value | Description |
transport.lwm2m.server.id | LWM2M_SERVER_ID | 123 | LwM2M Server ID |
transport.lwm2m.server.bind_address | LWM2M_BIND_ADDRESS | 0.0.0.0 | LwM2M server bind address. Bind to all interfaces by default. |
transport.lwm2m.server.bind_port | LWM2M_BIND_PORT | 5685 | LwM2M server bind port. |
transport.lwm2m.server.security.bind_address | LWM2M_SECURITY_BIND_ADDRESS | 0.0.0.0 | LwM2M server bind address for DTLS. Bind to all interfaces by default. |
transport.lwm2m.server.security.bind_port | LWM2M_SECURITY_BIND_PORT | 5686 | LwM2M server bind port for DTLS. |
transport.lwm2m.server.security.credentials.enabled | LWM2M_SERVER_CREDENTIALS_ENABLED | true | Whether to enable LWM2M server X509 Certificate/RPK support |
transport.lwm2m.server.security.credentials.type | LWM2M_SERVER_CREDENTIALS_TYPE | PEM | Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore) |
transport.lwm2m.server.security.credentials.pem.cert_file | LWM2M_SERVER_PEM_CERT | lwm2mserver.pem | Path to the server certificate file (holds server certificate or certificate chain, may include server private key) |
transport.lwm2m.server.security.credentials.pem.key_file | LWM2M_SERVER_PEM_KEY | lwm2mserver_key.pem | Path to the server certificate private key file (optional) |
transport.lwm2m.server.security.credentials.pem.key_password | LWM2M_SERVER_PEM_KEY_PASSWORD | server_key_password | Server certificate private key password (optional) |
transport.lwm2m.server.security.credentials.keystore.type | LWM2M_SERVER_KEY_STORE_TYPE | JKS | Type of the key store |
transport.lwm2m.server.security.credentials.keystore.store_file | LWM2M_SERVER_KEY_STORE | lwm2mserver.jks | Path to the key store that holds the SSL certificate |
transport.lwm2m.server.security.credentials.keystore.store_password | LWM2M_SERVER_KEY_STORE_PASSWORD | server_ks_password | Password used to access the key store |
transport.lwm2m.server.security.credentials.keystore.key_alias | LWM2M_SERVER_KEY_ALIAS | server | Key alias |
transport.lwm2m.server.security.credentials.keystore.key_password | LWM2M_SERVER_KEY_PASSWORD | server_ks_password | Password used to access the key |
transport.lwm2m.server.security.skip_validity_check_for_client_cert | TB_LWM2M_SERVER_SECURITY_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT | false | Only Certificate_x509 |
transport.lwm2m.bootstrap.enable | LWM2M_ENABLED_BS | true | Enable/disable Bootstrap Server |
transport.lwm2m.bootstrap.id | LWM2M_SERVER_ID_BS | 111 | This is: * Default value in Lwm2mClient after start in mode Bootstrap for the object : name "LWM2M Security" field: "Short Server ID" (deviceProfile: Bootstrap.BOOTSTRAP SERVER.Short ID) |
transport.lwm2m.bootstrap.bind_address | LWM2M_BS_BIND_ADDRESS | 0.0.0.0 | LwM2M bootstrap server bind address. Bind to all interfaces by default. |
transport.lwm2m.bootstrap.bind_port | LWM2M_BS_BIND_PORT | 5687 | LwM2M bootstrap server bind port |
transport.lwm2m.bootstrap.security.bind_address | LWM2M_BS_SECURITY_BIND_ADDRESS | 0.0.0.0 | LwM2M bootstrap server bind address for DTLS. Bind to all interfaces by default. |
transport.lwm2m.bootstrap.security.bind_port | LWM2M_BS_SECURITY_BIND_PORT | 5688 | LwM2M bootstrap server bind port for DTLS. |
transport.lwm2m.bootstrap.security.credentials.enabled | LWM2M_BS_CREDENTIALS_ENABLED | true | Whether to enable LWM2M bootstrap server X509 Certificate/RPK support |
transport.lwm2m.bootstrap.security.credentials.type | LWM2M_BS_CREDENTIALS_TYPE | PEM | Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore) |
transport.lwm2m.bootstrap.security.credentials.pem.cert_file | LWM2M_BS_PEM_CERT | lwm2mserver.pem | Path to the server certificate file (holds server certificate or certificate chain, may include server private key) |
transport.lwm2m.bootstrap.security.credentials.pem.key_file | LWM2M_BS_PEM_KEY | lwm2mserver_key.pem | Path to the server certificate private key file (optional) |
transport.lwm2m.bootstrap.security.credentials.pem.key_password | LWM2M_BS_PEM_KEY_PASSWORD | server_key_password | Server certificate private key password (optional) |
transport.lwm2m.bootstrap.security.credentials.keystore.type | LWM2M_BS_KEY_STORE_TYPE | JKS | Type of the key store |
transport.lwm2m.bootstrap.security.credentials.keystore.store_file | LWM2M_BS_KEY_STORE | lwm2mserver.jks | Path to the key store that holds the SSL certificate |
transport.lwm2m.bootstrap.security.credentials.keystore.store_password | LWM2M_BS_KEY_STORE_PASSWORD | server_ks_password | Password used to access the key store |
transport.lwm2m.bootstrap.security.credentials.keystore.key_alias | LWM2M_BS_KEY_ALIAS | bootstrap | Key alias |
transport.lwm2m.bootstrap.security.credentials.keystore.key_password | LWM2M_BS_KEY_PASSWORD | server_ks_password | Password used to access the key |
transport.lwm2m.security.trust-credentials.enabled | LWM2M_TRUST_CREDENTIALS_ENABLED | true | Whether to load X509 trust certificates |
transport.lwm2m.security.trust-credentials.type | LWM2M_TRUST_CREDENTIALS_TYPE | PEM | Trust certificates store type (PEM - pem certificates file; KEYSTORE - java keystore) |
transport.lwm2m.security.trust-credentials.pem.cert_file | LWM2M_TRUST_PEM_CERT | lwm2mserver.pem | Path to the certificates file (holds trust certificates) |
transport.lwm2m.security.trust-credentials.keystore.type | LWM2M_TRUST_KEY_STORE_TYPE | JKS | Type of the key store |
transport.lwm2m.security.trust-credentials.keystore.store_file | LWM2M_TRUST_KEY_STORE | lwm2mserver.jks | Path to the key store that holds the X509 certificates |
transport.lwm2m.security.trust-credentials.keystore.store_password | LWM2M_TRUST_KEY_STORE_PASSWORD | server_ks_password | Password used to access the key store |
transport.lwm2m.security.recommended_ciphers | LWM2M_RECOMMENDED_CIPHERS | false | Set usage of recommended cipher suites. * Params DTLS Connector config: -- recommendedCipherSuitesOnly = true allow only recommended cipher suites, -- recommendedCipherSuitesOnly = false, also allow not recommended cipher suites. |
transport.lwm2m.security.recommended_supported_groups | LWM2M_RECOMMENDED_SUPPORTED_GROUPS | true | Set usage of recommended supported groups (curves). * Params DTLS Connector config: -- recommendedSupportedGroupsOnly = true allow only recommended supported groups, -- recommendedSupportedGroupsOnly = false, also allow not recommended supported groups. Default value is true |
transport.lwm2m.timeout | LWM2M_TIMEOUT | 120000 | Timeout of LwM2M operation |
transport.lwm2m.uplink_pool_size | LWM2M_UPLINK_POOL_SIZE | 10 | Thread pool size for processing of the LwM2M uplinks |
transport.lwm2m.downlink_pool_size | LWM2M_DOWNLINK_POOL_SIZE | 10 | Thread pool size for processing of the LwM2M downlinks |
transport.lwm2m.ota_pool_size | LWM2M_OTA_POOL_SIZE | 10 | Thread pool size for processing of the OTA updates |
transport.lwm2m.clean_period_in_sec | LWM2M_CLEAN_PERIOD_IN_SEC | 2 | Period of cleanup for the registrations in store |
transport.lwm2m.redis.enabled | LWM2M_REDIS_ENABLED | false | Enable/disable Redis for lvm2m transport |
Local SNMP transport parameters
Parameter | Environment Variable | Default Value | Description |
transport.snmp.enabled | SNMP_ENABLED | true | Enable/disable SNMP transport protocol |
Parameter | Environment Variable | Default Value | Description |
transport.snmp.response_processing.parallelism_level | SNMP_RESPONSE_PROCESSING_PARALLELISM_LEVEL | 20 | Parallelism level for executor (workStealingPool) that is responsible for handling responses from SNMP devices |
transport.snmp.underlying_protocol | SNMP_UNDERLYING_PROTOCOL | udp | To configure SNMP to work over UDP or TCP |
Edges parameters
Parameter | Environment Variable | Default Value | Description |
edges.enabled | EDGES_ENABLED | true | Enable/disable Edge instance |
edges.rpc.port | EDGES_RPC_PORT | 7070 | RPC port |
edges.rpc.client_max_keep_alive_time_sec | EDGES_RPC_CLIENT_MAX_KEEP_ALIVE_TIME_SEC | 300 | |
edges.rpc.ssl.enabled | EDGES_RPC_SSL_ENABLED | false | Enable/disable SSL support |
edges.rpc.ssl.cert | EDGES_RPC_SSL_CERT | certChainFile.pem | |
edges.rpc.ssl.private_key | EDGES_RPC_SSL_PRIVATE_KEY | privateKeyFile.pem | |
edges.rpc.max_inbound_message_size | EDGES_RPC_MAX_INBOUND_MESSAGE_SIZE | 4194304 | |
edges.storage.max_read_records_count | EDGES_STORAGE_MAX_READ_RECORDS_COUNT | 50 | |
edges.storage.no_read_records_sleep | EDGES_NO_READ_RECORDS_SLEEP | 1000 | |
edges.storage.sleep_between_batches | EDGES_SLEEP_BETWEEN_BATCHES | 1000 | |
edges.scheduler_pool_size | EDGES_SCHEDULER_POOL_SIZE | 1 | |
edges.send_scheduler_pool_size | EDGES_SEND_SCHEDULER_POOL_SIZE | 1 | |
edges.grpc_callback_thread_pool_size | EDGES_GRPC_CALLBACK_POOL_SIZE | 1 | |
edges.edge_events_ttl | EDGES_EDGE_EVENTS_TTL | 0 | |
edges.state.persistToTelemetry | EDGES_PERSIST_STATE_TO_TELEMETRY | false |
License parameters
Parameter | Environment Variable | Default Value | Description |
license.secret | TB_LICENSE_SECRET | License secret obtained from ThingsBoard License Portal | |
license.instance_data_file | TB_LICENSE_INSTANCE_DATA_FILE | instance-license.data | Instance data is auto-generated and is used to identify particular ThingsBoard Instance. Instance data is periodically updated and stored into the specified file which can be set to absolute or relative path. Please make sure that thingsboard process has access to the instance data file, in case you use absolute path. |
Swagger parameters
Parameter | Environment Variable | Default Value | Description |
swagger.api_path_regex | SWAGGER_API_PATH_REGEX | /api/.* | General swagger parameters |
swagger.security_path_regex | SWAGGER_SECURITY_PATH_REGEX | /api/.* | General swagger parameters |
swagger.non_security_path_regex | SWAGGER_NON_SECURITY_PATH_REGEX | /api/(?:noauth|v1)/.* | General swagger parameters |
swagger.title | SWAGGER_TITLE | ThingsBoard REST API | The title on the API doc UI page |
swagger.description | SWAGGER_DESCRIPTION | ThingsBoard Professional Edition IoT platform REST API documentation. | The description on the API doc UI page |
swagger.contact.name | SWAGGER_CONTACT_NAME | ThingsBoard, Inc. | The contact name on the API doc UI page |
swagger.contact.url | SWAGGER_CONTACT_URL | https://thingsboard.io | The contact URL on the API doc UI page |
swagger.contact.email | SWAGGER_CONTACT_EMAIL | info@thingsboard.io | The contact email on the API doc UI page |
swagger.license.title | SWAGGER_LICENSE_TITLE | Apache License Version 2.0 | The license title on the API doc UI page |
swagger.license.url | SWAGGER_LICENSE_URL | https://github.com/thingsboard/thingsboard/blob/master/LICENSE | Link to the license body on the API doc UI page |
swagger.version | SWAGGER_VERSION | The version of the API doc to display. Default to the package version. |
Queue parameters
Parameter | Environment Variable | Default Value | Description |
queue.type | TB_QUEUE_TYPE | in-memory | In-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) |
queue.in_memory.stats.print-interval-ms | TB_QUEUE_IN_MEMORY_STATS_PRINT_INTERVAL_MS | 60000 | For debug lvl |
Parameter | Environment Variable | Default Value | Description |
queue.kafka.bootstrap.servers | TB_KAFKA_SERVERS | localhost:9092 | Kafka Bootstrap servers list as a connection string for kafka client |
queue.kafka.acks | TB_KAFKA_ACKS | all | General Kafka client setting |
queue.kafka.retries | TB_KAFKA_RETRIES | 1 | General Kafka client setting |
queue.kafka.compression | TB_KAFKA_COMPRESSION_TYPE | none | Compression of the Kafka messages: none or gzip |
queue.kafka.batch.size | TB_KAFKA_BATCH_SIZE | 16384 | General Kafka client setting |
queue.kafka.linger.ms | TB_KAFKA_LINGER_MS | 1 | General Kafka client setting |
queue.kafka.max.request.size | TB_KAFKA_MAX_REQUEST_SIZE | 1048576 | General Kafka client setting |
queue.kafka.max.in.flight.requests.per.connection | TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION | 5 | General Kafka client setting |
queue.kafka.buffer.memory | TB_BUFFER_MEMORY | 33554432 | General Kafka client setting |
queue.kafka.replication_factor | TB_QUEUE_KAFKA_REPLICATION_FACTOR | 1 | General Kafka client setting |
queue.kafka.max_poll_interval_ms | TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS | 300000 | General Kafka client setting |
queue.kafka.max_poll_records | TB_QUEUE_KAFKA_MAX_POLL_RECORDS | 8192 | General Kafka client setting |
queue.kafka.max_partition_fetch_bytes | TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES | 16777216 | General Kafka client setting |
queue.kafka.fetch_max_bytes | TB_QUEUE_KAFKA_FETCH_MAX_BYTES | 134217728 | General Kafka client setting |
queue.kafka.use_confluent_cloud | TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD | false | Enable to connect to Confluent Cloud. |
queue.kafka.confluent.ssl.algorithm | TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM | https | Confluent Cloud connection settings |
queue.kafka.confluent.sasl.mechanism | TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM | PLAIN | Confluent Cloud connection settings |
queue.kafka.confluent.sasl.config | TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG | Confluent Cloud connection settings | |
queue.kafka.confluent.security.protocol | TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL | SASL_SSL | Confluent Cloud connection settings |
queue.kafka.consumer-properties-per-topic.tb_ota_package.key | max.poll.records | Example of specific consumer properties key per topic | |
queue.kafka.consumer-properties-per-topic.tb_ota_package.value | TB_QUEUE_KAFKA_OTA_MAX_POLL_RECORDS | 10 | Example of specific consumer properties value per topic |
queue.kafka.other.key | request.timeout.ms | refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms | |
queue.kafka.other.value | TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS | 30000 | (30 seconds) |
queue.kafka.other.key | session.timeout.ms | refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms | |
queue.kafka.other.value | TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS | 10000 | (10 seconds) |
queue.kafka.topic-properties.rule-engine | TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Rule Engine topics |
queue.kafka.topic-properties.core | TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Core topics |
queue.kafka.topic-properties.transport-api | TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Transport Api topics |
queue.kafka.topic-properties.notifications | TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Notifications topics |
queue.kafka.topic-properties.js-executor | TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1 | Kafka properties for JS Executor topics |
queue.kafka.topic-properties.ota-updates | TB_QUEUE_KAFKA_OTA_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 | Kafka properties for OTA updates topic |
queue.kafka.consumer-stats.enabled | TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED | true | Prints lag between consumer group offset and last messages offset in Kafka topics |
queue.kafka.consumer-stats.print-interval-ms | TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Kafka's consumer-groups stats |
queue.kafka.consumer-stats.kafka-response-timeout-ms | TB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS | 1000 | Time to wait for the stats-loading requests to Kafka to finish |
queue.aws_sqs.use_default_credential_provider_chain | TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN | false | Use default credentials provider for AWS SQS |
queue.aws_sqs.access_key_id | TB_QUEUE_AWS_SQS_ACCESS_KEY_ID | YOUR_KEY | Access key ID from AWS IAM user |
queue.aws_sqs.secret_access_key | TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY | YOUR_SECRET | Secret access key from AWS IAM user |
queue.aws_sqs.region | TB_QUEUE_AWS_SQS_REGION | YOUR_REGION | Region from AWS account |
queue.aws_sqs.threads_per_topic | TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC | 1 | Number of threads per each AWS SQS queue in consumer |
queue.aws_sqs.queue-properties.rule-engine | TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.core | TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.transport-api | TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.notifications | TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.js-executor | TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.pubsub.project_id | TB_QUEUE_PUBSUB_PROJECT_ID | YOUR_PROJECT_ID | Project Id from google cloud |
queue.pubsub.service_account | TB_QUEUE_PUBSUB_SERVICE_ACCOUNT | YOUR_SERVICE_ACCOUNT | API Credentials in json format |
queue.pubsub.max_msg_size | TB_QUEUE_PUBSUB_MAX_MSG_SIZE | 1048576 | in bytes |
queue.pubsub.max_messages | TB_QUEUE_PUBSUB_MAX_MESSAGES | 1000 | Number of messages per a consumer |
queue.pubsub.queue-properties.rule-engine | TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.core | TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.transport-api | TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Transport Api subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.notifications | TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Notifications subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.js-executor | TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Js Executor subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.service_bus.namespace_name | TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME | YOUR_NAMESPACE_NAME | Azure namespace is a scoping container for all messaging components |
queue.service_bus.sas_key_name | TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME | YOUR_SAS_KEY_NAME | Azure Service Bus Shared Access Signatures key name |
queue.service_bus.sas_key | TB_QUEUE_SERVICE_BUS_SAS_KEY | YOUR_SAS_KEY | Azure Service Bus Shared Access Signatures key |
queue.service_bus.max_messages | TB_QUEUE_SERVICE_BUS_MAX_MESSAGES | 1000 | Number of messages per a consumer |
queue.service_bus.queue-properties.rule-engine | TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Rule Engine queues |
queue.service_bus.queue-properties.core | TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Core queues |
queue.service_bus.queue-properties.transport-api | TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Transport Api queues |
queue.service_bus.queue-properties.notifications | TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Notifications queues |
queue.service_bus.queue-properties.js-executor | TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Js Executor queues |
queue.rabbitmq.exchange_name | TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME | Default empty | |
queue.rabbitmq.host | TB_QUEUE_RABBIT_MQ_HOST | localhost | RabbitMQ host used to establish connection |
queue.rabbitmq.port | TB_QUEUE_RABBIT_MQ_PORT | 5672 | RabbitMQ host used to establish connection |
queue.rabbitmq.virtual_host | TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST | / | Virtual hosts provide logical grouping and separation of resources |
queue.rabbitmq.password | TB_QUEUE_RABBIT_MQ_PASSWORD | YOUR_PASSWORD | User password for RabbitMQ user account |
queue.rabbitmq.automatic_recovery_enabled | TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED | false | Network connection between clients and RabbitMQ nodes can fail. RabbitMQ Java client supports automatic recovery of connections and topology (queues, exchanges, bindings, and consumers) |
queue.rabbitmq.connection_timeout | TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT | 60000 | The connection timeout for the RabbitMQ connection factory |
queue.rabbitmq.handshake_timeout | TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT | 10000 | RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout |
queue.rabbitmq.queue-properties.rule-engine | TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Rule Engine queues |
queue.rabbitmq.queue-properties.core | TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Core queues |
queue.rabbitmq.queue-properties.transport-api | TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Transport Api queues |
queue.rabbitmq.queue-properties.notifications | TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Notifications queues |
queue.rabbitmq.queue-properties.js-executor | TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Js Executor queues |
queue.partitions.hash_function_name | TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME | murmur3_128 | Name of hash function used for consistent hash ring in Cluster Mode. See architecture docs for more details. murmur3_32, murmur3_128 or sha256 |
queue.transport_api.requests_topic | TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC | tb_transport.api.requests | Topic used to consume api requests from transport microservices |
queue.transport_api.responses_topic | TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC | tb_transport.api.responses | Topic used to produce api responses to transport microservices |
queue.transport_api.max_pending_requests | TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS | 10000 | Maximum pending api requests from transport microservices to be handled by server |
queue.transport_api.max_requests_timeout | TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT | 10000 | Maximum timeout in milliseconds to handle api request from transport microservice by server |
queue.transport_api.max_callback_threads | TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS | 100 | Amount of threads used to invoke callbacks |
queue.transport_api.request_poll_interval | TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll api requests from transport microservices |
queue.transport_api.response_poll_interval | TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll api response from transport microservices |
queue.core.topic | TB_QUEUE_CORE_TOPIC | tb_core | Topic name for Core microservices |
queue.core.poll-interval | TB_QUEUE_CORE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Core microservices |
queue.core.partitions | TB_QUEUE_CORE_PARTITIONS | 10 | Amount of partitions used by Core microservices |
queue.core.pack-processing-timeout | TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS | 2000 | Timeout for processing a message pack by Core microservices |
queue.core.ota.topic | TB_QUEUE_CORE_OTA_TOPIC | tb_ota_package | The topic for queue of OTA updates |
queue.core.ota.pack-interval-ms | TB_QUEUE_CORE_OTA_PACK_INTERVAL_MS | 60000 | The interval of processing the OTA updates for devices. Used to avoid any harm to network due to many parallel OTA updates |
queue.core.ota.pack-size | TB_QUEUE_CORE_OTA_PACK_SIZE | 100 | The size of OTA updates notifications fetched from the queue. The queue stores pairs of firmware and device ids. |
queue.core.usage-stats-topic | TB_QUEUE_US_TOPIC | tb_usage_stats | The parameter to store usage statistics |
queue.core.stats.enabled | TB_QUEUE_CORE_STATS_ENABLED | true | Enable/disable statistics for Core microservices |
queue.core.stats.print-interval-ms | TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Core microservices |
queue.js.request_topic | REMOTE_JS_EVAL_REQUEST_TOPIC | js_eval.requests | JS Eval request topic |
queue.js.response_topic_prefix | REMOTE_JS_EVAL_RESPONSE_TOPIC | js_eval.responses | JS Eval responses topic prefix that is combined with node id |
queue.js.max_pending_requests | REMOTE_JS_MAX_PENDING_REQUESTS | 10000 | JS Eval max pending requests |
queue.js.max_eval_requests_timeout | REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT | 60000 | JS Eval max request timeout |
queue.js.max_requests_timeout | REMOTE_JS_MAX_REQUEST_TIMEOUT | 10000 | JS max request timeout |
queue.js.response_poll_interval | REMOTE_JS_RESPONSE_POLL_INTERVAL_MS | 25 | JS response poll interval |
queue.rule-engine.topic | TB_QUEUE_RULE_ENGINE_TOPIC | tb_rule_engine | Topic name for Rule Engine microservices |
queue.rule-engine.poll-interval | TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Rule Engine microservices |
queue.rule-engine.pack-processing-timeout | TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS | 2000 | Timeout for processing a message pack |
queue.rule-engine.stats.enabled | TB_QUEUE_RULE_ENGINE_STATS_ENABLED | true | Enable/disable statistics for Rule Engine microservices |
queue.rule-engine.stats.print-interval-ms | TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Rule Engine microservices |
queue.transport.notifications_topic | TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC | tb_transport.notifications | Transport notifications topic |
queue.transport.poll_interval | TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Core microservices |
queue.vc.topic | TB_QUEUE_VC_TOPIC | tb_version_control | Topic for storing Version Control synchronization tasks |
queue.vc.partitions | TB_QUEUE_VC_PARTITIONS | 10 | Amount of partitions used by Version Control microservices |
queue.vc.poll-interval | TB_QUEUE_VC_INTERVAL_MS | 10 | Interval in milliseconds to poll messages by Version Control microservices |
queue.vc.pack-processing-timeout | TB_QUEUE_VC_PACK_PROCESSING_TIMEOUT_MS | 10 | Timeout for processing a message pack |
ThingsBoard event parameters
Parameter | Environment Variable | Default Value | Description |
event.debug.max-symbols | TB_MAX_DEBUG_EVENT_SYMBOLS | 4096 | Maximum number of symbols per debug event. The event content will be truncated if needed. |
ThingsBoard service parameters
Parameter | Environment Variable | Default Value | Description |
service.type | TB_SERVICE_TYPE | monolith | Allowed values: monolith or tb-core or tb-rule-engine or tb-integration |
service.id | TB_SERVICE_ID | Unique id for this service (autogenerated if empty) | |
service.tenant_id | TB_SERVICE_TENANT_ID | Empty or specific tenant id |
ThingsBoard metrics parameters
Parameter | Environment Variable | Default Value | Description |
metrics.enabled | METRICS_ENABLED | false | Enable/disable actuator metrics |
metrics.timer.percentiles | METRICS_TIMER_PERCENTILES | 0.5 | Metrics percentiles returned by actuator for timer metrics. List of double values (divided by ,) |
management.endpoints.web.exposure.include | METRICS_ENDPOINTS_EXPOSE | info | Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics) |
Local Version Control parameters
Parameter | Environment Variable | Default Value | Description |
vc.thread_pool_size | TB_VC_POOL_SIZE | 2 | Size of the thread pool for processing the synchronization tasks |
vc.git.io_pool_size | TB_VC_GIT_POOL_SIZE | 3 | Size of the thread pool for processing IO operations related to Git |
vc.git.repositories-folder | TB_VC_GIT_REPOSITORIES_FOLDER | ${java.io.tmpdir}/repositories | Folder for storing the GIT repositories |
HTTP Transport Parameters
Server Parameters
Parameter | Environment Variable | Default Value | Description |
server.address | HTTP_BIND_ADDRESS | 0.0.0.0 | HTTP Server bind address |
server.port | HTTP_BIND_PORT | 8081 | HTTP Server bind port |
server.ssl.enabled | SSL_ENABLED | false | Enable/disable SSL support |
server.ssl.credentials.type | SSL_CREDENTIALS_TYPE | PEM | Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore) |
server.ssl.credentials.pem.cert_file | SSL_PEM_CERT | server.pem | Path to the server certificate file (holds server certificate or certificate chain, may include server private key) |
server.ssl.credentials.pem.key_file | SSL_PEM_KEY | server_key.pem | Path to the server certificate private key file (optional) |
server.ssl.credentials.pem.key_password | SSL_PEM_KEY_PASSWORD | server_key_password | Server certificate private key password (optional) |
server.ssl.credentials.keystore.type | SSL_KEY_STORE_TYPE | PKCS12 | Type of the key store |
server.ssl.credentials.keystore.store_file | SSL_KEY_STORE | classpath:keystore/keystore.p12 | Path to the key store that holds the SSL certificate |
server.ssl.credentials.keystore.store_password | SSL_KEY_STORE_PASSWORD | thingsboard | Password used to access the key store |
server.ssl.credentials.keystore.key_alias | SSL_KEY_ALIAS | tomcat | Alias that identifies the key in the key store |
server.ssl.credentials.keystore.key_password | SSL_KEY_PASSWORD | thingsboard | Password used to access the key in the keystore |
server.http2 | HTTP2_ENABLED | true | Enable/disable HTTP/2 support (takes effect only if server SSL is enabled) |
Zookeeper connection parameters
Parameter | Environment Variable | Default Value | Description |
zk.enabled | ZOOKEEPER_ENABLED | false | Enable/disable zookeeper discovery service. Used for ThingsBoard cluster |
zk.url | ZOOKEEPER_URL | localhost:2181 | Zookeeper connect string |
zk.retry_interval_ms | ZOOKEEPER_RETRY_INTERVAL_MS | 3000 | Zookeeper retry interval in milliseconds |
zk.connection_timeout_ms | ZOOKEEPER_CONNECTION_TIMEOUT_MS | 3000 | Zookeeper connection timeout in milliseconds |
zk.session_timeout_ms | ZOOKEEPER_SESSION_TIMEOUT_MS | 3000 | Zookeeper session timeout in milliseconds |
zk.zk_dir | ZOOKEEPER_NODES_DIR | /thingsboard | Name of the directory in zookeeper 'filesystem' |
Cache Parameter
Parameter | Environment Variable | Default Value | Description |
cache.type | CACHE_TYPE | redis |
Redis connection parameters
Parameter | Environment Variable | Default Value | Description |
redis.connection.type | REDIS_CONNECTION_TYPE | standalone | Redis connection type - standalone or cluster |
redis.standalone.host | REDIS_HOST | localhost | Redis connection host |
redis.standalone.port | REDIS_PORT | 6379 | Redis connection port |
redis.standalone.useDefaultClientConfig | REDIS_USE_DEFAULT_CLIENT_CONFIG | true | Redis connection port |
redis.standalone.clientName | REDIS_CLIENT_NAME | standalone | This value may be used only if you used not default ClientConfig |
redis.standalone.connectTimeout | REDIS_CLIENT_CONNECT_TIMEOUT | 30000 | This value may be used only if you used not default ClientConfig |
redis.standalone.readTimeout | REDIS_CLIENT_READ_TIMEOUT | 60000 | This value may be used only if you used not default ClientConfig |
redis.standalone.usePoolConfig | REDIS_CLIENT_USE_POOL_CONFIG | false | This value may be used only if you used not default ClientConfig |
redis.cluster.nodes | REDIS_NODES | Comma-separated list of "host:port" pairs to bootstrap from | |
redis.cluster.max-redirects | REDIS_MAX_REDIRECTS | 12 | Maximum number of redirects to follow when executing commands across the cluster |
redis.cluster.useDefaultPoolConfig | REDIS_USE_DEFAULT_POOL_CONFIG | true | Use default redis pool configuration. If set to "true", the REDIS_POOL_CONFIG_* properties will be ignored. |
redis.db | REDIS_DB | 0 | Redis database index |
redis.password | REDIS_PASSWORD | Redis database password | |
redis.pool_config.maxTotal | REDIS_POOL_CONFIG_MAX_TOTAL | 128 | General redis pool settings |
redis.pool_config.maxIdle | REDIS_POOL_CONFIG_MAX_IDLE | 128 | General redis pool settings |
redis.pool_config.minIdle | REDIS_POOL_CONFIG_MIN_IDLE | 16 | General redis pool settings |
redis.pool_config.testOnBorrow | REDIS_POOL_CONFIG_TEST_ON_BORROW | true | General redis pool settings |
redis.pool_config.testOnReturn | REDIS_POOL_CONFIG_TEST_ON_RETURN | true | General redis pool settings |
redis.pool_config.testWhileIdle | REDIS_POOL_CONFIG_TEST_WHILE_IDLE | true | General redis pool settings |
redis.pool_config.minEvictableMs | REDIS_POOL_CONFIG_MIN_EVICTABLE_MS | 60000 | General redis pool settings |
redis.pool_config.evictionRunsMs | REDIS_POOL_CONFIG_EVICTION_RUNS_MS | 30000 | General redis pool settings |
redis.pool_config.maxWaitMills | REDIS_POOL_CONFIG_MAX_WAIT_MS | 60000 | General redis pool settings |
redis.pool_config.numberTestsPerEvictionRun | REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN | 3 | General redis pool settings |
redis.pool_config.blockWhenExhausted | REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED | true | General redis pool settings |
HTTP server parameters
Parameter | Environment Variable | Default Value | Description |
transport.http.request_timeout | HTTP_REQUEST_TIMEOUT | 60000 | HTTP request processing timeout in milliseconds |
transport.http.max_request_timeout | HTTP_MAX_REQUEST_TIMEOUT | 300000 | HTTP maximum request processing timeout in milliseconds |
Parameter | Environment Variable | Default Value | Description |
transport.sessions.inactivity_timeout | TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT | 300000 | Inactivity timeout for device session in transport service. The last activity time of the device session is updated if device sends any message, including keepalive messages. |
transport.sessions.report_timeout | TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT | 3000 | Interval of periodic check for expired sessions and report of the changes to session last activity time. |
transport.rate_limits.enabled | TB_TRANSPORT_RATE_LIMITS_ENABLED | false | |
transport.rate_limits.tenant | TB_TRANSPORT_RATE_LIMITS_TENANT | 1000:1,20000:60 | |
transport.rate_limits.device | TB_TRANSPORT_RATE_LIMITS_DEVICE | 10:1,300:60 | |
transport.json.type_cast_enabled | JSON_TYPE_CAST_ENABLED | true | Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON |
transport.json.max_string_value_length | JSON_MAX_STRING_VALUE_LENGTH | 0 | Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check) |
transport.client_side_rpc.timeout | CLIENT_SIDE_RPC_TIMEOUT | 60000 | |
transport.api_enabled | TB_TRANSPORT_API_ENABLED | true | Enable/disable http/mqtt/coap transport protocols (has higher priority than certain protocol's 'enabled' property) |
transport.log.enabled | TB_TRANSPORT_LOG_ENABLED | true | Enable/Disable log of transport messages to telemetry. For example, logging of LwM2M registration update. |
transport.log.max_length | TB_TRANSPORT_LOG_MAX_LENGTH | 1024 | Maximum length of the log message. The content will be truncated to the specified value if needed. |
transport.stats.enabled | TB_TRANSPORT_STATS_ENABLED | true | Enable/Disable collection of transport statistics |
transport.stats.print-interval-ms | TB_TRANSPORT_STATS_PRINT_INTERVAL_MS | 60000 | Interval of transport statistics logging. |
Queue parameters
Parameter | Environment Variable | Default Value | Description |
queue.type | TB_QUEUE_TYPE | kafka | In-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) |
Parameter | Environment Variable | Default Value | Description |
queue.kafka.bootstrap.servers | TB_KAFKA_SERVERS | localhost:9092 | Kafka Bootstrap servers list as a connection string for kafka client |
queue.kafka.acks | TB_KAFKA_ACKS | all | General Kafka client setting |
queue.kafka.retries | TB_KAFKA_RETRIES | 1 | General Kafka client setting |
queue.kafka.compression | TB_KAFKA_COMPRESSION_TYPE | none | Compression of the Kafka messages: none or gzip |
queue.kafka.batch.size | TB_KAFKA_BATCH_SIZE | 16384 | General Kafka client setting |
queue.kafka.linger.ms | TB_KAFKA_LINGER_MS | 1 | General Kafka client setting |
queue.kafka.max.request.size | TB_KAFKA_MAX_REQUEST_SIZE | 1048576 | General Kafka client setting |
queue.kafka.max.in.flight.requests.per.connection | TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION | 5 | General Kafka client setting |
queue.kafka.buffer.memory | TB_BUFFER_MEMORY | 33554432 | General Kafka client setting |
queue.kafka.replication_factor | TB_QUEUE_KAFKA_REPLICATION_FACTOR | 1 | General Kafka client setting |
queue.kafka.max_poll_interval_ms | TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS | 300000 | General Kafka client setting |
queue.kafka.max_poll_records | TB_QUEUE_KAFKA_MAX_POLL_RECORDS | 8192 | General Kafka client setting |
queue.kafka.max_partition_fetch_bytes | TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES | 16777216 | General Kafka client setting |
queue.kafka.fetch_max_bytes | TB_QUEUE_KAFKA_FETCH_MAX_BYTES | 134217728 | General Kafka client setting |
queue.kafka.use_confluent_cloud | TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD | false | Enable to connect to Confluent Cloud. |
queue.kafka.confluent.ssl.algorithm | TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM | https | Confluent Cloud connection settings |
queue.kafka.confluent.sasl.mechanism | TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM | PLAIN | Confluent Cloud connection settings |
queue.kafka.confluent.sasl.config | TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG | Confluent Cloud connection settings | |
queue.kafka.confluent.security.protocol | TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL | SASL_SSL | Confluent Cloud connection settings |
queue.kafka.consumer-properties-per-topic.tb_ota_package.key | max.poll.records | Example of specific consumer properties key per topic | |
queue.kafka.consumer-properties-per-topic.tb_ota_package.value | TB_QUEUE_KAFKA_OTA_MAX_POLL_RECORDS | 10 | Example of specific consumer properties value per topic |
queue.kafka.other.key | request.timeout.ms | refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms | |
queue.kafka.other.value | TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS | 30000 | (30 seconds) |
queue.kafka.other.key | session.timeout.ms | refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms | |
queue.kafka.other.value | TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS | 10000 | (10 seconds) |
queue.kafka.topic-properties.rule-engine | TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Rule Engine topics |
queue.kafka.topic-properties.core | TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Core topics |
queue.kafka.topic-properties.transport-api | TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Transport Api topics |
queue.kafka.topic-properties.notifications | TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Notifications topics |
queue.kafka.topic-properties.js-executor | TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1 | Kafka properties for JS Executor topics |
queue.kafka.topic-properties.ota-updates | TB_QUEUE_KAFKA_OTA_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 | Kafka properties for OTA updates topic |
queue.kafka.consumer-stats.enabled | TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED | true | Prints lag between consumer group offset and last messages offset in Kafka topics |
queue.kafka.consumer-stats.print-interval-ms | TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Kafka's consumer-groups stats |
queue.kafka.consumer-stats.kafka-response-timeout-ms | TB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS | 1000 | Time to wait for the stats-loading requests to Kafka to finish |
queue.aws_sqs.use_default_credential_provider_chain | TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN | false | Use default credentials provider for AWS SQS |
queue.aws_sqs.access_key_id | TB_QUEUE_AWS_SQS_ACCESS_KEY_ID | YOUR_KEY | Access key ID from AWS IAM user |
queue.aws_sqs.secret_access_key | TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY | YOUR_SECRET | Secret access key from AWS IAM user |
queue.aws_sqs.region | TB_QUEUE_AWS_SQS_REGION | YOUR_REGION | Region from AWS account |
queue.aws_sqs.threads_per_topic | TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC | 1 | Number of threads per each AWS SQS queue in consumer |
queue.aws_sqs.queue-properties.rule-engine | TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.core | TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.transport-api | TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.notifications | TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.js-executor | TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.pubsub.project_id | TB_QUEUE_PUBSUB_PROJECT_ID | YOUR_PROJECT_ID | Project Id from google cloud |
queue.pubsub.service_account | TB_QUEUE_PUBSUB_SERVICE_ACCOUNT | YOUR_SERVICE_ACCOUNT | API Credentials in json format |
queue.pubsub.max_msg_size | TB_QUEUE_PUBSUB_MAX_MSG_SIZE | 1048576 | in bytes |
queue.pubsub.max_messages | TB_QUEUE_PUBSUB_MAX_MESSAGES | 1000 | Number of messages per a consumer |
queue.pubsub.queue-properties.rule-engine | TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.core | TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.transport-api | TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Transport Api subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.notifications | TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Notifications subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.js-executor | TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Js Executor subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.service_bus.namespace_name | TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME | YOUR_NAMESPACE_NAME | Azure namespace is a scoping container for all messaging components |
queue.service_bus.sas_key_name | TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME | YOUR_SAS_KEY_NAME | Azure Service Bus Shared Access Signatures key name |
queue.service_bus.sas_key | TB_QUEUE_SERVICE_BUS_SAS_KEY | YOUR_SAS_KEY | Azure Service Bus Shared Access Signatures key |
queue.service_bus.max_messages | TB_QUEUE_SERVICE_BUS_MAX_MESSAGES | 1000 | Number of messages per a consumer |
queue.service_bus.queue-properties.rule-engine | TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Rule Engine queues |
queue.service_bus.queue-properties.core | TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Core queues |
queue.service_bus.queue-properties.transport-api | TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Transport Api queues |
queue.service_bus.queue-properties.notifications | TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Notifications queues |
queue.service_bus.queue-properties.js-executor | TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Js Executor queues |
queue.rabbitmq.exchange_name | TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME | Default empty | |
queue.rabbitmq.host | TB_QUEUE_RABBIT_MQ_HOST | localhost | RabbitMQ host used to establish connection |
queue.rabbitmq.port | TB_QUEUE_RABBIT_MQ_PORT | 5672 | RabbitMQ host used to establish connection |
queue.rabbitmq.virtual_host | TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST | / | Virtual hosts provide logical grouping and separation of resources |
queue.rabbitmq.password | TB_QUEUE_RABBIT_MQ_PASSWORD | YOUR_PASSWORD | User password for RabbitMQ user account |
queue.rabbitmq.automatic_recovery_enabled | TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED | false | Network connection between clients and RabbitMQ nodes can fail. RabbitMQ Java client supports automatic recovery of connections and topology (queues, exchanges, bindings, and consumers) |
queue.rabbitmq.connection_timeout | TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT | 60000 | The connection timeout for the RabbitMQ connection factory |
queue.rabbitmq.handshake_timeout | TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT | 10000 | RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout |
queue.rabbitmq.queue-properties.rule-engine | TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Rule Engine queues |
queue.rabbitmq.queue-properties.core | TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Core queues |
queue.rabbitmq.queue-properties.transport-api | TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Transport Api queues |
queue.rabbitmq.queue-properties.notifications | TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Notifications queues |
queue.rabbitmq.queue-properties.js-executor | TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Js Executor queues |
queue.partitions.hash_function_name | TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME | murmur3_128 | Name of hash function used for consistent hash ring in Cluster Mode. See architecture docs for more details. murmur3_32, murmur3_128 or sha256 |
queue.transport_api.requests_topic | TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC | tb_transport.api.requests | Topic used to consume api requests from transport microservices |
queue.transport_api.responses_topic | TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC | tb_transport.api.responses | Topic used to produce api responses to transport microservices |
queue.transport_api.max_pending_requests | TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS | 10000 | Maximum pending api requests from transport microservices to be handled by server |
queue.transport_api.max_requests_timeout | TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT | 10000 | Maximum timeout in milliseconds to handle api request from transport microservice by server |
queue.transport_api.max_callback_threads | TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS | 100 | Amount of threads used to invoke callbacks |
queue.transport_api.request_poll_interval | TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll api requests from transport microservices |
queue.transport_api.response_poll_interval | TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll api response from transport microservices |
queue.core.topic | TB_QUEUE_CORE_TOPIC | tb_core | Topic name for Core microservices |
queue.core.poll-interval | TB_QUEUE_CORE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Core microservices |
queue.core.partitions | TB_QUEUE_CORE_PARTITIONS | 10 | Amount of partitions used by Core microservices |
queue.core.pack-processing-timeout | TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS | 2000 | Timeout for processing a message pack by Core microservices |
queue.core.ota.topic | TB_QUEUE_CORE_OTA_TOPIC | tb_ota_package | The topic for queue of OTA updates |
queue.core.ota.pack-interval-ms | TB_QUEUE_CORE_OTA_PACK_INTERVAL_MS | 60000 | The interval of processing the OTA updates for devices. Used to avoid any harm to network due to many parallel OTA updates |
queue.core.ota.pack-size | TB_QUEUE_CORE_OTA_PACK_SIZE | 100 | The size of OTA updates notifications fetched from the queue. The queue stores pairs of firmware and device ids. |
queue.core.usage-stats-topic | TB_QUEUE_US_TOPIC | tb_usage_stats | The parameter to store usage statistics |
queue.core.stats.enabled | TB_QUEUE_CORE_STATS_ENABLED | true | Enable/disable statistics for Core microservices |
queue.core.stats.print-interval-ms | TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Core microservices |
queue.js.request_topic | REMOTE_JS_EVAL_REQUEST_TOPIC | js_eval.requests | JS Eval request topic |
queue.js.response_topic_prefix | REMOTE_JS_EVAL_RESPONSE_TOPIC | js_eval.responses | JS Eval responses topic prefix that is combined with node id |
queue.js.max_pending_requests | REMOTE_JS_MAX_PENDING_REQUESTS | 10000 | JS Eval max pending requests |
queue.js.max_eval_requests_timeout | REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT | 60000 | JS Eval max request timeout |
queue.js.max_requests_timeout | REMOTE_JS_MAX_REQUEST_TIMEOUT | 10000 | JS max request timeout |
queue.js.response_poll_interval | REMOTE_JS_RESPONSE_POLL_INTERVAL_MS | 25 | JS response poll interval |
queue.rule-engine.topic | TB_QUEUE_RULE_ENGINE_TOPIC | tb_rule_engine | Topic name for Rule Engine microservices |
queue.rule-engine.poll-interval | TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Rule Engine microservices |
queue.rule-engine.pack-processing-timeout | TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS | 2000 | Timeout for processing a message pack |
queue.rule-engine.stats.enabled | TB_QUEUE_RULE_ENGINE_STATS_ENABLED | true | Enable/disable statistics for Rule Engine microservices |
queue.rule-engine.stats.print-interval-ms | TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Rule Engine microservices |
queue.transport.notifications_topic | TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC | tb_transport.notifications | Transport notifications topic |
queue.transport.poll_interval | TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Core microservices |
queue.vc.topic | TB_QUEUE_VC_TOPIC | tb_version_control | Topic for storing Version Control synchronization tasks |
queue.vc.partitions | TB_QUEUE_VC_PARTITIONS | 10 | Amount of partitions used by Version Control microservices |
queue.vc.poll-interval | TB_QUEUE_VC_INTERVAL_MS | 10 | Interval in milliseconds to poll messages by Version Control microservices |
queue.vc.pack-processing-timeout | TB_QUEUE_VC_PACK_PROCESSING_TIMEOUT_MS | 10 | Timeout for processing a message pack |
ThingsBoard service parameters
Parameter | Environment Variable | Default Value | Description |
service.type | TB_SERVICE_TYPE | tb-transport | |
service.id | TB_SERVICE_ID | Unique id for this service (autogenerated if empty) | |
service.tenant_id | TB_SERVICE_TENANT_ID | Empty or specific tenant id |
ThingsBoard metrics parameters
Parameter | Environment Variable | Default Value | Description |
metrics.enabled | METRICS_ENABLED | false | Enable/disable actuator metrics |
ThingsBoard management parameters
Parameter | Environment Variable | Default Value | Description |
management.endpoints.web.exposure.include | METRICS_ENDPOINTS_EXPOSE | info | Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics) |
MQTT Transport Parameters
Parameter | Environment Variable | Default Value | Description |
spring.main.web-environment | WEB_APPLICATION_ENABLE | false | If you enabled process metrics you should also enable 'web-environment' |
spring.main.web-application-type | WEB_APPLICATION_TYPE | none | If you enabled process metrics you should set 'web-application-type' to 'servlet' value |
Server Parameters
Parameter | Environment Variable | Default Value | Description |
server.address | HTTP_BIND_ADDRESS | 0.0.0.0 | Server bind address (has no effect if web-environment is disabled) |
server.port | HTTP_BIND_PORT | 8083 | Server bind port (has no effect if web-environment is disabled) |
Zookeeper connection parameters
Parameter | Environment Variable | Default Value | Description |
zk.enabled | ZOOKEEPER_ENABLED | false | Enable/disable zookeeper discovery service. Used for ThingsBoard cluster |
zk.url | ZOOKEEPER_URL | localhost:2181 | Zookeeper connect string |
zk.retry_interval_ms | ZOOKEEPER_RETRY_INTERVAL_MS | 3000 | Zookeeper retry interval in milliseconds |
zk.connection_timeout_ms | ZOOKEEPER_CONNECTION_TIMEOUT_MS | 3000 | Zookeeper connection timeout in milliseconds |
zk.session_timeout_ms | ZOOKEEPER_SESSION_TIMEOUT_MS | 3000 | Zookeeper session timeout in milliseconds |
zk.zk_dir | ZOOKEEPER_NODES_DIR | /thingsboard | Name of the directory in zookeeper 'filesystem' |
Cache Parameter
Parameter | Environment Variable | Default Value | Description |
cache.type | CACHE_TYPE | redis |
Redis connection parameters
Parameter | Environment Variable | Default Value | Description |
redis.connection.type | REDIS_CONNECTION_TYPE | standalone | Redis connection type - standalone or cluster |
redis.standalone.host | REDIS_HOST | localhost | Redis connection host |
redis.standalone.port | REDIS_PORT | 6379 | Redis connection port |
redis.standalone.useDefaultClientConfig | REDIS_USE_DEFAULT_CLIENT_CONFIG | true | Redis connection port |
redis.standalone.clientName | REDIS_CLIENT_NAME | standalone | This value may be used only if you used not default ClientConfig |
redis.standalone.connectTimeout | REDIS_CLIENT_CONNECT_TIMEOUT | 30000 | This value may be used only if you used not default ClientConfig |
redis.standalone.readTimeout | REDIS_CLIENT_READ_TIMEOUT | 60000 | This value may be used only if you used not default ClientConfig |
redis.standalone.usePoolConfig | REDIS_CLIENT_USE_POOL_CONFIG | false | This value may be used only if you used not default ClientConfig |
redis.cluster.nodes | REDIS_NODES | Comma-separated list of "host:port" pairs to bootstrap from | |
redis.cluster.max-redirects | REDIS_MAX_REDIRECTS | 12 | Maximum number of redirects to follow when executing commands across the cluster |
redis.cluster.useDefaultPoolConfig | REDIS_USE_DEFAULT_POOL_CONFIG | true | Use default redis pool configuration. If set to "true", the REDIS_POOL_CONFIG_* properties will be ignored. |
redis.db | REDIS_DB | 0 | Redis database index |
redis.password | REDIS_PASSWORD | Redis database password | |
redis.pool_config.maxTotal | REDIS_POOL_CONFIG_MAX_TOTAL | 128 | General redis pool settings |
redis.pool_config.maxIdle | REDIS_POOL_CONFIG_MAX_IDLE | 128 | General redis pool settings |
redis.pool_config.minIdle | REDIS_POOL_CONFIG_MIN_IDLE | 16 | General redis pool settings |
redis.pool_config.testOnBorrow | REDIS_POOL_CONFIG_TEST_ON_BORROW | true | General redis pool settings |
redis.pool_config.testOnReturn | REDIS_POOL_CONFIG_TEST_ON_RETURN | true | General redis pool settings |
redis.pool_config.testWhileIdle | REDIS_POOL_CONFIG_TEST_WHILE_IDLE | true | General redis pool settings |
redis.pool_config.minEvictableMs | REDIS_POOL_CONFIG_MIN_EVICTABLE_MS | 60000 | General redis pool settings |
redis.pool_config.evictionRunsMs | REDIS_POOL_CONFIG_EVICTION_RUNS_MS | 30000 | General redis pool settings |
redis.pool_config.maxWaitMills | REDIS_POOL_CONFIG_MAX_WAIT_MS | 60000 | General redis pool settings |
redis.pool_config.numberTestsPerEvictionRun | REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN | 3 | General redis pool settings |
redis.pool_config.blockWhenExhausted | REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED | true | General redis pool settings |
MQTT server parameters
Parameter | Environment Variable | Default Value | Description |
transport.mqtt.bind_address | MQTT_BIND_ADDRESS | 0.0.0.0 | MQTT bind address |
transport.mqtt.bind_port | MQTT_BIND_PORT | 1883 | MQTT bind port |
transport.mqtt.timeout | MQTT_TIMEOUT | 10000 | MQTT processing timeout in milliseconds |
transport.mqtt.msg_queue_size_per_device_limit | MQTT_MSG_QUEUE_SIZE_PER_DEVICE_LIMIT | 100 | Messages await in the queue before device connected state. This limit works on low level before TenantProfileLimits mechanism |
transport.mqtt.netty.leak_detector_level | NETTY_LEAK_DETECTOR_LVL | DISABLED | Netty leak detector level |
transport.mqtt.netty.boss_group_thread_count | NETTY_BOSS_GROUP_THREADS | 1 | Netty BOSS threads count |
transport.mqtt.netty.worker_group_thread_count | NETTY_WORKER_GROUP_THREADS | 12 | Netty worker threads count |
transport.mqtt.netty.max_payload_size | NETTY_MAX_PAYLOAD_SIZE | 65536 | Max payload size in bytes |
transport.mqtt.netty.so_keep_alive | NETTY_SO_KEEPALIVE | false | |
transport.mqtt.ssl.enabled | MQTT_SSL_ENABLED | false | Enable/disable MQTTS support |
transport.mqtt.ssl.bind_address | MQTT_SSL_BIND_ADDRESS | 0.0.0.0 | MMQTT SSL bind address |
transport.mqtt.ssl.bind_port | MQTT_SSL_BIND_PORT | 8883 | MQTT SSL bind port |
transport.mqtt.ssl.protocol | MQTT_SSL_PROTOCOL | TLSv1.2 | SSL protocol: See this link |
transport.mqtt.ssl.credentials.type. | MQTT_SSL_CREDENTIALS_TYPE | PEM | Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore) |
transport.mqtt.ssl.credentials.pem.cert_file | MQTT_SSL_PEM_CERT | mqttserver.pem | Path to the server certificate file (holds server certificate or certificate chain, may include server private key) |
transport.mqtt.ssl.credentials.pem.key_file | MQTT_SSL_PEM_KEY | mqttserver_key.pem | Path to the server certificate private key file (optional) |
transport.mqtt.ssl.credentials.pem.key_password | MQTT_SSL_PEM_KEY_PASSWORD | server_key_password | Server certificate private key password (optional) |
transport.mqtt.ssl.credentials.keystore.type | MQTT_SSL_KEY_STORE_TYPE | PKCS12 | Type of the key store: PKCS12 or JKS |
transport.mqtt.ssl.credentials.keystore.store_file | MQTT_SSL_KEY_STORE | mqttserver.jks | Path to the key store that holds the SSL certificate |
transport.mqtt.ssl.credentials.keystore.store_password | MQTT_SSL_KEY_STORE_PASSWORD | server_ks_password | Password used to access the key store |
transport.mqtt.ssl.credentials.keystore.key_password | MQTT_SSL_KEY_PASSWORD | server_key_password | Password used to access the key |
transport.mqtt.ssl.skip_validity_check_for_client_cert | MQTT_SSL_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT | false | Skip certificate validity check for client certificates |
Parameter | Environment Variable | Default Value | Description |
transport.sessions.inactivity_timeout | TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT | 300000 | Inactivity timeout for device session in transport service. The last activity time of the device session is updated if device sends any message, including keepalive messages. |
transport.sessions.report_timeout | TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT | 3000 | Interval of periodic check for expired sessions and report of the changes to session last activity time. |
transport.rate_limits.enabled | TB_TRANSPORT_RATE_LIMITS_ENABLED | false | |
transport.rate_limits.tenant | TB_TRANSPORT_RATE_LIMITS_TENANT | 1000:1,20000:60 | |
transport.rate_limits.device | TB_TRANSPORT_RATE_LIMITS_DEVICE | 10:1,300:60 | |
transport.json.type_cast_enabled | JSON_TYPE_CAST_ENABLED | true | Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON |
transport.json.max_string_value_length | JSON_MAX_STRING_VALUE_LENGTH | 0 | Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check) |
transport.client_side_rpc.timeout | CLIENT_SIDE_RPC_TIMEOUT | 60000 | |
transport.api_enabled | TB_TRANSPORT_API_ENABLED | true | Enable/disable http/mqtt/coap transport protocols (has higher priority than certain protocol's 'enabled' property) |
transport.log.enabled | TB_TRANSPORT_LOG_ENABLED | true | Enable/Disable log of transport messages to telemetry. For example, logging of LwM2M registration update. |
transport.log.max_length | TB_TRANSPORT_LOG_MAX_LENGTH | 1024 | Maximum length of the log message. The content will be truncated to the specified value if needed. |
transport.stats.enabled | TB_TRANSPORT_STATS_ENABLED | true | Enable/Disable collection of transport statistics |
transport.stats.print-interval-ms | TB_TRANSPORT_STATS_PRINT_INTERVAL_MS | 60000 | Interval of transport statistics logging. |
Queue parameters
Parameter | Environment Variable | Default Value | Description |
queue.type | TB_QUEUE_TYPE | kafka | In-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) |
Parameter | Environment Variable | Default Value | Description |
queue.kafka.bootstrap.servers | TB_KAFKA_SERVERS | localhost:9092 | Kafka Bootstrap servers list as a connection string for kafka client |
queue.kafka.acks | TB_KAFKA_ACKS | all | General Kafka client setting |
queue.kafka.retries | TB_KAFKA_RETRIES | 1 | General Kafka client setting |
queue.kafka.compression | TB_KAFKA_COMPRESSION_TYPE | none | Compression of the Kafka messages: none or gzip |
queue.kafka.batch.size | TB_KAFKA_BATCH_SIZE | 16384 | General Kafka client setting |
queue.kafka.linger.ms | TB_KAFKA_LINGER_MS | 1 | General Kafka client setting |
queue.kafka.max.request.size | TB_KAFKA_MAX_REQUEST_SIZE | 1048576 | General Kafka client setting |
queue.kafka.max.in.flight.requests.per.connection | TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION | 5 | General Kafka client setting |
queue.kafka.buffer.memory | TB_BUFFER_MEMORY | 33554432 | General Kafka client setting |
queue.kafka.replication_factor | TB_QUEUE_KAFKA_REPLICATION_FACTOR | 1 | General Kafka client setting |
queue.kafka.max_poll_interval_ms | TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS | 300000 | General Kafka client setting |
queue.kafka.max_poll_records | TB_QUEUE_KAFKA_MAX_POLL_RECORDS | 8192 | General Kafka client setting |
queue.kafka.max_partition_fetch_bytes | TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES | 16777216 | General Kafka client setting |
queue.kafka.fetch_max_bytes | TB_QUEUE_KAFKA_FETCH_MAX_BYTES | 134217728 | General Kafka client setting |
queue.kafka.use_confluent_cloud | TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD | false | Enable to connect to Confluent Cloud. |
queue.kafka.confluent.ssl.algorithm | TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM | https | Confluent Cloud connection settings |
queue.kafka.confluent.sasl.mechanism | TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM | PLAIN | Confluent Cloud connection settings |
queue.kafka.confluent.sasl.config | TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG | Confluent Cloud connection settings | |
queue.kafka.confluent.security.protocol | TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL | SASL_SSL | Confluent Cloud connection settings |
queue.kafka.consumer-properties-per-topic.tb_ota_package.key | max.poll.records | Example of specific consumer properties key per topic | |
queue.kafka.consumer-properties-per-topic.tb_ota_package.value | TB_QUEUE_KAFKA_OTA_MAX_POLL_RECORDS | 10 | Example of specific consumer properties value per topic |
queue.kafka.other.key | request.timeout.ms | refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms | |
queue.kafka.other.value | TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS | 30000 | (30 seconds) |
queue.kafka.other.key | session.timeout.ms | refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms | |
queue.kafka.other.value | TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS | 10000 | (10 seconds) |
queue.kafka.topic-properties.rule-engine | TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Rule Engine topics |
queue.kafka.topic-properties.core | TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Core topics |
queue.kafka.topic-properties.transport-api | TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Transport Api topics |
queue.kafka.topic-properties.notifications | TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Notifications topics |
queue.kafka.topic-properties.js-executor | TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1 | Kafka properties for JS Executor topics |
queue.kafka.topic-properties.ota-updates | TB_QUEUE_KAFKA_OTA_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 | Kafka properties for OTA updates topic |
queue.kafka.consumer-stats.enabled | TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED | true | Prints lag between consumer group offset and last messages offset in Kafka topics |
queue.kafka.consumer-stats.print-interval-ms | TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Kafka's consumer-groups stats |
queue.kafka.consumer-stats.kafka-response-timeout-ms | TB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS | 1000 | Time to wait for the stats-loading requests to Kafka to finish |
queue.aws_sqs.use_default_credential_provider_chain | TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN | false | Use default credentials provider for AWS SQS |
queue.aws_sqs.access_key_id | TB_QUEUE_AWS_SQS_ACCESS_KEY_ID | YOUR_KEY | Access key ID from AWS IAM user |
queue.aws_sqs.secret_access_key | TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY | YOUR_SECRET | Secret access key from AWS IAM user |
queue.aws_sqs.region | TB_QUEUE_AWS_SQS_REGION | YOUR_REGION | Region from AWS account |
queue.aws_sqs.threads_per_topic | TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC | 1 | Number of threads per each AWS SQS queue in consumer |
queue.aws_sqs.queue-properties.rule-engine | TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.core | TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.transport-api | TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.notifications | TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.js-executor | TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.pubsub.project_id | TB_QUEUE_PUBSUB_PROJECT_ID | YOUR_PROJECT_ID | Project Id from google cloud |
queue.pubsub.service_account | TB_QUEUE_PUBSUB_SERVICE_ACCOUNT | YOUR_SERVICE_ACCOUNT | API Credentials in json format |
queue.pubsub.max_msg_size | TB_QUEUE_PUBSUB_MAX_MSG_SIZE | 1048576 | in bytes |
queue.pubsub.max_messages | TB_QUEUE_PUBSUB_MAX_MESSAGES | 1000 | Number of messages per a consumer |
queue.pubsub.queue-properties.rule-engine | TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.core | TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.transport-api | TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Transport Api subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.notifications | TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Notifications subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.js-executor | TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Js Executor subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.service_bus.namespace_name | TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME | YOUR_NAMESPACE_NAME | Azure namespace is a scoping container for all messaging components |
queue.service_bus.sas_key_name | TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME | YOUR_SAS_KEY_NAME | Azure Service Bus Shared Access Signatures key name |
queue.service_bus.sas_key | TB_QUEUE_SERVICE_BUS_SAS_KEY | YOUR_SAS_KEY | Azure Service Bus Shared Access Signatures key |
queue.service_bus.max_messages | TB_QUEUE_SERVICE_BUS_MAX_MESSAGES | 1000 | Number of messages per a consumer |
queue.service_bus.queue-properties.rule-engine | TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Rule Engine queues |
queue.service_bus.queue-properties.core | TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Core queues |
queue.service_bus.queue-properties.transport-api | TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Transport Api queues |
queue.service_bus.queue-properties.notifications | TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Notifications queues |
queue.service_bus.queue-properties.js-executor | TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Js Executor queues |
queue.rabbitmq.exchange_name | TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME | Default empty | |
queue.rabbitmq.host | TB_QUEUE_RABBIT_MQ_HOST | localhost | RabbitMQ host used to establish connection |
queue.rabbitmq.port | TB_QUEUE_RABBIT_MQ_PORT | 5672 | RabbitMQ host used to establish connection |
queue.rabbitmq.virtual_host | TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST | / | Virtual hosts provide logical grouping and separation of resources |
queue.rabbitmq.password | TB_QUEUE_RABBIT_MQ_PASSWORD | YOUR_PASSWORD | User password for RabbitMQ user account |
queue.rabbitmq.automatic_recovery_enabled | TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED | false | Network connection between clients and RabbitMQ nodes can fail. RabbitMQ Java client supports automatic recovery of connections and topology (queues, exchanges, bindings, and consumers) |
queue.rabbitmq.connection_timeout | TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT | 60000 | The connection timeout for the RabbitMQ connection factory |
queue.rabbitmq.handshake_timeout | TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT | 10000 | RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout |
queue.rabbitmq.queue-properties.rule-engine | TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Rule Engine queues |
queue.rabbitmq.queue-properties.core | TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Core queues |
queue.rabbitmq.queue-properties.transport-api | TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Transport Api queues |
queue.rabbitmq.queue-properties.notifications | TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Notifications queues |
queue.rabbitmq.queue-properties.js-executor | TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Js Executor queues |
queue.partitions.hash_function_name | TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME | murmur3_128 | Name of hash function used for consistent hash ring in Cluster Mode. See architecture docs for more details. murmur3_32, murmur3_128 or sha256 |
queue.transport_api.requests_topic | TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC | tb_transport.api.requests | Topic used to consume api requests from transport microservices |
queue.transport_api.responses_topic | TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC | tb_transport.api.responses | Topic used to produce api responses to transport microservices |
queue.transport_api.max_pending_requests | TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS | 10000 | Maximum pending api requests from transport microservices to be handled by server |
queue.transport_api.max_requests_timeout | TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT | 10000 | Maximum timeout in milliseconds to handle api request from transport microservice by server |
queue.transport_api.max_callback_threads | TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS | 100 | Amount of threads used to invoke callbacks |
queue.transport_api.request_poll_interval | TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll api requests from transport microservices |
queue.transport_api.response_poll_interval | TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll api response from transport microservices |
queue.core.topic | TB_QUEUE_CORE_TOPIC | tb_core | Topic name for Core microservices |
queue.core.poll-interval | TB_QUEUE_CORE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Core microservices |
queue.core.partitions | TB_QUEUE_CORE_PARTITIONS | 10 | Amount of partitions used by Core microservices |
queue.core.pack-processing-timeout | TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS | 2000 | Timeout for processing a message pack by Core microservices |
queue.core.ota.topic | TB_QUEUE_CORE_OTA_TOPIC | tb_ota_package | The topic for queue of OTA updates |
queue.core.ota.pack-interval-ms | TB_QUEUE_CORE_OTA_PACK_INTERVAL_MS | 60000 | The interval of processing the OTA updates for devices. Used to avoid any harm to network due to many parallel OTA updates |
queue.core.ota.pack-size | TB_QUEUE_CORE_OTA_PACK_SIZE | 100 | The size of OTA updates notifications fetched from the queue. The queue stores pairs of firmware and device ids. |
queue.core.usage-stats-topic | TB_QUEUE_US_TOPIC | tb_usage_stats | The parameter to store usage statistics |
queue.core.stats.enabled | TB_QUEUE_CORE_STATS_ENABLED | true | Enable/disable statistics for Core microservices |
queue.core.stats.print-interval-ms | TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Core microservices |
queue.js.request_topic | REMOTE_JS_EVAL_REQUEST_TOPIC | js_eval.requests | JS Eval request topic |
queue.js.response_topic_prefix | REMOTE_JS_EVAL_RESPONSE_TOPIC | js_eval.responses | JS Eval responses topic prefix that is combined with node id |
queue.js.max_pending_requests | REMOTE_JS_MAX_PENDING_REQUESTS | 10000 | JS Eval max pending requests |
queue.js.max_eval_requests_timeout | REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT | 60000 | JS Eval max request timeout |
queue.js.max_requests_timeout | REMOTE_JS_MAX_REQUEST_TIMEOUT | 10000 | JS max request timeout |
queue.js.response_poll_interval | REMOTE_JS_RESPONSE_POLL_INTERVAL_MS | 25 | JS response poll interval |
queue.rule-engine.topic | TB_QUEUE_RULE_ENGINE_TOPIC | tb_rule_engine | Topic name for Rule Engine microservices |
queue.rule-engine.poll-interval | TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Rule Engine microservices |
queue.rule-engine.pack-processing-timeout | TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS | 2000 | Timeout for processing a message pack |
queue.rule-engine.stats.enabled | TB_QUEUE_RULE_ENGINE_STATS_ENABLED | true | Enable/disable statistics for Rule Engine microservices |
queue.rule-engine.stats.print-interval-ms | TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Rule Engine microservices |
queue.transport.notifications_topic | TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC | tb_transport.notifications | Transport notifications topic |
queue.transport.poll_interval | TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Core microservices |
queue.vc.topic | TB_QUEUE_VC_TOPIC | tb_version_control | Topic for storing Version Control synchronization tasks |
queue.vc.partitions | TB_QUEUE_VC_PARTITIONS | 10 | Amount of partitions used by Version Control microservices |
queue.vc.poll-interval | TB_QUEUE_VC_INTERVAL_MS | 10 | Interval in milliseconds to poll messages by Version Control microservices |
queue.vc.pack-processing-timeout | TB_QUEUE_VC_PACK_PROCESSING_TIMEOUT_MS | 10 | Timeout for processing a message pack |
ThingsBoard service parameters
Parameter | Environment Variable | Default Value | Description |
service.type | TB_SERVICE_TYPE | tb-transport | |
service.id | TB_SERVICE_ID | Unique id for this service (autogenerated if empty) | |
service.tenant_id | TB_SERVICE_TENANT_ID | Empty or specific tenant id |
ThingsBoard metrics parameters
Parameter | Environment Variable | Default Value | Description |
metrics.enabled | METRICS_ENABLED | false | Enable/disable actuator metrics |
ThingsBoard management parameters
Parameter | Environment Variable | Default Value | Description |
management.endpoints.web.exposure.include | METRICS_ENDPOINTS_EXPOSE | info | Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics) |
CoAP Transport Settings
Parameter | Environment Variable | Default Value | Description |
spring.main.web-environment | WEB_APPLICATION_ENABLE | false | If you enabled process metrics you should also enable 'web-environment' |
spring.main.web-application-type | WEB_APPLICATION_TYPE | none | If you enabled process metrics you should set 'web-application-type' to 'servlet' value |
Server Parameters
Parameter | Environment Variable | Default Value | Description |
server.address | HTTP_BIND_ADDRESS | 0.0.0.0 | Server bind address (has no effect if web-environment is disabled) |
server.port | HTTP_BIND_PORT | 8083 | Server bind port (has no effect if web-environment is disabled) |
Zookeeper connection parameters
Parameter | Environment Variable | Default Value | Description |
zk.enabled | ZOOKEEPER_ENABLED | false | Enable/disable zookeeper discovery service. Used for ThingsBoard cluster |
zk.url | ZOOKEEPER_URL | localhost:2181 | Zookeeper connect string |
zk.retry_interval_ms | ZOOKEEPER_RETRY_INTERVAL_MS | 3000 | Zookeeper retry interval in milliseconds |
zk.connection_timeout_ms | ZOOKEEPER_CONNECTION_TIMEOUT_MS | 3000 | Zookeeper connection timeout in milliseconds |
zk.session_timeout_ms | ZOOKEEPER_SESSION_TIMEOUT_MS | 3000 | Zookeeper session timeout in milliseconds |
zk.zk_dir | ZOOKEEPER_NODES_DIR | /thingsboard | Name of the directory in zookeeper 'filesystem' |
Cache Parameter
Parameter | Environment Variable | Default Value | Description |
cache.type | CACHE_TYPE | redis |
Redis connection parameters
Parameter | Environment Variable | Default Value | Description |
redis.connection.type | REDIS_CONNECTION_TYPE | standalone | Redis connection type - standalone or cluster |
redis.standalone.host | REDIS_HOST | localhost | Redis connection host |
redis.standalone.port | REDIS_PORT | 6379 | Redis connection port |
redis.standalone.useDefaultClientConfig | REDIS_USE_DEFAULT_CLIENT_CONFIG | true | Redis connection port |
redis.standalone.clientName | REDIS_CLIENT_NAME | standalone | This value may be used only if you used not default ClientConfig |
redis.standalone.connectTimeout | REDIS_CLIENT_CONNECT_TIMEOUT | 30000 | This value may be used only if you used not default ClientConfig |
redis.standalone.readTimeout | REDIS_CLIENT_READ_TIMEOUT | 60000 | This value may be used only if you used not default ClientConfig |
redis.standalone.usePoolConfig | REDIS_CLIENT_USE_POOL_CONFIG | false | This value may be used only if you used not default ClientConfig |
redis.cluster.nodes | REDIS_NODES | Comma-separated list of "host:port" pairs to bootstrap from | |
redis.cluster.max-redirects | REDIS_MAX_REDIRECTS | 12 | Maximum number of redirects to follow when executing commands across the cluster |
redis.cluster.useDefaultPoolConfig | REDIS_USE_DEFAULT_POOL_CONFIG | true | Use default redis pool configuration. If set to "true", the REDIS_POOL_CONFIG_* properties will be ignored. |
redis.db | REDIS_DB | 0 | Redis database index |
redis.password | REDIS_PASSWORD | Redis database password | |
redis.pool_config.maxTotal | REDIS_POOL_CONFIG_MAX_TOTAL | 128 | General redis pool settings |
redis.pool_config.maxIdle | REDIS_POOL_CONFIG_MAX_IDLE | 128 | General redis pool settings |
redis.pool_config.minIdle | REDIS_POOL_CONFIG_MIN_IDLE | 16 | General redis pool settings |
redis.pool_config.testOnBorrow | REDIS_POOL_CONFIG_TEST_ON_BORROW | true | General redis pool settings |
redis.pool_config.testOnReturn | REDIS_POOL_CONFIG_TEST_ON_RETURN | true | General redis pool settings |
redis.pool_config.testWhileIdle | REDIS_POOL_CONFIG_TEST_WHILE_IDLE | true | General redis pool settings |
redis.pool_config.minEvictableMs | REDIS_POOL_CONFIG_MIN_EVICTABLE_MS | 60000 | General redis pool settings |
redis.pool_config.evictionRunsMs | REDIS_POOL_CONFIG_EVICTION_RUNS_MS | 30000 | General redis pool settings |
redis.pool_config.maxWaitMills | REDIS_POOL_CONFIG_MAX_WAIT_MS | 60000 | General redis pool settings |
redis.pool_config.numberTestsPerEvictionRun | REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN | 3 | General redis pool settings |
redis.pool_config.blockWhenExhausted | REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED | true | General redis pool settings |
COAP server parameters
Parameter | Environment Variable | Default Value | Description |
transport.coap.bind_address | COAP_BIND_ADDRESS | 0.0.0.0 | CoAP bind address |
transport.coap.bind_port | COAP_BIND_PORT | 5683 | CoAP bind port |
transport.coap.timeout | COAP_TIMEOUT | 10000 | CoaP processing timeout in milliseconds |
transport.coap.psm_activity_timer | COAP_PSM_ACTIVITY_TIMER | 10000 | Default PSM Activity Timer if not specified in device profile. |
transport.coap.paging_transmission_window | COAP_PAGING_TRANSMISSION_WINDOW | 10000 | Default Paging Transmission Window for eDRX support if not specified in the device profile. |
transport.coap.dtls.enabled | COAP_DTLS_ENABLED | false | Enable/disable DTLS 1.2 support |
transport.coap.dtls.bind_address | COAP_DTLS_BIND_ADDRESS | 0.0.0.0 | CoAP DTLS bind address |
transport.coap.dtls.bind_port | COAP_DTLS_BIND_PORT | 5684 | CoAP DTLS bind port |
transport.coap.dtls.credentials.type | COAP_DTLS_CREDENTIALS_TYPE | PEM | Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore) |
transport.coap.dtls.credentials.pem.cert_file | COAP_DTLS_PEM_CERT | coapserver.pem | Path to the server certificate file (holds server certificate or certificate chain, may include server private key) |
transport.coap.dtls.credentials.pem.key_file | COAP_DTLS_PEM_KEY | coapserver_key.pem | Path to the server certificate private key file (optional) |
transport.coap.dtls.credentials.pem.key_password | COAP_DTLS_PEM_KEY_PASSWORD | server_key_password | Server certificate private key password (optional) |
transport.coap.dtls.credentials.keystore.type | COAP_DTLS_KEY_STORE_TYPE | JKS | Type of the key store |
transport.coap.dtls.credentials.keystore.store_file | COAP_DTLS_KEY_STORE | coapserver.jks | Path to the key store that holds the SSL certificate |
transport.coap.dtls.credentials.keystore.store_password | COAP_DTLS_KEY_STORE_PASSWORD | server_ks_password | Password used to access the key store |
transport.coap.dtls.credentials.keystore.key_alias | COAP_DTLS_KEY_ALIAS | serveralias | Key alias |
transport.coap.dtls.credentials.keystore.key_password | COAP_DTLS_KEY_PASSWORD | server_key_password | Password used to access the key |
transport.coap.dtls.x509.skip_validity_check_for_client_cert | TB_COAP_X509_DTLS_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT | false | Skip check of client certificate validity. |
transport.coap.dtls.x509.dtls_session_inactivity_timeout | TB_COAP_X509_DTLS_SESSION_INACTIVITY_TIMEOUT | 86400000 | Inactivity timeout of DTLS session. Used to cleanup cache. |
transport.coap.dtls.x509.dtls_session_report_timeout | TB_COAP_X509_DTLS_SESSION_REPORT_TIMEOUT | 1800000 | Interval of periodic eviction of the timed-out DTLS sessions. |
Parameter | Environment Variable | Default Value | Description |
transport.sessions.inactivity_timeout | TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT | 300000 | Inactivity timeout for device session in transport service. The last activity time of the device session is updated if device sends any message, including keepalive messages. |
transport.sessions.report_timeout | TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT | 3000 | Interval of periodic check for expired sessions and report of the changes to session last activity time. |
transport.rate_limits.enabled | TB_TRANSPORT_RATE_LIMITS_ENABLED | false | |
transport.rate_limits.tenant | TB_TRANSPORT_RATE_LIMITS_TENANT | 1000:1,20000:60 | |
transport.rate_limits.device | TB_TRANSPORT_RATE_LIMITS_DEVICE | 10:1,300:60 | |
transport.json.type_cast_enabled | JSON_TYPE_CAST_ENABLED | true | Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON |
transport.json.max_string_value_length | JSON_MAX_STRING_VALUE_LENGTH | 0 | Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check) |
transport.client_side_rpc.timeout | CLIENT_SIDE_RPC_TIMEOUT | 60000 | |
transport.api_enabled | TB_TRANSPORT_API_ENABLED | true | Enable/disable http/mqtt/coap transport protocols (has higher priority than certain protocol's 'enabled' property) |
transport.log.enabled | TB_TRANSPORT_LOG_ENABLED | true | Enable/Disable log of transport messages to telemetry. For example, logging of LwM2M registration update. |
transport.log.max_length | TB_TRANSPORT_LOG_MAX_LENGTH | 1024 | Maximum length of the log message. The content will be truncated to the specified value if needed. |
transport.stats.enabled | TB_TRANSPORT_STATS_ENABLED | true | Enable/Disable collection of transport statistics |
transport.stats.print-interval-ms | TB_TRANSPORT_STATS_PRINT_INTERVAL_MS | 60000 | Interval of transport statistics logging. |
Queue parameters
Parameter | Environment Variable | Default Value | Description |
queue.type | TB_QUEUE_TYPE | kafka | In-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) |
Parameter | Environment Variable | Default Value | Description |
queue.kafka.bootstrap.servers | TB_KAFKA_SERVERS | localhost:9092 | Kafka Bootstrap servers list as a connection string for kafka client |
queue.kafka.acks | TB_KAFKA_ACKS | all | General Kafka client setting |
queue.kafka.retries | TB_KAFKA_RETRIES | 1 | General Kafka client setting |
queue.kafka.compression | TB_KAFKA_COMPRESSION_TYPE | none | Compression of the Kafka messages: none or gzip |
queue.kafka.batch.size | TB_KAFKA_BATCH_SIZE | 16384 | General Kafka client setting |
queue.kafka.linger.ms | TB_KAFKA_LINGER_MS | 1 | General Kafka client setting |
queue.kafka.max.request.size | TB_KAFKA_MAX_REQUEST_SIZE | 1048576 | General Kafka client setting |
queue.kafka.max.in.flight.requests.per.connection | TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION | 5 | General Kafka client setting |
queue.kafka.buffer.memory | TB_BUFFER_MEMORY | 33554432 | General Kafka client setting |
queue.kafka.replication_factor | TB_QUEUE_KAFKA_REPLICATION_FACTOR | 1 | General Kafka client setting |
queue.kafka.max_poll_interval_ms | TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS | 300000 | General Kafka client setting |
queue.kafka.max_poll_records | TB_QUEUE_KAFKA_MAX_POLL_RECORDS | 8192 | General Kafka client setting |
queue.kafka.max_partition_fetch_bytes | TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES | 16777216 | General Kafka client setting |
queue.kafka.fetch_max_bytes | TB_QUEUE_KAFKA_FETCH_MAX_BYTES | 134217728 | General Kafka client setting |
queue.kafka.use_confluent_cloud | TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD | false | Enable to connect to Confluent Cloud. |
queue.kafka.confluent.ssl.algorithm | TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM | https | Confluent Cloud connection settings |
queue.kafka.confluent.sasl.mechanism | TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM | PLAIN | Confluent Cloud connection settings |
queue.kafka.confluent.sasl.config | TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG | Confluent Cloud connection settings | |
queue.kafka.confluent.security.protocol | TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL | SASL_SSL | Confluent Cloud connection settings |
queue.kafka.consumer-properties-per-topic.tb_ota_package.key | max.poll.records | Example of specific consumer properties key per topic | |
queue.kafka.consumer-properties-per-topic.tb_ota_package.value | TB_QUEUE_KAFKA_OTA_MAX_POLL_RECORDS | 10 | Example of specific consumer properties value per topic |
queue.kafka.other.key | request.timeout.ms | refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms | |
queue.kafka.other.value | TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS | 30000 | (30 seconds) |
queue.kafka.other.key | session.timeout.ms | refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms | |
queue.kafka.other.value | TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS | 10000 | (10 seconds) |
queue.kafka.topic-properties.rule-engine | TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Rule Engine topics |
queue.kafka.topic-properties.core | TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Core topics |
queue.kafka.topic-properties.transport-api | TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Transport Api topics |
queue.kafka.topic-properties.notifications | TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Notifications topics |
queue.kafka.topic-properties.js-executor | TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1 | Kafka properties for JS Executor topics |
queue.kafka.topic-properties.ota-updates | TB_QUEUE_KAFKA_OTA_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 | Kafka properties for OTA updates topic |
queue.kafka.consumer-stats.enabled | TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED | true | Prints lag between consumer group offset and last messages offset in Kafka topics |
queue.kafka.consumer-stats.print-interval-ms | TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Kafka's consumer-groups stats |
queue.kafka.consumer-stats.kafka-response-timeout-ms | TB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS | 1000 | Time to wait for the stats-loading requests to Kafka to finish |
queue.aws_sqs.use_default_credential_provider_chain | TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN | false | Use default credentials provider for AWS SQS |
queue.aws_sqs.access_key_id | TB_QUEUE_AWS_SQS_ACCESS_KEY_ID | YOUR_KEY | Access key ID from AWS IAM user |
queue.aws_sqs.secret_access_key | TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY | YOUR_SECRET | Secret access key from AWS IAM user |
queue.aws_sqs.region | TB_QUEUE_AWS_SQS_REGION | YOUR_REGION | Region from AWS account |
queue.aws_sqs.threads_per_topic | TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC | 1 | Number of threads per each AWS SQS queue in consumer |
queue.aws_sqs.queue-properties.rule-engine | TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.core | TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.transport-api | TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.notifications | TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.js-executor | TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.pubsub.project_id | TB_QUEUE_PUBSUB_PROJECT_ID | YOUR_PROJECT_ID | Project Id from google cloud |
queue.pubsub.service_account | TB_QUEUE_PUBSUB_SERVICE_ACCOUNT | YOUR_SERVICE_ACCOUNT | API Credentials in json format |
queue.pubsub.max_msg_size | TB_QUEUE_PUBSUB_MAX_MSG_SIZE | 1048576 | in bytes |
queue.pubsub.max_messages | TB_QUEUE_PUBSUB_MAX_MESSAGES | 1000 | Number of messages per a consumer |
queue.pubsub.queue-properties.rule-engine | TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.core | TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.transport-api | TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Transport Api subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.notifications | TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Notifications subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.js-executor | TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Js Executor subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.service_bus.namespace_name | TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME | YOUR_NAMESPACE_NAME | Azure namespace is a scoping container for all messaging components |
queue.service_bus.sas_key_name | TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME | YOUR_SAS_KEY_NAME | Azure Service Bus Shared Access Signatures key name |
queue.service_bus.sas_key | TB_QUEUE_SERVICE_BUS_SAS_KEY | YOUR_SAS_KEY | Azure Service Bus Shared Access Signatures key |
queue.service_bus.max_messages | TB_QUEUE_SERVICE_BUS_MAX_MESSAGES | 1000 | Number of messages per a consumer |
queue.service_bus.queue-properties.rule-engine | TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Rule Engine queues |
queue.service_bus.queue-properties.core | TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Core queues |
queue.service_bus.queue-properties.transport-api | TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Transport Api queues |
queue.service_bus.queue-properties.notifications | TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Notifications queues |
queue.service_bus.queue-properties.js-executor | TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Js Executor queues |
queue.rabbitmq.exchange_name | TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME | Default empty | |
queue.rabbitmq.host | TB_QUEUE_RABBIT_MQ_HOST | localhost | RabbitMQ host used to establish connection |
queue.rabbitmq.port | TB_QUEUE_RABBIT_MQ_PORT | 5672 | RabbitMQ host used to establish connection |
queue.rabbitmq.virtual_host | TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST | / | Virtual hosts provide logical grouping and separation of resources |
queue.rabbitmq.password | TB_QUEUE_RABBIT_MQ_PASSWORD | YOUR_PASSWORD | User password for RabbitMQ user account |
queue.rabbitmq.automatic_recovery_enabled | TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED | false | Network connection between clients and RabbitMQ nodes can fail. RabbitMQ Java client supports automatic recovery of connections and topology (queues, exchanges, bindings, and consumers) |
queue.rabbitmq.connection_timeout | TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT | 60000 | The connection timeout for the RabbitMQ connection factory |
queue.rabbitmq.handshake_timeout | TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT | 10000 | RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout |
queue.rabbitmq.queue-properties.rule-engine | TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Rule Engine queues |
queue.rabbitmq.queue-properties.core | TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Core queues |
queue.rabbitmq.queue-properties.transport-api | TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Transport Api queues |
queue.rabbitmq.queue-properties.notifications | TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Notifications queues |
queue.rabbitmq.queue-properties.js-executor | TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Js Executor queues |
queue.partitions.hash_function_name | TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME | murmur3_128 | Name of hash function used for consistent hash ring in Cluster Mode. See architecture docs for more details. murmur3_32, murmur3_128 or sha256 |
queue.transport_api.requests_topic | TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC | tb_transport.api.requests | Topic used to consume api requests from transport microservices |
queue.transport_api.responses_topic | TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC | tb_transport.api.responses | Topic used to produce api responses to transport microservices |
queue.transport_api.max_pending_requests | TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS | 10000 | Maximum pending api requests from transport microservices to be handled by server |
queue.transport_api.max_requests_timeout | TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT | 10000 | Maximum timeout in milliseconds to handle api request from transport microservice by server |
queue.transport_api.max_callback_threads | TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS | 100 | Amount of threads used to invoke callbacks |
queue.transport_api.request_poll_interval | TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll api requests from transport microservices |
queue.transport_api.response_poll_interval | TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll api response from transport microservices |
queue.core.topic | TB_QUEUE_CORE_TOPIC | tb_core | Topic name for Core microservices |
queue.core.poll-interval | TB_QUEUE_CORE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Core microservices |
queue.core.partitions | TB_QUEUE_CORE_PARTITIONS | 10 | Amount of partitions used by Core microservices |
queue.core.pack-processing-timeout | TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS | 2000 | Timeout for processing a message pack by Core microservices |
queue.core.ota.topic | TB_QUEUE_CORE_OTA_TOPIC | tb_ota_package | The topic for queue of OTA updates |
queue.core.ota.pack-interval-ms | TB_QUEUE_CORE_OTA_PACK_INTERVAL_MS | 60000 | The interval of processing the OTA updates for devices. Used to avoid any harm to network due to many parallel OTA updates |
queue.core.ota.pack-size | TB_QUEUE_CORE_OTA_PACK_SIZE | 100 | The size of OTA updates notifications fetched from the queue. The queue stores pairs of firmware and device ids. |
queue.core.usage-stats-topic | TB_QUEUE_US_TOPIC | tb_usage_stats | The parameter to store usage statistics |
queue.core.stats.enabled | TB_QUEUE_CORE_STATS_ENABLED | true | Enable/disable statistics for Core microservices |
queue.core.stats.print-interval-ms | TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Core microservices |
queue.js.request_topic | REMOTE_JS_EVAL_REQUEST_TOPIC | js_eval.requests | JS Eval request topic |
queue.js.response_topic_prefix | REMOTE_JS_EVAL_RESPONSE_TOPIC | js_eval.responses | JS Eval responses topic prefix that is combined with node id |
queue.js.max_pending_requests | REMOTE_JS_MAX_PENDING_REQUESTS | 10000 | JS Eval max pending requests |
queue.js.max_eval_requests_timeout | REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT | 60000 | JS Eval max request timeout |
queue.js.max_requests_timeout | REMOTE_JS_MAX_REQUEST_TIMEOUT | 10000 | JS max request timeout |
queue.js.response_poll_interval | REMOTE_JS_RESPONSE_POLL_INTERVAL_MS | 25 | JS response poll interval |
queue.rule-engine.topic | TB_QUEUE_RULE_ENGINE_TOPIC | tb_rule_engine | Topic name for Rule Engine microservices |
queue.rule-engine.poll-interval | TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Rule Engine microservices |
queue.rule-engine.pack-processing-timeout | TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS | 2000 | Timeout for processing a message pack |
queue.rule-engine.stats.enabled | TB_QUEUE_RULE_ENGINE_STATS_ENABLED | true | Enable/disable statistics for Rule Engine microservices |
queue.rule-engine.stats.print-interval-ms | TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Rule Engine microservices |
queue.transport.notifications_topic | TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC | tb_transport.notifications | Transport notifications topic |
queue.transport.poll_interval | TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Core microservices |
queue.vc.topic | TB_QUEUE_VC_TOPIC | tb_version_control | Topic for storing Version Control synchronization tasks |
queue.vc.partitions | TB_QUEUE_VC_PARTITIONS | 10 | Amount of partitions used by Version Control microservices |
queue.vc.poll-interval | TB_QUEUE_VC_INTERVAL_MS | 10 | Interval in milliseconds to poll messages by Version Control microservices |
queue.vc.pack-processing-timeout | TB_QUEUE_VC_PACK_PROCESSING_TIMEOUT_MS | 10 | Timeout for processing a message pack |
ThingsBoard service parameters
Parameter | Environment Variable | Default Value | Description |
service.type | TB_SERVICE_TYPE | tb-transport | |
service.id | TB_SERVICE_ID | Unique id for this service (autogenerated if empty) | |
service.tenant_id | TB_SERVICE_TENANT_ID | Empty or specific tenant id |
ThingsBoard metrics parameters
Parameter | Environment Variable | Default Value | Description |
metrics.enabled | METRICS_ENABLED | false | Enable/disable actuator metrics |
ThingsBoard management parameters
Parameter | Environment Variable | Default Value | Description |
management.endpoints.web.exposure.include | METRICS_ENDPOINTS_EXPOSE | info | Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics) |
LWM2M Transport Parameters
Parameter | Environment Variable | Default Value | Description |
spring.main.web-environment | WEB_APPLICATION_ENABLE | false | If you enabled process metrics you should also enable 'web-environment' |
spring.main.web-application-type | WEB_APPLICATION_TYPE | none | If you enabled process metrics you should set 'web-application-type' to 'servlet' value |
Server Parameters
Parameter | Environment Variable | Default Value | Description |
server.address | HTTP_BIND_ADDRESS | 0.0.0.0 | Server bind address (has no effect if web-environment is disabled) |
server.port | HTTP_BIND_PORT | 8083 | Server bind port (has no effect if web-environment is disabled) |
Zookeeper connection parameters
Parameter | Environment Variable | Default Value | Description |
zk.enabled | ZOOKEEPER_ENABLED | false | Enable/disable zookeeper discovery service. Used for ThingsBoard cluster |
zk.url | ZOOKEEPER_URL | localhost:2181 | Zookeeper connect string |
zk.retry_interval_ms | ZOOKEEPER_RETRY_INTERVAL_MS | 3000 | Zookeeper retry interval in milliseconds |
zk.connection_timeout_ms | ZOOKEEPER_CONNECTION_TIMEOUT_MS | 3000 | Zookeeper connection timeout in milliseconds |
zk.session_timeout_ms | ZOOKEEPER_SESSION_TIMEOUT_MS | 3000 | Zookeeper session timeout in milliseconds |
zk.zk_dir | ZOOKEEPER_NODES_DIR | /thingsboard | Name of the directory in zookeeper 'filesystem' |
Cache Parameter
Parameter | Environment Variable | Default Value | Description |
cache.type | CACHE_TYPE | redis |
Redis connection parameters
Parameter | Environment Variable | Default Value | Description |
redis.connection.type | REDIS_CONNECTION_TYPE | standalone | Redis connection type - standalone or cluster |
redis.standalone.host | REDIS_HOST | localhost | Redis connection host |
redis.standalone.port | REDIS_PORT | 6379 | Redis connection port |
redis.standalone.useDefaultClientConfig | REDIS_USE_DEFAULT_CLIENT_CONFIG | true | Redis connection port |
redis.standalone.clientName | REDIS_CLIENT_NAME | standalone | This value may be used only if you used not default ClientConfig |
redis.standalone.connectTimeout | REDIS_CLIENT_CONNECT_TIMEOUT | 30000 | This value may be used only if you used not default ClientConfig |
redis.standalone.readTimeout | REDIS_CLIENT_READ_TIMEOUT | 60000 | This value may be used only if you used not default ClientConfig |
redis.standalone.usePoolConfig | REDIS_CLIENT_USE_POOL_CONFIG | false | This value may be used only if you used not default ClientConfig |
redis.cluster.nodes | REDIS_NODES | Comma-separated list of "host:port" pairs to bootstrap from | |
redis.cluster.max-redirects | REDIS_MAX_REDIRECTS | 12 | Maximum number of redirects to follow when executing commands across the cluster |
redis.cluster.useDefaultPoolConfig | REDIS_USE_DEFAULT_POOL_CONFIG | true | Use default redis pool configuration. If set to "true", the REDIS_POOL_CONFIG_* properties will be ignored. |
redis.db | REDIS_DB | 0 | Redis database index |
redis.password | REDIS_PASSWORD | Redis database password | |
redis.pool_config.maxTotal | REDIS_POOL_CONFIG_MAX_TOTAL | 128 | General redis pool settings |
redis.pool_config.maxIdle | REDIS_POOL_CONFIG_MAX_IDLE | 128 | General redis pool settings |
redis.pool_config.minIdle | REDIS_POOL_CONFIG_MIN_IDLE | 16 | General redis pool settings |
redis.pool_config.testOnBorrow | REDIS_POOL_CONFIG_TEST_ON_BORROW | true | General redis pool settings |
redis.pool_config.testOnReturn | REDIS_POOL_CONFIG_TEST_ON_RETURN | true | General redis pool settings |
redis.pool_config.testWhileIdle | REDIS_POOL_CONFIG_TEST_WHILE_IDLE | true | General redis pool settings |
redis.pool_config.minEvictableMs | REDIS_POOL_CONFIG_MIN_EVICTABLE_MS | 60000 | General redis pool settings |
redis.pool_config.evictionRunsMs | REDIS_POOL_CONFIG_EVICTION_RUNS_MS | 30000 | General redis pool settings |
redis.pool_config.maxWaitMills | REDIS_POOL_CONFIG_MAX_WAIT_MS | 60000 | General redis pool settings |
redis.pool_config.numberTestsPerEvictionRun | REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN | 3 | General redis pool settings |
redis.pool_config.blockWhenExhausted | REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED | true | General redis pool settings |
LWM2M server parameters
Parameter | Environment Variable | Default Value | Description |
transport.lwm2m.server.id | LWM2M_SERVER_ID | 123 | LwM2M Server ID |
transport.lwm2m.server.bind_address | LWM2M_BIND_ADDRESS | 0.0.0.0 | LwM2M server bind address. Bind to all interfaces by default. |
transport.lwm2m.server.bind_port | LWM2M_BIND_PORT | 5685 | LwM2M server bind port. |
transport.lwm2m.server.security.bind_address | LWM2M_SECURITY_BIND_ADDRESS | 0.0.0.0 | LwM2M server bind address for DTLS. Bind to all interfaces by default. |
transport.lwm2m.server.security.bind_port | LWM2M_SECURITY_BIND_PORT | 5686 | LwM2M server bind port for DTLS. |
transport.lwm2m.server.security.credentials.enabled | LWM2M_SERVER_CREDENTIALS_ENABLED | true | Whether to enable LWM2M server X509 Certificate/RPK support |
transport.lwm2m.server.security.credentials.type | LWM2M_SERVER_CREDENTIALS_TYPE | PEM | Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore) |
transport.lwm2m.server.security.credentials.pem.cert_file | LWM2M_SERVER_PEM_CERT | lwm2mserver.pem | Path to the server certificate file (holds server certificate or certificate chain, may include server private key) |
transport.lwm2m.server.security.credentials.pem.key_file | LWM2M_SERVER_PEM_KEY | lwm2mserver_key.pem | Path to the server certificate private key file (optional) |
transport.lwm2m.server.security.credentials.pem.key_password | LWM2M_SERVER_PEM_KEY_PASSWORD | server_key_password | Server certificate private key password (optional) |
transport.lwm2m.server.security.credentials.keystore.type | LWM2M_SERVER_KEY_STORE_TYPE | JKS | Type of the key store |
transport.lwm2m.server.security.credentials.keystore.store_file | LWM2M_SERVER_KEY_STORE | lwm2mserver.jks | Path to the key store that holds the SSL certificate |
transport.lwm2m.server.security.credentials.keystore.store_password | LWM2M_SERVER_KEY_STORE_PASSWORD | server_ks_password | Password used to access the key store |
transport.lwm2m.server.security.credentials.keystore.key_alias | LWM2M_SERVER_KEY_ALIAS | server | Key alias |
transport.lwm2m.server.security.credentials.keystore.key_password | LWM2M_SERVER_KEY_PASSWORD | server_ks_password | Password used to access the key |
transport.lwm2m.server.security.skip_validity_check_for_client_cert | TB_LWM2M_SERVER_SECURITY_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT | false | Only Certificate_x509 |
transport.lwm2m.bootstrap.enable | LWM2M_ENABLED_BS | true | Enable/disable Bootstrap Server |
transport.lwm2m.bootstrap.id | LWM2M_SERVER_ID_BS | 111 | This is: * Default value in Lwm2mClient after start in mode Bootstrap for the object : name "LWM2M Security" field: "Short Server ID" (deviceProfile: Bootstrap.BOOTSTRAP SERVER.Short ID) |
transport.lwm2m.bootstrap.bind_address | LWM2M_BS_BIND_ADDRESS | 0.0.0.0 | LwM2M bootstrap server bind address. Bind to all interfaces by default. |
transport.lwm2m.bootstrap.bind_port | LWM2M_BS_BIND_PORT | 5687 | LwM2M bootstrap server bind port |
transport.lwm2m.bootstrap.security.bind_address | LWM2M_BS_SECURITY_BIND_ADDRESS | 0.0.0.0 | LwM2M bootstrap server bind address for DTLS. Bind to all interfaces by default. |
transport.lwm2m.bootstrap.security.bind_port | LWM2M_BS_SECURITY_BIND_PORT | 5688 | LwM2M bootstrap server bind port for DTLS. |
transport.lwm2m.bootstrap.security.credentials.enabled | LWM2M_BS_CREDENTIALS_ENABLED | true | Whether to enable LWM2M bootstrap server X509 Certificate/RPK support |
transport.lwm2m.bootstrap.security.credentials.type | LWM2M_BS_CREDENTIALS_TYPE | PEM | Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore) |
transport.lwm2m.bootstrap.security.credentials.pem.cert_file | LWM2M_BS_PEM_CERT | lwm2mserver.pem | Path to the server certificate file (holds server certificate or certificate chain, may include server private key) |
transport.lwm2m.bootstrap.security.credentials.pem.key_file | LWM2M_BS_PEM_KEY | lwm2mserver_key.pem | Path to the server certificate private key file (optional) |
transport.lwm2m.bootstrap.security.credentials.pem.key_password | LWM2M_BS_PEM_KEY_PASSWORD | server_key_password | Server certificate private key password (optional) |
transport.lwm2m.bootstrap.security.credentials.keystore.type | LWM2M_BS_KEY_STORE_TYPE | JKS | Type of the key store |
transport.lwm2m.bootstrap.security.credentials.keystore.store_file | LWM2M_BS_KEY_STORE | lwm2mserver.jks | Path to the key store that holds the SSL certificate |
transport.lwm2m.bootstrap.security.credentials.keystore.store_password | LWM2M_BS_KEY_STORE_PASSWORD | server_ks_password | Password used to access the key store |
transport.lwm2m.bootstrap.security.credentials.keystore.key_alias | LWM2M_BS_KEY_ALIAS | bootstrap | Key alias |
transport.lwm2m.bootstrap.security.credentials.keystore.key_password | LWM2M_BS_KEY_PASSWORD | server_ks_password | Password used to access the key |
transport.lwm2m.security.trust-credentials.enabled | LWM2M_TRUST_CREDENTIALS_ENABLED | true | Whether to load X509 trust certificates |
transport.lwm2m.security.trust-credentials.type | LWM2M_TRUST_CREDENTIALS_TYPE | PEM | Trust certificates store type (PEM - pem certificates file; KEYSTORE - java keystore) |
transport.lwm2m.security.trust-credentials.pem.cert_file | LWM2M_TRUST_PEM_CERT | lwm2mserver.pem | Path to the certificates file (holds trust certificates) |
transport.lwm2m.security.trust-credentials.keystore.type | LWM2M_TRUST_KEY_STORE_TYPE | JKS | Type of the key store |
transport.lwm2m.security.trust-credentials.keystore.store_file | LWM2M_TRUST_KEY_STORE | lwm2mserver.jks | Path to the key store that holds the X509 certificates |
transport.lwm2m.security.trust-credentials.keystore.store_password | LWM2M_TRUST_KEY_STORE_PASSWORD | server_ks_password | Password used to access the key store |
transport.lwm2m.security.recommended_ciphers | LWM2M_RECOMMENDED_CIPHERS | false | Set usage of recommended cipher suites. * Params DTLS Connector config: -- recommendedCipherSuitesOnly = true allow only recommended cipher suites, -- recommendedCipherSuitesOnly = false, also allow not recommended cipher suites. |
transport.lwm2m.security.recommended_supported_groups | LWM2M_RECOMMENDED_SUPPORTED_GROUPS | true | Set usage of recommended supported groups (curves). * Params DTLS Connector config: -- recommendedSupportedGroupsOnly = true allow only recommended supported groups, -- recommendedSupportedGroupsOnly = false, also allow not recommended supported groups. Default value is true |
transport.lwm2m.timeout | LWM2M_TIMEOUT | 120000 | Timeout of LwM2M operation |
transport.lwm2m.uplink_pool_size | LWM2M_UPLINK_POOL_SIZE | 10 | Thread pool size for processing of the LwM2M uplinks |
transport.lwm2m.downlink_pool_size | LWM2M_DOWNLINK_POOL_SIZE | 10 | Thread pool size for processing of the LwM2M downlinks |
transport.lwm2m.ota_pool_size | LWM2M_OTA_POOL_SIZE | 10 | Thread pool size for processing of the OTA updates |
transport.lwm2m.clean_period_in_sec | LWM2M_CLEAN_PERIOD_IN_SEC | 2 | Period of cleanup for the registrations in store |
transport.lwm2m.redis.enabled | LWM2M_REDIS_ENABLED | false | Enable/disable Redis for lvm2m transport |
Parameter | Environment Variable | Default Value | Description |
transport.sessions.inactivity_timeout | TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT | 300000 | Inactivity timeout for device session in transport service. The last activity time of the device session is updated if device sends any message, including keepalive messages. |
transport.sessions.report_timeout | TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT | 3000 | Interval of periodic check for expired sessions and report of the changes to session last activity time. |
transport.rate_limits.enabled | TB_TRANSPORT_RATE_LIMITS_ENABLED | false | |
transport.rate_limits.tenant | TB_TRANSPORT_RATE_LIMITS_TENANT | 1000:1,20000:60 | |
transport.rate_limits.device | TB_TRANSPORT_RATE_LIMITS_DEVICE | 10:1,300:60 | |
transport.json.type_cast_enabled | JSON_TYPE_CAST_ENABLED | false | Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON |
transport.json.max_string_value_length | JSON_MAX_STRING_VALUE_LENGTH | 0 | Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check) |
transport.client_side_rpc.timeout | CLIENT_SIDE_RPC_TIMEOUT | 60000 | |
transport.api_enabled | TB_TRANSPORT_API_ENABLED | true | Enable/disable http/mqtt/coap transport protocols (has higher priority than certain protocol's 'enabled' property) |
transport.log.enabled | TB_TRANSPORT_LOG_ENABLED | true | Enable/Disable log of transport messages to telemetry. For example, logging of LwM2M registration update. |
transport.log.max_length | TB_TRANSPORT_LOG_MAX_LENGTH | 1024 | Maximum length of the log message. The content will be truncated to the specified value if needed. |
transport.stats.enabled | TB_TRANSPORT_STATS_ENABLED | true | Enable/Disable collection of transport statistics |
transport.stats.print-interval-ms | TB_TRANSPORT_STATS_PRINT_INTERVAL_MS | 60000 | Interval of transport statistics logging. |
Queue parameters
Parameter | Environment Variable | Default Value | Description |
queue.type | TB_QUEUE_TYPE | kafka | In-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) |
Parameter | Environment Variable | Default Value | Description |
queue.kafka.bootstrap.servers | TB_KAFKA_SERVERS | localhost:9092 | Kafka Bootstrap servers list as a connection string for kafka client |
queue.kafka.acks | TB_KAFKA_ACKS | all | General Kafka client setting |
queue.kafka.retries | TB_KAFKA_RETRIES | 1 | General Kafka client setting |
queue.kafka.compression | TB_KAFKA_COMPRESSION_TYPE | none | Compression of the Kafka messages: none or gzip |
queue.kafka.batch.size | TB_KAFKA_BATCH_SIZE | 16384 | General Kafka client setting |
queue.kafka.linger.ms | TB_KAFKA_LINGER_MS | 1 | General Kafka client setting |
queue.kafka.max.request.size | TB_KAFKA_MAX_REQUEST_SIZE | 1048576 | General Kafka client setting |
queue.kafka.max.in.flight.requests.per.connection | TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION | 5 | General Kafka client setting |
queue.kafka.buffer.memory | TB_BUFFER_MEMORY | 33554432 | General Kafka client setting |
queue.kafka.replication_factor | TB_QUEUE_KAFKA_REPLICATION_FACTOR | 1 | General Kafka client setting |
queue.kafka.max_poll_interval_ms | TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS | 300000 | General Kafka client setting |
queue.kafka.max_poll_records | TB_QUEUE_KAFKA_MAX_POLL_RECORDS | 8192 | General Kafka client setting |
queue.kafka.max_partition_fetch_bytes | TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES | 16777216 | General Kafka client setting |
queue.kafka.fetch_max_bytes | TB_QUEUE_KAFKA_FETCH_MAX_BYTES | 134217728 | General Kafka client setting |
queue.kafka.use_confluent_cloud | TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD | false | Enable to connect to Confluent Cloud. |
queue.kafka.confluent.ssl.algorithm | TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM | https | Confluent Cloud connection settings |
queue.kafka.confluent.sasl.mechanism | TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM | PLAIN | Confluent Cloud connection settings |
queue.kafka.confluent.sasl.config | TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG | Confluent Cloud connection settings | |
queue.kafka.confluent.security.protocol | TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL | SASL_SSL | Confluent Cloud connection settings |
queue.kafka.consumer-properties-per-topic.tb_ota_package.key | max.poll.records | Example of specific consumer properties key per topic | |
queue.kafka.consumer-properties-per-topic.tb_ota_package.value | TB_QUEUE_KAFKA_OTA_MAX_POLL_RECORDS | 10 | Example of specific consumer properties value per topic |
queue.kafka.other.key | request.timeout.ms | refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms | |
queue.kafka.other.value | TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS | 30000 | (30 seconds) |
queue.kafka.other.key | session.timeout.ms | refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms | |
queue.kafka.other.value | TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS | 10000 | (10 seconds) |
queue.kafka.topic-properties.rule-engine | TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Rule Engine topics |
queue.kafka.topic-properties.core | TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Core topics |
queue.kafka.topic-properties.transport-api | TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Transport Api topics |
queue.kafka.topic-properties.notifications | TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Notifications topics |
queue.kafka.topic-properties.js-executor | TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1 | Kafka properties for JS Executor topics |
queue.kafka.topic-properties.ota-updates | TB_QUEUE_KAFKA_OTA_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 | Kafka properties for OTA updates topic |
queue.kafka.consumer-stats.enabled | TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED | true | Prints lag between consumer group offset and last messages offset in Kafka topics |
queue.kafka.consumer-stats.print-interval-ms | TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Kafka's consumer-groups stats |
queue.kafka.consumer-stats.kafka-response-timeout-ms | TB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS | 1000 | Time to wait for the stats-loading requests to Kafka to finish |
queue.aws_sqs.use_default_credential_provider_chain | TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN | false | Use default credentials provider for AWS SQS |
queue.aws_sqs.access_key_id | TB_QUEUE_AWS_SQS_ACCESS_KEY_ID | YOUR_KEY | Access key ID from AWS IAM user |
queue.aws_sqs.secret_access_key | TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY | YOUR_SECRET | Secret access key from AWS IAM user |
queue.aws_sqs.region | TB_QUEUE_AWS_SQS_REGION | YOUR_REGION | Region from AWS account |
queue.aws_sqs.threads_per_topic | TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC | 1 | Number of threads per each AWS SQS queue in consumer |
queue.aws_sqs.queue-properties.rule-engine | TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.core | TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.transport-api | TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.notifications | TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.js-executor | TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.pubsub.project_id | TB_QUEUE_PUBSUB_PROJECT_ID | YOUR_PROJECT_ID | Project Id from google cloud |
queue.pubsub.service_account | TB_QUEUE_PUBSUB_SERVICE_ACCOUNT | YOUR_SERVICE_ACCOUNT | API Credentials in json format |
queue.pubsub.max_msg_size | TB_QUEUE_PUBSUB_MAX_MSG_SIZE | 1048576 | in bytes |
queue.pubsub.max_messages | TB_QUEUE_PUBSUB_MAX_MESSAGES | 1000 | Number of messages per a consumer |
queue.pubsub.queue-properties.rule-engine | TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.core | TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.transport-api | TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Transport Api subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.notifications | TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Notifications subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.js-executor | TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Js Executor subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.service_bus.namespace_name | TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME | YOUR_NAMESPACE_NAME | Azure namespace is a scoping container for all messaging components |
queue.service_bus.sas_key_name | TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME | YOUR_SAS_KEY_NAME | Azure Service Bus Shared Access Signatures key name |
queue.service_bus.sas_key | TB_QUEUE_SERVICE_BUS_SAS_KEY | YOUR_SAS_KEY | Azure Service Bus Shared Access Signatures key |
queue.service_bus.max_messages | TB_QUEUE_SERVICE_BUS_MAX_MESSAGES | 1000 | Number of messages per a consumer |
queue.service_bus.queue-properties.rule-engine | TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Rule Engine queues |
queue.service_bus.queue-properties.core | TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Core queues |
queue.service_bus.queue-properties.transport-api | TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Transport Api queues |
queue.service_bus.queue-properties.notifications | TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Notifications queues |
queue.service_bus.queue-properties.js-executor | TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Js Executor queues |
queue.rabbitmq.exchange_name | TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME | Default empty | |
queue.rabbitmq.host | TB_QUEUE_RABBIT_MQ_HOST | localhost | RabbitMQ host used to establish connection |
queue.rabbitmq.port | TB_QUEUE_RABBIT_MQ_PORT | 5672 | RabbitMQ host used to establish connection |
queue.rabbitmq.virtual_host | TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST | / | Virtual hosts provide logical grouping and separation of resources |
queue.rabbitmq.password | TB_QUEUE_RABBIT_MQ_PASSWORD | YOUR_PASSWORD | User password for RabbitMQ user account |
queue.rabbitmq.automatic_recovery_enabled | TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED | false | Network connection between clients and RabbitMQ nodes can fail. RabbitMQ Java client supports automatic recovery of connections and topology (queues, exchanges, bindings, and consumers) |
queue.rabbitmq.connection_timeout | TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT | 60000 | The connection timeout for the RabbitMQ connection factory |
queue.rabbitmq.handshake_timeout | TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT | 10000 | RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout |
queue.rabbitmq.queue-properties.rule-engine | TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Rule Engine queues |
queue.rabbitmq.queue-properties.core | TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Core queues |
queue.rabbitmq.queue-properties.transport-api | TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Transport Api queues |
queue.rabbitmq.queue-properties.notifications | TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Notifications queues |
queue.rabbitmq.queue-properties.js-executor | TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Js Executor queues |
queue.partitions.hash_function_name | TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME | murmur3_128 | Name of hash function used for consistent hash ring in Cluster Mode. See architecture docs for more details. murmur3_32, murmur3_128 or sha256 |
queue.transport_api.requests_topic | TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC | tb_transport.api.requests | Topic used to consume api requests from transport microservices |
queue.transport_api.responses_topic | TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC | tb_transport.api.responses | Topic used to produce api responses to transport microservices |
queue.transport_api.max_pending_requests | TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS | 10000 | Maximum pending api requests from transport microservices to be handled by server |
queue.transport_api.max_requests_timeout | TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT | 10000 | Maximum timeout in milliseconds to handle api request from transport microservice by server |
queue.transport_api.max_callback_threads | TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS | 100 | Amount of threads used to invoke callbacks |
queue.transport_api.request_poll_interval | TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll api requests from transport microservices |
queue.transport_api.response_poll_interval | TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll api response from transport microservices |
queue.core.topic | TB_QUEUE_CORE_TOPIC | tb_core | Topic name for Core microservices |
queue.core.poll-interval | TB_QUEUE_CORE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Core microservices |
queue.core.partitions | TB_QUEUE_CORE_PARTITIONS | 10 | Amount of partitions used by Core microservices |
queue.core.pack-processing-timeout | TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS | 2000 | Timeout for processing a message pack by Core microservices |
queue.core.ota.topic | TB_QUEUE_CORE_OTA_TOPIC | tb_ota_package | The topic for queue of OTA updates |
queue.core.ota.pack-interval-ms | TB_QUEUE_CORE_OTA_PACK_INTERVAL_MS | 60000 | The interval of processing the OTA updates for devices. Used to avoid any harm to network due to many parallel OTA updates |
queue.core.ota.pack-size | TB_QUEUE_CORE_OTA_PACK_SIZE | 100 | The size of OTA updates notifications fetched from the queue. The queue stores pairs of firmware and device ids. |
queue.core.usage-stats-topic | TB_QUEUE_US_TOPIC | tb_usage_stats | The parameter to store usage statistics |
queue.core.stats.enabled | TB_QUEUE_CORE_STATS_ENABLED | true | Enable/disable statistics for Core microservices |
queue.core.stats.print-interval-ms | TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Core microservices |
queue.js.request_topic | REMOTE_JS_EVAL_REQUEST_TOPIC | js_eval.requests | JS Eval request topic |
queue.js.response_topic_prefix | REMOTE_JS_EVAL_RESPONSE_TOPIC | js_eval.responses | JS Eval responses topic prefix that is combined with node id |
queue.js.max_pending_requests | REMOTE_JS_MAX_PENDING_REQUESTS | 10000 | JS Eval max pending requests |
queue.js.max_eval_requests_timeout | REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT | 60000 | JS Eval max request timeout |
queue.js.max_requests_timeout | REMOTE_JS_MAX_REQUEST_TIMEOUT | 10000 | JS max request timeout |
queue.js.response_poll_interval | REMOTE_JS_RESPONSE_POLL_INTERVAL_MS | 25 | JS response poll interval |
queue.rule-engine.topic | TB_QUEUE_RULE_ENGINE_TOPIC | tb_rule_engine | Topic name for Rule Engine microservices |
queue.rule-engine.poll-interval | TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Rule Engine microservices |
queue.rule-engine.pack-processing-timeout | TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS | 2000 | Timeout for processing a message pack |
queue.rule-engine.stats.enabled | TB_QUEUE_RULE_ENGINE_STATS_ENABLED | true | Enable/disable statistics for Rule Engine microservices |
queue.rule-engine.stats.print-interval-ms | TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Rule Engine microservices |
queue.transport.notifications_topic | TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC | tb_transport.notifications | Transport notifications topic |
queue.transport.poll_interval | TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Core microservices |
queue.vc.topic | TB_QUEUE_VC_TOPIC | tb_version_control | Topic for storing Version Control synchronization tasks |
queue.vc.partitions | TB_QUEUE_VC_PARTITIONS | 10 | Amount of partitions used by Version Control microservices |
queue.vc.poll-interval | TB_QUEUE_VC_INTERVAL_MS | 10 | Interval in milliseconds to poll messages by Version Control microservices |
queue.vc.pack-processing-timeout | TB_QUEUE_VC_PACK_PROCESSING_TIMEOUT_MS | 10 | Timeout for processing a message pack |
ThingsBoard service parameters
Parameter | Environment Variable | Default Value | Description |
service.type | TB_SERVICE_TYPE | tb-transport | |
service.id | TB_SERVICE_ID | Unique id for this service (autogenerated if empty) | |
service.tenant_id | TB_SERVICE_TENANT_ID | Empty or specific tenant id |
ThingsBoard metrics parameters
Parameter | Environment Variable | Default Value | Description |
metrics.enabled | METRICS_ENABLED | false | Enable/disable actuator metrics |
ThingsBoard management parameters
Parameter | Environment Variable | Default Value | Description |
management.endpoints.web.exposure.include | METRICS_ENDPOINTS_EXPOSE | info | Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics) |
SNMP Transport Parameters
Parameter | Environment Variable | Default Value | Description |
spring.main.web-environment | WEB_APPLICATION_ENABLE | false | If you enabled process metrics you should also enable 'web-environment' |
spring.main.web-application-type | WEB_APPLICATION_TYPE | none | If you enabled process metrics you should set 'web-application-type' to 'servlet' value |
Server Parameters
Parameter | Environment Variable | Default Value | Description |
server.address | HTTP_BIND_ADDRESS | 0.0.0.0 | Server bind address (has no effect if web-environment is disabled) |
server.port | HTTP_BIND_PORT | 8083 | Server bind port (has no effect if web-environment is disabled) |
Zookeeper connection parameters
Parameter | Environment Variable | Default Value | Description |
zk.enabled | ZOOKEEPER_ENABLED | false | Enable/disable zookeeper discovery service. Used for ThingsBoard cluster |
zk.url | ZOOKEEPER_URL | localhost:2181 | Zookeeper connect string |
zk.retry_interval_ms | ZOOKEEPER_RETRY_INTERVAL_MS | 3000 | Zookeeper retry interval in milliseconds |
zk.connection_timeout_ms | ZOOKEEPER_CONNECTION_TIMEOUT_MS | 3000 | Zookeeper connection timeout in milliseconds |
zk.session_timeout_ms | ZOOKEEPER_SESSION_TIMEOUT_MS | 3000 | Zookeeper session timeout in milliseconds |
zk.zk_dir | ZOOKEEPER_NODES_DIR | /thingsboard | Name of the directory in zookeeper 'filesystem' |
Cache Parameter
Parameter | Environment Variable | Default Value | Description |
cache.type | CACHE_TYPE | redis |
Redis connection parameters
Parameter | Environment Variable | Default Value | Description |
redis.connection.type | REDIS_CONNECTION_TYPE | standalone | Redis connection type - standalone or cluster |
redis.standalone.host | REDIS_HOST | localhost | Redis connection host |
redis.standalone.port | REDIS_PORT | 6379 | Redis connection port |
redis.standalone.useDefaultClientConfig | REDIS_USE_DEFAULT_CLIENT_CONFIG | true | Redis connection port |
redis.standalone.clientName | REDIS_CLIENT_NAME | standalone | This value may be used only if you used not default ClientConfig |
redis.standalone.connectTimeout | REDIS_CLIENT_CONNECT_TIMEOUT | 30000 | This value may be used only if you used not default ClientConfig |
redis.standalone.readTimeout | REDIS_CLIENT_READ_TIMEOUT | 60000 | This value may be used only if you used not default ClientConfig |
redis.standalone.usePoolConfig | REDIS_CLIENT_USE_POOL_CONFIG | false | This value may be used only if you used not default ClientConfig |
redis.cluster.nodes | REDIS_NODES | Comma-separated list of "host:port" pairs to bootstrap from | |
redis.cluster.max-redirects | REDIS_MAX_REDIRECTS | 12 | Maximum number of redirects to follow when executing commands across the cluster |
redis.cluster.useDefaultPoolConfig | REDIS_USE_DEFAULT_POOL_CONFIG | true | Use default redis pool configuration. If set to "true", the REDIS_POOL_CONFIG_* properties will be ignored. |
redis.db | REDIS_DB | 0 | Redis database index |
redis.password | REDIS_PASSWORD | Redis database password | |
redis.pool_config.maxTotal | REDIS_POOL_CONFIG_MAX_TOTAL | 128 | General redis pool settings |
redis.pool_config.maxIdle | REDIS_POOL_CONFIG_MAX_IDLE | 128 | General redis pool settings |
redis.pool_config.minIdle | REDIS_POOL_CONFIG_MIN_IDLE | 16 | General redis pool settings |
redis.pool_config.testOnBorrow | REDIS_POOL_CONFIG_TEST_ON_BORROW | true | General redis pool settings |
redis.pool_config.testOnReturn | REDIS_POOL_CONFIG_TEST_ON_RETURN | true | General redis pool settings |
redis.pool_config.testWhileIdle | REDIS_POOL_CONFIG_TEST_WHILE_IDLE | true | General redis pool settings |
redis.pool_config.minEvictableMs | REDIS_POOL_CONFIG_MIN_EVICTABLE_MS | 60000 | General redis pool settings |
redis.pool_config.evictionRunsMs | REDIS_POOL_CONFIG_EVICTION_RUNS_MS | 30000 | General redis pool settings |
redis.pool_config.maxWaitMills | REDIS_POOL_CONFIG_MAX_WAIT_MS | 60000 | General redis pool settings |
redis.pool_config.numberTestsPerEvictionRun | REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN | 3 | General redis pool settings |
redis.pool_config.blockWhenExhausted | REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED | true | General redis pool settings |
SNMP Server Parameters
Parameter | Environment Variable | Default Value | Description |
transport.snmp.response_processing.parallelism_level | SNMP_RESPONSE_PROCESSING_PARALLELISM_LEVEL | 20 | Parallelism level for executor (workStealingPool) that is responsible for handling responses from SNMP devices |
transport.snmp.underlying_protocol | SNMP_UNDERLYING_PROTOCOL | udp | To configure SNMP to work over UDP or TCP |
Parameter | Environment Variable | Default Value | Description |
transport.sessions.inactivity_timeout | TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT | 300000 | Inactivity timeout for device session in transport service. The last activity time of the device session is updated if device sends any message, including keepalive messages. |
transport.sessions.report_timeout | TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT | 3000 | Interval of periodic check for expired sessions and report of the changes to session last activity time. |
transport.rate_limits.enabled | TB_TRANSPORT_RATE_LIMITS_ENABLED | false | |
transport.rate_limits.tenant | TB_TRANSPORT_RATE_LIMITS_TENANT | 1000:1,20000:60 | |
transport.rate_limits.device | TB_TRANSPORT_RATE_LIMITS_DEVICE | 10:1,300:60 | |
transport.json.type_cast_enabled | JSON_TYPE_CAST_ENABLED | true | Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON |
transport.json.max_string_value_length | JSON_MAX_STRING_VALUE_LENGTH | 0 | Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check) |
transport.client_side_rpc.timeout | CLIENT_SIDE_RPC_TIMEOUT | 60000 | |
transport.api_enabled | TB_TRANSPORT_API_ENABLED | true | Enable/disable http/mqtt/coap transport protocols (has higher priority than certain protocol's 'enabled' property) |
transport.log.enabled | TB_TRANSPORT_LOG_ENABLED | true | Enable/Disable log of transport messages to telemetry. For example, logging of LwM2M registration update. |
transport.log.max_length | TB_TRANSPORT_LOG_MAX_LENGTH | 1024 | Maximum length of the log message. The content will be truncated to the specified value if needed. |
transport.stats.enabled | TB_TRANSPORT_STATS_ENABLED | true | Enable/Disable collection of transport statistics |
transport.stats.print-interval-ms | TB_TRANSPORT_STATS_PRINT_INTERVAL_MS | 60000 | Interval of transport statistics logging. |
Queue parameters
Parameter | Environment Variable | Default Value | Description |
queue.type | TB_QUEUE_TYPE | kafka | In-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) |
Parameter | Environment Variable | Default Value | Description |
queue.kafka.bootstrap.servers | TB_KAFKA_SERVERS | localhost:9092 | Kafka Bootstrap servers list as a connection string for kafka client |
queue.kafka.acks | TB_KAFKA_ACKS | all | General Kafka client setting |
queue.kafka.retries | TB_KAFKA_RETRIES | 1 | General Kafka client setting |
queue.kafka.compression | TB_KAFKA_COMPRESSION_TYPE | none | Compression of the Kafka messages: none or gzip |
queue.kafka.batch.size | TB_KAFKA_BATCH_SIZE | 16384 | General Kafka client setting |
queue.kafka.linger.ms | TB_KAFKA_LINGER_MS | 1 | General Kafka client setting |
queue.kafka.max.request.size | TB_KAFKA_MAX_REQUEST_SIZE | 1048576 | General Kafka client setting |
queue.kafka.max.in.flight.requests.per.connection | TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION | 5 | General Kafka client setting |
queue.kafka.buffer.memory | TB_BUFFER_MEMORY | 33554432 | General Kafka client setting |
queue.kafka.replication_factor | TB_QUEUE_KAFKA_REPLICATION_FACTOR | 1 | General Kafka client setting |
queue.kafka.max_poll_interval_ms | TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS | 300000 | General Kafka client setting |
queue.kafka.max_poll_records | TB_QUEUE_KAFKA_MAX_POLL_RECORDS | 8192 | General Kafka client setting |
queue.kafka.max_partition_fetch_bytes | TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES | 16777216 | General Kafka client setting |
queue.kafka.fetch_max_bytes | TB_QUEUE_KAFKA_FETCH_MAX_BYTES | 134217728 | General Kafka client setting |
queue.kafka.use_confluent_cloud | TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD | false | Enable to connect to Confluent Cloud. |
queue.kafka.confluent.ssl.algorithm | TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM | https | Confluent Cloud connection settings |
queue.kafka.confluent.sasl.mechanism | TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM | PLAIN | Confluent Cloud connection settings |
queue.kafka.confluent.sasl.config | TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG | Confluent Cloud connection settings | |
queue.kafka.confluent.security.protocol | TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL | SASL_SSL | Confluent Cloud connection settings |
queue.kafka.consumer-properties-per-topic.tb_ota_package.key | max.poll.records | Example of specific consumer properties key per topic | |
queue.kafka.consumer-properties-per-topic.tb_ota_package.value | TB_QUEUE_KAFKA_OTA_MAX_POLL_RECORDS | 10 | Example of specific consumer properties value per topic |
queue.kafka.other.key | request.timeout.ms | refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms | |
queue.kafka.other.value | TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS | 30000 | (30 seconds) |
queue.kafka.other.key | session.timeout.ms | refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms | |
queue.kafka.other.value | TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS | 10000 | (10 seconds) |
queue.kafka.topic-properties.rule-engine | TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Rule Engine topics |
queue.kafka.topic-properties.core | TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Core topics |
queue.kafka.topic-properties.transport-api | TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Transport Api topics |
queue.kafka.topic-properties.notifications | TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Notifications topics |
queue.kafka.topic-properties.js-executor | TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1 | Kafka properties for JS Executor topics |
queue.kafka.topic-properties.ota-updates | TB_QUEUE_KAFKA_OTA_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 | Kafka properties for OTA updates topic |
queue.kafka.consumer-stats.enabled | TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED | true | Prints lag between consumer group offset and last messages offset in Kafka topics |
queue.kafka.consumer-stats.print-interval-ms | TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Kafka's consumer-groups stats |
queue.kafka.consumer-stats.kafka-response-timeout-ms | TB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS | 1000 | Time to wait for the stats-loading requests to Kafka to finish |
queue.aws_sqs.use_default_credential_provider_chain | TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN | false | Use default credentials provider for AWS SQS |
queue.aws_sqs.access_key_id | TB_QUEUE_AWS_SQS_ACCESS_KEY_ID | YOUR_KEY | Access key ID from AWS IAM user |
queue.aws_sqs.secret_access_key | TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY | YOUR_SECRET | Secret access key from AWS IAM user |
queue.aws_sqs.region | TB_QUEUE_AWS_SQS_REGION | YOUR_REGION | Region from AWS account |
queue.aws_sqs.threads_per_topic | TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC | 1 | Number of threads per each AWS SQS queue in consumer |
queue.aws_sqs.queue-properties.rule-engine | TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.core | TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.transport-api | TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.notifications | TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.aws_sqs.queue-properties.js-executor | TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES | VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 | VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds |
queue.pubsub.project_id | TB_QUEUE_PUBSUB_PROJECT_ID | YOUR_PROJECT_ID | Project Id from google cloud |
queue.pubsub.service_account | TB_QUEUE_PUBSUB_SERVICE_ACCOUNT | YOUR_SERVICE_ACCOUNT | API Credentials in json format |
queue.pubsub.max_msg_size | TB_QUEUE_PUBSUB_MAX_MSG_SIZE | 1048576 | in bytes |
queue.pubsub.max_messages | TB_QUEUE_PUBSUB_MAX_MESSAGES | 1000 | Number of messages per a consumer |
queue.pubsub.queue-properties.rule-engine | TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.core | TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.transport-api | TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Transport Api subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.notifications | TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Notifications subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.pubsub.queue-properties.js-executor | TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES | ackDeadlineInSec:30;messageRetentionInSec:604800 | Pub/Sub properties for Js Executor subscribers, messages which will commit after ackDeadlineInSec period can be consume again |
queue.service_bus.namespace_name | TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME | YOUR_NAMESPACE_NAME | Azure namespace is a scoping container for all messaging components |
queue.service_bus.sas_key_name | TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME | YOUR_SAS_KEY_NAME | Azure Service Bus Shared Access Signatures key name |
queue.service_bus.sas_key | TB_QUEUE_SERVICE_BUS_SAS_KEY | YOUR_SAS_KEY | Azure Service Bus Shared Access Signatures key |
queue.service_bus.max_messages | TB_QUEUE_SERVICE_BUS_MAX_MESSAGES | 1000 | Number of messages per a consumer |
queue.service_bus.queue-properties.rule-engine | TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Rule Engine queues |
queue.service_bus.queue-properties.core | TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Core queues |
queue.service_bus.queue-properties.transport-api | TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Transport Api queues |
queue.service_bus.queue-properties.notifications | TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Notifications queues |
queue.service_bus.queue-properties.js-executor | TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES | lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800 | Azure Service Bus properties for Js Executor queues |
queue.rabbitmq.exchange_name | TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME | Default empty | |
queue.rabbitmq.host | TB_QUEUE_RABBIT_MQ_HOST | localhost | RabbitMQ host used to establish connection |
queue.rabbitmq.port | TB_QUEUE_RABBIT_MQ_PORT | 5672 | RabbitMQ host used to establish connection |
queue.rabbitmq.virtual_host | TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST | / | Virtual hosts provide logical grouping and separation of resources |
queue.rabbitmq.password | TB_QUEUE_RABBIT_MQ_PASSWORD | YOUR_PASSWORD | User password for RabbitMQ user account |
queue.rabbitmq.automatic_recovery_enabled | TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED | false | Network connection between clients and RabbitMQ nodes can fail. RabbitMQ Java client supports automatic recovery of connections and topology (queues, exchanges, bindings, and consumers) |
queue.rabbitmq.connection_timeout | TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT | 60000 | The connection timeout for the RabbitMQ connection factory |
queue.rabbitmq.handshake_timeout | TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT | 10000 | RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout |
queue.rabbitmq.queue-properties.rule-engine | TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Rule Engine queues |
queue.rabbitmq.queue-properties.core | TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Core queues |
queue.rabbitmq.queue-properties.transport-api | TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Transport Api queues |
queue.rabbitmq.queue-properties.notifications | TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Notifications queues |
queue.rabbitmq.queue-properties.js-executor | TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES | x-max-length-bytes:1048576000;x-message-ttl:604800000 | RabbitMQ properties for Js Executor queues |
queue.partitions.hash_function_name | TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME | murmur3_128 | Name of hash function used for consistent hash ring in Cluster Mode. See architecture docs for more details. murmur3_32, murmur3_128 or sha256 |
queue.transport_api.requests_topic | TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC | tb_transport.api.requests | Topic used to consume api requests from transport microservices |
queue.transport_api.responses_topic | TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC | tb_transport.api.responses | Topic used to produce api responses to transport microservices |
queue.transport_api.max_pending_requests | TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS | 10000 | Maximum pending api requests from transport microservices to be handled by server |
queue.transport_api.max_requests_timeout | TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT | 10000 | Maximum timeout in milliseconds to handle api request from transport microservice by server |
queue.transport_api.max_callback_threads | TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS | 100 | Amount of threads used to invoke callbacks |
queue.transport_api.request_poll_interval | TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll api requests from transport microservices |
queue.transport_api.response_poll_interval | TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll api response from transport microservices |
queue.core.topic | TB_QUEUE_CORE_TOPIC | tb_core | Topic name for Core microservices |
queue.core.poll-interval | TB_QUEUE_CORE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Core microservices |
queue.core.partitions | TB_QUEUE_CORE_PARTITIONS | 10 | Amount of partitions used by Core microservices |
queue.core.pack-processing-timeout | TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS | 2000 | Timeout for processing a message pack by Core microservices |
queue.core.ota.topic | TB_QUEUE_CORE_OTA_TOPIC | tb_ota_package | The topic for queue of OTA updates |
queue.core.ota.pack-interval-ms | TB_QUEUE_CORE_OTA_PACK_INTERVAL_MS | 60000 | The interval of processing the OTA updates for devices. Used to avoid any harm to network due to many parallel OTA updates |
queue.core.ota.pack-size | TB_QUEUE_CORE_OTA_PACK_SIZE | 100 | The size of OTA updates notifications fetched from the queue. The queue stores pairs of firmware and device ids. |
queue.core.usage-stats-topic | TB_QUEUE_US_TOPIC | tb_usage_stats | The parameter to store usage statistics |
queue.core.stats.enabled | TB_QUEUE_CORE_STATS_ENABLED | true | Enable/disable statistics for Core microservices |
queue.core.stats.print-interval-ms | TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Core microservices |
queue.js.request_topic | REMOTE_JS_EVAL_REQUEST_TOPIC | js_eval.requests | JS Eval request topic |
queue.js.response_topic_prefix | REMOTE_JS_EVAL_RESPONSE_TOPIC | js_eval.responses | JS Eval responses topic prefix that is combined with node id |
queue.js.max_pending_requests | REMOTE_JS_MAX_PENDING_REQUESTS | 10000 | JS Eval max pending requests |
queue.js.max_eval_requests_timeout | REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT | 60000 | JS Eval max request timeout |
queue.js.max_requests_timeout | REMOTE_JS_MAX_REQUEST_TIMEOUT | 10000 | JS max request timeout |
queue.js.response_poll_interval | REMOTE_JS_RESPONSE_POLL_INTERVAL_MS | 25 | JS response poll interval |
queue.rule-engine.topic | TB_QUEUE_RULE_ENGINE_TOPIC | tb_rule_engine | Topic name for Rule Engine microservices |
queue.rule-engine.poll-interval | TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Rule Engine microservices |
queue.rule-engine.pack-processing-timeout | TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS | 2000 | Timeout for processing a message pack |
queue.rule-engine.stats.enabled | TB_QUEUE_RULE_ENGINE_STATS_ENABLED | true | Enable/disable statistics for Rule Engine microservices |
queue.rule-engine.stats.print-interval-ms | TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Rule Engine microservices |
queue.transport.notifications_topic | TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC | tb_transport.notifications | Transport notifications topic |
queue.transport.poll_interval | TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Core microservices |
queue.vc.topic | TB_QUEUE_VC_TOPIC | tb_version_control | Topic for storing Version Control synchronization tasks |
queue.vc.partitions | TB_QUEUE_VC_PARTITIONS | 10 | Amount of partitions used by Version Control microservices |
queue.vc.poll-interval | TB_QUEUE_VC_INTERVAL_MS | 10 | Interval in milliseconds to poll messages by Version Control microservices |
queue.vc.pack-processing-timeout | TB_QUEUE_VC_PACK_PROCESSING_TIMEOUT_MS | 10 | Timeout for processing a message pack |
ThingsBoard service parameters
Parameter | Environment Variable | Default Value | Description |
service.type | TB_SERVICE_TYPE | tb-transport | |
service.id | TB_SERVICE_ID | Unique id for this service (autogenerated if empty) | |
service.tenant_id | TB_SERVICE_TENANT_ID | Empty or specific tenant id |
ThingsBoard metrics parameters
Parameter | Environment Variable | Default Value | Description |
metrics.enabled | METRICS_ENABLED | false | Enable/disable actuator metrics |
ThingsBoard management parameters
Parameter | Environment Variable | Default Value | Description |
management.endpoints.web.exposure.include | METRICS_ENDPOINTS_EXPOSE | info | Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics) |
Version Control Server Parameters
Parameter | Environment Variable | Default Value | Description |
vc.thread_pool_size | TB_VC_POOL_SIZE | 2 | Size of the thread pool for processing the synchronization tasks |
vc.git.io_pool_size | TB_VC_GIT_POOL_SIZE | 3 | Size of the thread pool for processing IO operations related to Git |
vc.git.repositories-folder | TB_VC_GIT_REPOSITORIES_FOLDER | ${java.io.tmpdir}/repositories | Folder for storing the GIT repositories |
logback.xml
The configuration file for logging. Allows controlling the log level, the size of log files and the total size/volume of logs.