This guide will help you to get familiar with ThingsBoard configuration files and parameters.
Configuration files location depends on the ThingsBoard installation type. If ThingsBoard is installed as a monolithic application, you can find configuration files in the following directory:
Windows: YOUR_INSTALL_DIR/conf
Linux: /usr/share/thingsboard/conf
But if ThingsBoard is installed as a microservice, then each component of the platform will have separate configuration files.
In this guide all application properties will be divided by components where they are applied. Note that in case of monolithic application all application properties are located in the single file - thingsboard.yml and all environment variables are in thingsboard.conf
This is the main configuration file that contains configuration properties for transports (HTTP, MQTT, CoAP), database (Cassandra, PostgreSQL, TimescaleDB), clustering (Zookeeper and gRPC), etc. 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:
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. Environment variables are useful in case of docker installation. See docker documentation for more details.
There is 190+ configuration parameters in thingsboard.yml file. You can review their description in the configuration file itself. We will list only main configuration parameters below to avoid duplication of the parameter descriptions and to simplify maintenance of this documentation page.
Property | Environment Variable | Default Value | Description |
HTTP server parameters | |||
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.key-store | SSL_KEY_STORE | classpath:keystore/keystore.p12 | Path to the key store that holds the SSL certificate |
server.ssl.key-store-password | SSL_KEY_STORE_PASSWORD | thingsboard | Password used to access the key store |
server.ssl.key-store-type | SSL_KEY_STORE_TYPE | PKCS12 | Type of the key store |
server.ssl.key-alias | SSL_KEY_ALIAS | tomcat | Alias that identifies the key in the key store |
server.log_controller_error_stack_trace | HTTP_LOG_CONTROLLER_ERROR_STACK_TRACE | true | 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.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.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. |
Zookeeper connection parameters | |||
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 | |||
cluster.stats.enabled | TB_CLUSTER_STATS_ENABLED | false | |
cluster.stats.print_interval_ms | TB_CLUSTER_STATS_PRINT_INTERVAL_MS | 10000 | |
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 | |||
security.jwt.tokenExpirationTime | JWT_TOKEN_EXPIRATION_TIME | 900 | User JWT Token expiration time in seconds |
security.jwt.refreshTokenExpTime | JWT_REFRESH_TOKEN_EXPIRATION_TIME | 3600 | 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 |
Dashboard parameters | |||
dashboard.max_datapoints_limit | DASHBOARD_MAX_DATAPOINTS_LIMIT | 50000 | Maximum allowed datapoints fetched by ThingsBoard UI widgets |
Common database parameters | |||
database.ts_max_intervals | DATABASE_TS_MAX_INTERVALS | 700 | Max number of DB queries generated by single API call to fetch telemetry records |
database.entities.type | DATABASE_ENTITIES_TYPE | sql | Database type for ThingsBoard entities (assets, devices, customers, etc.). Allowed values - cassandra OR sql |
database.ts.type | DATABASE_TS_TYPE | sql | Database type for ThingsBoard timeseries data. Allowed values - cassandra, sql OR timescale. For hybrid mode or for using PostgreSQL + TimescaleDB extension) this value should be cassandra or timescale in accordance. Please, note that in these cases the database type for ThingsBoard entities should be sql |
Cassandra database parameters | |||
cassandra.cluster_name | CASSANDRA_CLUSTER_NAME | Thingsboard Cluster | Thingsboard Cassandra cluster name |
cassandra.keyspace_name | CASSANDRA_KEYSPACE_NAME | thingsboard | Thingsboard keyspace name |
cassandra.url | CASSANDRA_URL | 127.0.0.1:9042 | Cassandra seed nodes, comma separated |
cassandra.ssl | CASSANDRA_USE_SSL | false | Enable/disable Cassandra secure connection |
cassandra.jmx | CASSANDRA_USE_JMX | true | Enable/disable Casandra JMX |
cassandra.metrics | CASSANDRA_DISABLE_METRICS | true | Enable/disable Cassandra metrics collection. |
cassandra.compression | CASSANDRA_COMPRESSION | none | Cassandra compression type. Allowed values - 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 cluster initialization retry interval in milliseconds (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 | Enable/Disable Cassandra credentials |
cassandra.username | CASSANDRA_USERNAME | Casandra username | |
cassandra.password | CASSANDRA_PASSWORD | Cassandra password | |
cassandra.socket.connect_timeout | CASSANDRA_SOCKET_TIMEOUT | 5000 | |
cassandra.socket.read_timeout | CASSANDRA_SOCKET_READ_TIMEOUT | 20000 | |
cassandra.socket.keep_alive | CASSANDRA_SOCKET_KEEP_ALIVE | true | |
cassandra.socket.reuse_address | CASSANDRA_SOCKET_REUSE_ADDRESS | true | |
cassandra.socket.so_linger | CASSANDRA_SOCKET_SO_LINGER | ||
cassandra.socket.tcp_no_delay | CASSANDRA_SOCKET_TCP_NO_DELAY | false | |
cassandra.socket.receive_buffer_size | CASSANDRA_SOCKET_RECEIVE_BUFFER_SIZE | ||
cassandra.socket.send_buffer_size | CASSANDRA_SOCKET_SEND_BUFFER_SIZE | ||
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. In case of INDEFINITE - timeseries data partitioning is disabled |
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 | Debug Events(DEBUG_CONVERTER, DEBUG_INTEGRATION, DEBUG_RULE_NODE, DEBUG_RULE_CHAIN) Time To Live (in seconds) for Cassandra Record. 0 - record is never expired. |
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.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 |
Common SQL database parameters | |||
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.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_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.remove_null_chars | SQL_REMOVE_NULL_CHARS | true | Parameter to specify whether to remove null characters from strValue of attributes and timeseries before insert execution |
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 | 86400000 | The parameter to specify the period of execution TTL task for events records. Value set in milliseconds. Default value corresponds to one day. |
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. |
PostgreSQL database parameters | |||
sql.postgres.ts_key_value_partitioning | SQL_POSTGRES_TS_KV_PARTITIONING | MONTHS | Parameter to specify partitioning size for timestamp key-value storage. Allowed values DAYS, MONTHS, YEARS, INDEFINITE. In case of INDEFINITE - timeseries data partitioning is disabled. Please, note that this value can be set only once. |
TimescaleDB database parameters | |||
sql.timescale.chunk_time_interval | SQL_TIMESCALE_CHUNK_TIME_INTERVAL | 604800000 | The parameter to specify the interval size for data chunks storage. Value set in milliseconds. Default value corresponds to one week. Please, note that this value can be set only once. |
Actor system parameters | |||
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 | 1 | Specify thread pool size for database request callbacks executor service |
actors.rule.js_thread_pool_size | ACTORS_RULE_JS_THREAD_POOL_SIZE | 10 | Specify thread pool size for javascript executor service |
actors.rule.mail_thread_pool_size | ACTORS_RULE_MAIL_THREAD_POOL_SIZE | 10 | Specify thread pool size for mail 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.external_call_thread_pool_size | ACTORS_RULE_EXTERNAL_CALL_THREAD_POOL_SIZE | 10 | 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.node.error_persist_frequency | ACTORS_RULE_NODE_ERROR_FREQUENCY | 3000 | Errors for particular actor are persisted once per specified amount of milliseconds |
actors.statistics.enabled | ACTORS_STATISTICS_ENABLED | true | Enable/disable actor statistics |
actors.statistics.persist_frequency | ACTORS_STATISTICS_PERSIST_FREQUENCY | 3600000 | Actors statistic persistence frequency in milliseconds |
actors.queue.enabled | ACTORS_QUEUE_ENABLED | true | Enable/disable persistence of un-processed messages to the queue |
actors.queue.timeout | ACTORS_QUEUE_PERSISTENCE_TIMEOUT | 30000 | Maximum allowed timeout for persistence into the queue in milliseconds |
Cache parameters | |||
cache.type | CACHE_TYPE | caffeine | Cache provider. caffeine for stand alone installations and redis for clustered installations |
caffeine.specs.relations.timeToLiveInMinutes | 1440 | Relations cache TTL | |
caffeine.specs.relations.maxSize | 100000 | Relations cache max size | |
caffeine.specs.deviceCredentials.timeToLiveInMinutes | 1440 | deviceCredentials cache TTL | |
caffeine.specs.deviceCredentials.maxSize | 100000 | deviceCredentials cache max size | |
caffeine.specs.devices.timeToLiveInMinutes | 1440 | devices cache TTL | |
caffeine.specs.devices.maxSize | 100000 | devices cache max size | |
caffeine.specs.sessions.timeToLiveInMinutes | 1440 | sessions cache TTL | |
caffeine.specs.sessions.maxSize | 100000 | sessions cache max size | |
caffeine.specs.assets.timeToLiveInMinutes | 1440 | assets cache TTL | |
caffeine.specs.assets.maxSize | 100000 | assets cache max size | |
caffeine.specs.entityViews.timeToLiveInMinutes | 1440 | entityViews cache TTL | |
caffeine.specs.entityViews.maxSize | 100000 | entityViews cache max size | |
redis.connection.type | standalone | Redis connection type - standalone or cluster | |
redis.connection.host | REDIS_HOST | localhost | Redis connection host |
redis.connection.port | REDIS_PORT | 6379 | Redis connection port |
redis.connection.db | REDIS_DB | 0 | Redis database index |
redis.connection.password | REDIS_PASSWORD | Redis password | |
Check new version updates parameters | |||
updates.enabled | UPDATES_ENABLED | true | Enable/disable thingsboard updates checking |
Spring MVC/Resources parameters | |||
spring.mvc.cors.mappings.* | Spring CORS configuration | ||
spring.resources.chain.gzipped | true | Enable/disable gzip compression of static resources | |
spring.resources.chain.strategy.content.enabled | true | ||
Spring JPA datasource parameters (for SQL database) | |||
spring.jpa.database-platform | SPRING_JPA_DATABASE_PLATFORM | org.hibernate.dialect.PostgreSQLDialect | Database SQL dialect for Spring JPA - org.hibernate.dialect.PostgreSQLDialect or org.hibernate.dialect.HSQLDialect |
spring.datasource.driverClassName | SPRING_DRIVER_CLASS_NAME | org.postgresql.Driver | Database driver for Spring JPA - org.postgresql.Driver or org.hsqldb.jdbc.JDBCDriver |
spring.datasource.url | SPRING_DATASOURCE_URL | Database URL | |
spring.datasource.username | SPRING_DATASOURCE_USERNAME | sa | Database Username |
spring.datasource.password | SPRING_DATASOURCE_PASSWORD | Database password | |
spring.datasource.hikari.maximumPoolSize | SPRING_DATASOURCE_MAXIMUM_POOL_SIZE | 5 | 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 | |||
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."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.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 | |||
state.defaultInactivityTimeoutInSec | DEFAULT_INACTIVITY_TIMEOUT | 10 | Device inactivity timeout in seconds |
state.defaultStateCheckIntervalInSec | DEFAULT_STATE_CHECK_INTERVAL | 10 | Device inactivity check period in seconds |
JavaScript evaluator parameters | |||
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 | 100 | 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 | max_black_list_duration_sec | 60 | Maximum time in seconds for black listed function to stay in the list |
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 | max_black_list_duration_sec | 60 | Maximum time in seconds for black listed function to stay in the list |
Transport parameters | |||
transport.sessions.inactivity_timeout | TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT | 300000 | |
transport.sessions.report_timeout | TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT | 30000 | |
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.http.enabled | HTTP_ENABLED | true | Enable\Disable local HTTP transport |
transport.http.request_timeout | HTTP_REQUEST_TIMEOUT | 60000 | |
transport.mqtt.enabled | MQTT_ENABLED | true | Enable/Disable local MQTT transport |
transport.mqtt.bind_address | MQTT_BIND_ADDRESS | 0.0.0.0 | |
transport.mqtt.bind_port | MQTT_BIND_PORT | 1883 | |
transport.mqtt.timeout | MQTT_TIMEOUT | 10000 | |
transport.mqtt.netty.leak_detector_level | NETTY_LEAK_DETECTOR_LVL | DISABLED | |
transport.mqtt.netty.boss_group_thread_count | NETTY_BOSS_GROUP_THREADS | 1 | |
transport.mqtt.netty.worker_group_thread_count | NETTY_WORKER_GROUP_THREADS | 12 | |
transport.mqtt.netty.max_payload_size | NETTY_MAX_PAYLOAD_SIZE | 65536 | |
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.protocol | MQTT_SSL_PROTOCOL | TLSv1.2 | SSL protocol |
transport.mqtt.ssl.key_store | MQTT_SSL_KEY_STORE | mqttserver.jks | Path to the key store that holds the SSL certificate |
transport.mqtt.ssl.key_store_password | MQTT_SSL_KEY_STORE_PASSWORD | server_ks_password | Password used to access the key store |
transport.mqtt.ssl.key_password | MQTT_SSL_KEY_PASSWORD | server_key_password | Password used to access the key |
transport.mqtt.ssl.key_store_type | MQTT_SSL_KEY_STORE_TYPE | JKS | Type of the key store |
transport.coap.enabled | COAP_ENABLED | true | Enable/Disable local CoAP transport |
transport.coap.bind_address | COAP_BIND_ADDRESS | 0.0.0.0 | |
transport.coap.bind_port | COAP_BIND_PORT | 5683 | |
transport.coap.timeout | COAP_TIMEOUT | 10000 | |
Queue parameters | |||
queue.type | TB_QUEUE_TYPE | in-memory | Queue type. Can be: in-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) |
queue.kafka.bootstrap.servers | TB_KAFKA_SERVERS | localhost:9092 | List of kafka bootstrap servers used to establish connection |
queue.kafka.acks | TB_KAFKA_ACKS | all | The number of acknowledgments the producer requires the leader to have received before considering a request complete |
queue.kafka.retries | TB_KAFKA_RETRIES | 1 | Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error |
queue.kafka.batch.size | TB_KAFKA_BATCH_SIZE | 16384 | The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition |
queue.kafka.linger.ms | TB_KAFKA_LINGER_MS | 1 | The producer groups together any records that arrive in between request transmissions into a single batched request |
queue.kafka.buffer.memory | TB_BUFFER_MEMORY | 33554432 | The total bytes of memory the producer can use to buffer records waiting to be sent to the server |
queue.kafka.replication_factor | TB_QUEUE_KAFKA_REPLICATION_FACTOR | 1 | Replication factor defines the number of copies of a topic in a Kafka cluster |
queue.kafka.topic-properties.rule-engine | TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000 | 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 | 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 | 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 | 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:1048576000 | Kafka properties for Js Executor topics |
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 | AWS SQS properties for Rule Engine queues, messages which will commit after visibility timeout period can be consume again. 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 | AWS SQS properties for Core queues, messages which will commit after visibility timeout period can be consume again. 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 | AWS SQS properties for Transport Api queues, messages which will commit after visibility timeout period can be consume again. 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 | AWS SQS properties for Notifications queues, messages which will commit after visibility timeout period can be consume again. 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 | AWS SQS properties for Transport Api queues, messages which will commit after visibility timeout period can be consume again. 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 | Pub/Sub max message size. 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.username | TB_QUEUE_RABBIT_MQ_USERNAME | YOUR_USERNAME | User name for RabbitMQ user account |
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. |
queue.partitions.virtual_nodes_size | TB_QUEUE_PARTITIONS_VIRTUAL_NODES_SIZE | 16 | Amount of virtual nodes in consistent hash ring. |
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.request_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 | 60000 | Timeout for processing a message pack by Core microservices |
queue.core.stats.enabled | TB_QUEUE_CORE_STATS_ENABLED | false | Enable/disable statistics for Core microservices |
queue.core.stats.print-interval-ms | TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS | 10000 | Statistics printing interval for Core microservices |
queue.js.request_topic | REMOTE_JS_EVAL_REQUEST_TOPIC | js_eval.requests | Queue topic used for producing JavaScript evaluation requests |
queue.js.response_topic_prefix | REMOTE_JS_EVAL_RESPONSE_TOPIC | js_eval.responses | Prefix queue topic used to consume JavaScript evaluation responses |
queue.js.max_pending_requests | REMOTE_JS_MAX_PENDING_REQUESTS | 10000 | Maximum pending JavaScript evaluation requests |
queue.js.max_eval_requests_timeout | REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT | 60000 | Maximum timeout in milliseconds for JavaScript evaluation |
queue.js.max_requests_timeout | REMOTE_JS_MAX_REQUEST_TIMEOUT | 10000 | Maximum timeout in milliseconds for JavaScript execution |
queue.js.response_poll_interval | REMOTE_JS_RESPONSE_POLL_INTERVAL_MS | 25 | JavaScript evaluation responses poll interval |
queue.js.response_auto_commit_interval | REMOTE_JS_RESPONSE_AUTO_COMMIT_INTERVAL_MS | 100 | JavaScript evaluation responses auto commit 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 | 60000 | 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 | 10000 | Statistics printing interval for Rule Engine microservices |
queue.rule-engine.queues.name | TB_QUEUE_RE_MAIN_QUEUE_NAME | Main | Rule Engine Main queue (mustn't be renamed) |
queue.rule-engine.queues.topic | TB_QUEUE_RE_MAIN_TOPIC | tb_rule_engine.main | Topic for Main queue by Rule Engine microservices |
queue.rule-engine.queues.poll-interval | TB_QUEUE_RE_MAIN_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages from Main queue by Rule Engine microservices |
queue.rule-engine.queues.partitions | TB_QUEUE_RE_MAIN_PARTITIONS | 10 | Main queue amount of partitions used by Rule Engine microservices |
queue.rule-engine.queues.pack-processing-timeout | TB_QUEUE_RE_MAIN_PACK_PROCESSING_TIMEOUT_MS | 60000 | Timeout for processing a message pack from Main queue by Rule Engine microservices |
queue.rule-engine.queues.submit-strategy.type | TB_QUEUE_RE_MAIN_SUBMIT_STRATEGY_TYPE | BURST | Main queue submit strategy. Can be: BURST, BATCH, SEQUENTIAL_BY_ORIGINATOR, SEQUENTIAL_WITHIN_TENANT, SEQUENTIAL |
queue.rule-engine.queues.submit-strategy.batch-size | TB_QUEUE_RE_MAIN_SUBMIT_STRATEGY_BATCH_SIZE | 1000 | Maximum number of messages in batch. Only for submit strategy type: BATCH |
queue.rule-engine.queues.processing-strategy.type | TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_TYPE | SKIP_ALL_FAILURES | Main queue processing strategy. Can be: SKIP_ALL_FAILURES, RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT |
queue.rule-engine.queues.processing-strategy.retries | TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_RETRIES | 3 | Number of retries, 0 is unlimited. Use for RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT processing strategies |
queue.rule-engine.queues.processing-strategy.failure-percentage | TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_FAILURE_PERCENTAGE | 0 | Skip retry if failures or timeouts are less then X percentage of messages |
queue.rule-engine.queues.processing-strategy.pause-between-retries | TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_RETRY_PAUSE | 3 | Time in seconds to wait in consumer thread before retries |
queue.rule-engine.queues.name | TB_QUEUE_RE_HP_QUEUE_NAME | HighPriority | Rule Engine HighPriority queue |
queue.rule-engine.queues.topic | TB_QUEUE_RE_HP_TOPIC | tb_rule_engine.hp | Topic for HighPriority queue by Rule Engine microservices |
queue.rule-engine.queues.poll-interval | TB_QUEUE_RE_HP_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages from HighPriority queue by Rule Engine microservices |
queue.rule-engine.queues.partitions | TB_QUEUE_RE_HP_PARTITIONS | 10 | HighPriority queue amount of partitions used by Rule Engine microservices |
queue.rule-engine.queues.pack-processing-timeout | TB_QUEUE_RE_HP_PACK_PROCESSING_TIMEOUT_MS | 60000 | Timeout for processing a message pack from HighPriority queue by Rule Engine microservices |
queue.rule-engine.queues.submit-strategy.type | TB_QUEUE_RE_HP_SUBMIT_STRATEGY_TYPE | BURST | HighPriority queue submit strategy. Can be: BURST, BATCH, SEQUENTIAL_BY_ORIGINATOR, SEQUENTIAL_WITHIN_TENANT, SEQUENTIAL |
queue.rule-engine.queues.submit-strategy.batch-size | TB_QUEUE_RE_HP_SUBMIT_STRATEGY_BATCH_SIZE | 100 | Maximum number of messages in batch. Only for submit strategy type: BATCH |
queue.rule-engine.queues.processing-strategy.type | TB_QUEUE_RE_HP_PROCESSING_STRATEGY_TYPE | RETRY_FAILED_AND_TIMED_OUT | SKIP_ALL_FAILURES, RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT |
queue.rule-engine.queues.processing-strategy.retries | TB_QUEUE_RE_HP_PROCESSING_STRATEGY_RETRIES | 0 | Number of retries, 0 is unlimited. Use for RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT processing strategies |
queue.rule-engine.queues.processing-strategy.failure-percentage | TB_QUEUE_RE_HP_PROCESSING_STRATEGY_FAILURE_PERCENTAGE | 0 | Skip retry if failures or timeouts are less then X percentage of messages |
queue.rule-engine.queues.processing-strategy.pause-between-retries | TB_QUEUE_RE_HP_PROCESSING_STRATEGY_RETRY_PAUSE | 5 | Time in seconds to wait in consumer thread before retries |
queue.rule-engine.queues.name | TB_QUEUE_RE_SQ_QUEUE_NAME | SequentialByOriginator | Rule Engine SequentialByOriginator queue |
queue.rule-engine.queues.topic | TB_QUEUE_RE_SQ_TOPIC | tb_rule_engine.sq | Topic for SequentialByOriginator queue by Rule Engine microservices |
queue.rule-engine.queues.poll-interval | TB_QUEUE_RE_SQ_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages from SequentialByOriginator queue by Rule Engine microservices |
queue.rule-engine.queues.partitions | TB_QUEUE_RE_SQ_PARTITIONS | 10 | SequentialByOriginator queue amount of partitions used by Rule Engine microservices |
queue.rule-engine.queues.pack-processing-timeout | TB_QUEUE_RE_SQ_PACK_PROCESSING_TIMEOUT_MS | 60000 | Timeout for processing a message pack from SequentialByOriginator queue by Rule Engine microservices |
queue.rule-engine.queues.submit-strategy.type | TB_QUEUE_RE_SQ_SUBMIT_STRATEGY_TYPE | SEQUENTIAL_BY_ORIGINATOR | SequentialByOriginator queue submit strategy. Can be: BURST, BATCH, SEQUENTIAL_BY_ORIGINATOR, SEQUENTIAL_WITHIN_TENANT, SEQUENTIAL |
queue.rule-engine.queues.submit-strategy.batch-size | TB_QUEUE_RE_SQ_SUBMIT_STRATEGY_BATCH_SIZE | 100 | Maximum number of messages in batch. Only for submit strategy type: BATCH |
queue.rule-engine.queues.processing-strategy.type | TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_TYPE | RETRY_FAILED_AND_TIMED_OUT | SKIP_ALL_FAILURES, RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT |
queue.rule-engine.queues.processing-strategy.retries | TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_RETRIES | 3 | Number of retries, 0 is unlimited. Use for RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT processing strategies |
queue.rule-engine.queues.processing-strategy.failure-percentage | TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_FAILURE_PERCENTAGE | 0 | Skip retry if failures or timeouts are less then X percentage of messages |
queue.rule-engine.queues.processing-strategy.pause-between-retries | TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_RETRY_PAUSE | 5 | Time in seconds to wait in consumer thread before retries |
queue.transport.notifications_topic | TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC | tb_transport.notifications | Transport nottifications topic |
queue.transport.poll_interval | TB_QUEUE_CORE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Core microservices |
ThingsBoard service parameters | |||
service.type. | TB_SERVICE_TYPE | monolith | Tb Queue service type. Can be: monolith or tb-core or tb-rule-engine |
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 |
Property | Environment Variable | Default Value | Description |
spring.main.web-environment | false | ||
spring.main.web-application-type | none | ||
Zookeeper connection parameters | |||
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' |
MQTT server parameters | |||
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.adaptor | MQTT_ADAPTOR_NAME | JsonMqttAdaptor | MQTT Adaptor name |
transport.mqtt.timeout | MQTT_TIMEOUT | 10000 | MQTT processing timeout in milliseconds |
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.ssl.enabled | MQTT_SSL_ENABLED | false | Enable/disable SSL support |
transport.mqtt.ssl.protocol | MQTT_SSL_PROTOCOL | TLSv1.2 | SSL protocol: See this link |
transport.mqtt.ssl.key_store | MQTT_SSL_KEY_STORE | mqttserver.jks | Path to the key store that holds the SSL certificate |
transport.mqtt.ssl.key_store_password | MQTT_SSL_KEY_STORE_PASSWORD | server_ks_password | Password used to access the key store |
transport.mqtt.ssl.key_password | MQTT_SSL_KEY_PASSWORD | server_key_password | Password used to access the key |
transport.mqtt.ssl.key_store_type | MQTT_SSL_KEY_STORE_TYPE | JKS | Type of the key store |
transport.sessions.inactivity_timeout | TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT | 300000 | |
transport.sessions.report_timeout | TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT | 30000 | |
transport.rate_limits.enabled | TB_TRANSPORT_RATE_LIMITS_ENABLED | false | Enabel/Disable rate limits on transport layer |
transport.rate_limits.tenant | TB_TRANSPORT_RATE_LIMITS_TENANT | 1000:1,20000:60 | Tenant Rate limit policy x:y where x = number of messages per time unit, y = timeunit size in seconds |
transport.rate_limits.device | TB_TRANSPORT_RATE_LIMITS_DEVICE | 10:1,300:60 | Device Rate limit policy x:y where x = number of messages per time unit, y = timeunit size in seconds |
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) |
Queue parameters | |||
queue.type | TB_QUEUE_TYPE | kafka | Queue type. Can be: kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) |
queue.kafka.bootstrap.servers | TB_KAFKA_SERVERS | localhost:9092 | List of kafka bootstrap servers used to establish connection |
queue.kafka.acks | TB_KAFKA_ACKS | all | The number of acknowledgments the producer requires the leader to have received before considering a request complete |
queue.kafka.retries | TB_KAFKA_RETRIES | 1 | Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error |
queue.kafka.batch.size | TB_KAFKA_BATCH_SIZE | 16384 | The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition |
queue.kafka.linger.ms | TB_KAFKA_LINGER_MS | 1 | The producer groups together any records that arrive in between request transmissions into a single batched request |
queue.kafka.buffer.memory | TB_BUFFER_MEMORY | 33554432 | The total bytes of memory the producer can use to buffer records waiting to be sent to the server |
queue.kafka.replication_factor | TB_QUEUE_KAFKA_REPLICATION_FACTOR | 1 | Replication factor defines the number of copies of a topic in a Kafka cluster |
queue.kafka.topic-properties.rule-engine | TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000 | 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 | 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 | 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 | 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:1048576000 | Kafka properties for Js Executor topics |
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 | AWS SQS properties for Rule Engine queues, messages which will commit after visibility timeout period can be consume again. 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 | AWS SQS properties for Core queues, messages which will commit after visibility timeout period can be consume again. 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 | AWS SQS properties for Transport Api queues, messages which will commit after visibility timeout period can be consume again. 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 | AWS SQS properties for Notifications queues, messages which will commit after visibility timeout period can be consume again. 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 | AWS SQS properties for Transport Api queues, messages which will commit after visibility timeout period can be consume again. 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 | Pub/Sub max message size. 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.username | TB_QUEUE_RABBIT_MQ_USERNAME | YOUR_USERNAME | User name for RabbitMQ user account |
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. |
queue.partitions.virtual_nodes_size | TB_QUEUE_PARTITIONS_VIRTUAL_NODES_SIZE | 16 | Amount of virtual nodes in consistent hash ring. |
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.request_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 | 60000 | Timeout for processing a message pack by Core microservices |
queue.core.stats.enabled | TB_QUEUE_CORE_STATS_ENABLED | false | Enable/disable statistics for Core microservices |
queue.core.stats.print-interval-ms | TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS | 10000 | Statistics printing interval for Core microservices |
queue.js.request_topic | REMOTE_JS_EVAL_REQUEST_TOPIC | js_eval.requests | Queue topic used for producing JavaScript evaluation requests |
queue.js.response_topic_prefix | REMOTE_JS_EVAL_RESPONSE_TOPIC | js_eval.responses | Prefix queue topic used to consume JavaScript evaluation responses |
queue.js.max_pending_requests | REMOTE_JS_MAX_PENDING_REQUESTS | 10000 | Maximum pending JavaScript evaluation requests |
queue.js.max_eval_requests_timeout | REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT | 60000 | Maximum timeout in milliseconds for JavaScript evaluation |
queue.js.max_requests_timeout | REMOTE_JS_MAX_REQUEST_TIMEOUT | 10000 | Maximum timeout in milliseconds for JavaScript execution |
queue.js.response_poll_interval | REMOTE_JS_RESPONSE_POLL_INTERVAL_MS | 25 | JavaScript evaluation responses poll interval |
queue.js.response_auto_commit_interval | REMOTE_JS_RESPONSE_AUTO_COMMIT_INTERVAL_MS | 100 | JavaScript evaluation responses auto commit 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 | 60000 | 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 | 10000 | Statistics printing interval for Rule Engine microservices |
queue.rule-engine.queues.name | TB_QUEUE_RE_MAIN_QUEUE_NAME | Main | Rule Engine Main queue (mustn't be renamed) |
queue.rule-engine.queues.topic | TB_QUEUE_RE_MAIN_TOPIC | tb_rule_engine.main | Topic for Main queue by Rule Engine microservices |
queue.rule-engine.queues.poll-interval | TB_QUEUE_RE_MAIN_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages from Main queue by Rule Engine microservices |
queue.rule-engine.queues.partitions | TB_QUEUE_RE_MAIN_PARTITIONS | 10 | Main queue amount of partitions used by Rule Engine microservices |
queue.rule-engine.queues.pack-processing-timeout | TB_QUEUE_RE_MAIN_PACK_PROCESSING_TIMEOUT_MS | 60000 | Timeout for processing a message pack from Main queue by Rule Engine microservices |
queue.rule-engine.queues.submit-strategy.type | TB_QUEUE_RE_MAIN_SUBMIT_STRATEGY_TYPE | BURST | Main queue submit strategy. Can be: BURST, BATCH, SEQUENTIAL_BY_ORIGINATOR, SEQUENTIAL_WITHIN_TENANT, SEQUENTIAL |
queue.rule-engine.queues.submit-strategy.batch-size | TB_QUEUE_RE_MAIN_SUBMIT_STRATEGY_BATCH_SIZE | 1000 | Maximum number of messages in batch. Only for submit strategy type: BATCH |
queue.rule-engine.queues.processing-strategy.type | TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_TYPE | SKIP_ALL_FAILURES | Main queue processing strategy. Can be: SKIP_ALL_FAILURES, RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT |
queue.rule-engine.queues.processing-strategy.retries | TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_RETRIES | 3 | Number of retries, 0 is unlimited. Use for RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT processing strategies |
queue.rule-engine.queues.processing-strategy.failure-percentage | TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_FAILURE_PERCENTAGE | 0 | Skip retry if failures or timeouts are less then X percentage of messages |
queue.rule-engine.queues.processing-strategy.pause-between-retries | TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_RETRY_PAUSE | 3 | Time in seconds to wait in consumer thread before retries |
queue.rule-engine.queues.name | TB_QUEUE_RE_HP_QUEUE_NAME | HighPriority | Rule Engine HighPriority queue |
queue.rule-engine.queues.topic | TB_QUEUE_RE_HP_TOPIC | tb_rule_engine.hp | Topic for HighPriority queue by Rule Engine microservices |
queue.rule-engine.queues.poll-interval | TB_QUEUE_RE_HP_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages from HighPriority queue by Rule Engine microservices |
queue.rule-engine.queues.partitions | TB_QUEUE_RE_HP_PARTITIONS | 10 | HighPriority queue amount of partitions used by Rule Engine microservices |
queue.rule-engine.queues.pack-processing-timeout | TB_QUEUE_RE_HP_PACK_PROCESSING_TIMEOUT_MS | 60000 | Timeout for processing a message pack from HighPriority queue by Rule Engine microservices |
queue.rule-engine.queues.submit-strategy.type | TB_QUEUE_RE_HP_SUBMIT_STRATEGY_TYPE | BURST | HighPriority queue submit strategy. Can be: BURST, BATCH, SEQUENTIAL_BY_ORIGINATOR, SEQUENTIAL_WITHIN_TENANT, SEQUENTIAL |
queue.rule-engine.queues.submit-strategy.batch-size | TB_QUEUE_RE_HP_SUBMIT_STRATEGY_BATCH_SIZE | 100 | Maximum number of messages in batch. Only for submit strategy type: BATCH |
queue.rule-engine.queues.processing-strategy.type | TB_QUEUE_RE_HP_PROCESSING_STRATEGY_TYPE | RETRY_FAILED_AND_TIMED_OUT | SKIP_ALL_FAILURES, RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT |
queue.rule-engine.queues.processing-strategy.retries | TB_QUEUE_RE_HP_PROCESSING_STRATEGY_RETRIES | 0 | Number of retries, 0 is unlimited. Use for RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT processing strategies |
queue.rule-engine.queues.processing-strategy.failure-percentage | TB_QUEUE_RE_HP_PROCESSING_STRATEGY_FAILURE_PERCENTAGE | 0 | Skip retry if failures or timeouts are less then X percentage of messages |
queue.rule-engine.queues.processing-strategy.pause-between-retries | TB_QUEUE_RE_HP_PROCESSING_STRATEGY_RETRY_PAUSE | 5 | Time in seconds to wait in consumer thread before retries |
queue.rule-engine.queues.name | TB_QUEUE_RE_SQ_QUEUE_NAME | SequentialByOriginator | Rule Engine SequentialByOriginator queue |
queue.rule-engine.queues.topic | TB_QUEUE_RE_SQ_TOPIC | tb_rule_engine.sq | Topic for SequentialByOriginator queue by Rule Engine microservices |
queue.rule-engine.queues.poll-interval | TB_QUEUE_RE_SQ_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages from SequentialByOriginator queue by Rule Engine microservices |
queue.rule-engine.queues.partitions | TB_QUEUE_RE_SQ_PARTITIONS | 10 | SequentialByOriginator queue amount of partitions used by Rule Engine microservices |
queue.rule-engine.queues.pack-processing-timeout | TB_QUEUE_RE_SQ_PACK_PROCESSING_TIMEOUT_MS | 60000 | Timeout for processing a message pack from SequentialByOriginator queue by Rule Engine microservices |
queue.rule-engine.queues.submit-strategy.type | TB_QUEUE_RE_SQ_SUBMIT_STRATEGY_TYPE | SEQUENTIAL_BY_ORIGINATOR | SequentialByOriginator queue submit strategy. Can be: BURST, BATCH, SEQUENTIAL_BY_ORIGINATOR, SEQUENTIAL_WITHIN_TENANT, SEQUENTIAL |
queue.rule-engine.queues.submit-strategy.batch-size | TB_QUEUE_RE_SQ_SUBMIT_STRATEGY_BATCH_SIZE | 100 | Maximum number of messages in batch. Only for submit strategy type: BATCH |
queue.rule-engine.queues.processing-strategy.type | TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_TYPE | RETRY_FAILED_AND_TIMED_OUT | SKIP_ALL_FAILURES, RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT |
queue.rule-engine.queues.processing-strategy.retries | TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_RETRIES | 3 | Number of retries, 0 is unlimited. Use for RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT processing strategies |
queue.rule-engine.queues.processing-strategy.failure-percentage | TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_FAILURE_PERCENTAGE | 0 | Skip retry if failures or timeouts are less then X percentage of messages |
queue.rule-engine.queues.processing-strategy.pause-between-retries | TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_RETRY_PAUSE | 5 | Time in seconds to wait in consumer thread before retries |
queue.transport.notifications_topic | TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC | tb_transport.notifications | Transport nottifications topic |
queue.transport.poll_interval | TB_QUEUE_CORE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Core microservices |
ThingsBoard service parameters | |||
service.type. | TB_SERVICE_TYPE | monolith | Tb Queue service type. Can be: monolith or tb-core or tb-rule-engine |
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 |
Property | 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 |
Zookeeper connection parameters | |||
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' |
HTTP server parameters | |||
transport.http.request_timeout | HTTP_REQUEST_TIMEOUT | 60000 | Http request processing timeout in milliseconds |
transport.sessions.inactivity_timeout | TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT | 300000 | |
transport.sessions.report_timeout | TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT | 30000 | |
transport.rate_limits.enabled | TB_TRANSPORT_RATE_LIMITS_ENABLED | false | Enabel/Disable rate limits on transport layer |
transport.rate_limits.tenant | TB_TRANSPORT_RATE_LIMITS_TENANT | 1000:1,20000:60 | Tenant Rate limit policy x:y where x = number of messages per time unit, y = timeunit size in seconds |
transport.rate_limits.device | TB_TRANSPORT_RATE_LIMITS_DEVICE | 10:1,300:60 | Device Rate limit policy x:y where x = number of messages per time unit, y = timeunit size in seconds |
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) |
Queue parameters | |||
queue.type | TB_QUEUE_TYPE | kafka | Queue type. Can be: kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) |
queue.kafka.bootstrap.servers | TB_KAFKA_SERVERS | localhost:9092 | List of kafka bootstrap servers used to establish connection |
queue.kafka.acks | TB_KAFKA_ACKS | all | The number of acknowledgments the producer requires the leader to have received before considering a request complete |
queue.kafka.retries | TB_KAFKA_RETRIES | 1 | Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error |
queue.kafka.batch.size | TB_KAFKA_BATCH_SIZE | 16384 | The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition |
queue.kafka.linger.ms | TB_KAFKA_LINGER_MS | 1 | The producer groups together any records that arrive in between request transmissions into a single batched request |
queue.kafka.buffer.memory | TB_BUFFER_MEMORY | 33554432 | The total bytes of memory the producer can use to buffer records waiting to be sent to the server |
queue.kafka.replication_factor | TB_QUEUE_KAFKA_REPLICATION_FACTOR | 1 | Replication factor defines the number of copies of a topic in a Kafka cluster |
queue.kafka.topic-properties.rule-engine | TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000 | 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 | 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 | 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 | 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:1048576000 | Kafka properties for Js Executor topics |
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 | AWS SQS properties for Rule Engine queues, messages which will commit after visibility timeout period can be consume again. 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 | AWS SQS properties for Core queues, messages which will commit after visibility timeout period can be consume again. 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 | AWS SQS properties for Transport Api queues, messages which will commit after visibility timeout period can be consume again. 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 | AWS SQS properties for Notifications queues, messages which will commit after visibility timeout period can be consume again. 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 | AWS SQS properties for Transport Api queues, messages which will commit after visibility timeout period can be consume again. 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 | Pub/Sub max message size. 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.username | TB_QUEUE_RABBIT_MQ_USERNAME | YOUR_USERNAME | User name for RabbitMQ user account |
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. |
queue.partitions.virtual_nodes_size | TB_QUEUE_PARTITIONS_VIRTUAL_NODES_SIZE | 16 | Amount of virtual nodes in consistent hash ring. |
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.request_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 | 60000 | Timeout for processing a message pack by Core microservices |
queue.core.stats.enabled | TB_QUEUE_CORE_STATS_ENABLED | false | Enable/disable statistics for Core microservices |
queue.core.stats.print-interval-ms | TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS | 10000 | Statistics printing interval for Core microservices |
queue.js.request_topic | REMOTE_JS_EVAL_REQUEST_TOPIC | js_eval.requests | Queue topic used for producing JavaScript evaluation requests |
queue.js.response_topic_prefix | REMOTE_JS_EVAL_RESPONSE_TOPIC | js_eval.responses | Prefix queue topic used to consume JavaScript evaluation responses |
queue.js.max_pending_requests | REMOTE_JS_MAX_PENDING_REQUESTS | 10000 | Maximum pending JavaScript evaluation requests |
queue.js.max_eval_requests_timeout | REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT | 60000 | Maximum timeout in milliseconds for JavaScript evaluation |
queue.js.max_requests_timeout | REMOTE_JS_MAX_REQUEST_TIMEOUT | 10000 | Maximum timeout in milliseconds for JavaScript execution |
queue.js.response_poll_interval | REMOTE_JS_RESPONSE_POLL_INTERVAL_MS | 25 | JavaScript evaluation responses poll interval |
queue.js.response_auto_commit_interval | REMOTE_JS_RESPONSE_AUTO_COMMIT_INTERVAL_MS | 100 | JavaScript evaluation responses auto commit 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 | 60000 | 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 | 10000 | Statistics printing interval for Rule Engine microservices |
queue.rule-engine.queues.name | TB_QUEUE_RE_MAIN_QUEUE_NAME | Main | Rule Engine Main queue (mustn't be renamed) |
queue.rule-engine.queues.topic | TB_QUEUE_RE_MAIN_TOPIC | tb_rule_engine.main | Topic for Main queue by Rule Engine microservices |
queue.rule-engine.queues.poll-interval | TB_QUEUE_RE_MAIN_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages from Main queue by Rule Engine microservices |
queue.rule-engine.queues.partitions | TB_QUEUE_RE_MAIN_PARTITIONS | 10 | Main queue amount of partitions used by Rule Engine microservices |
queue.rule-engine.queues.pack-processing-timeout | TB_QUEUE_RE_MAIN_PACK_PROCESSING_TIMEOUT_MS | 60000 | Timeout for processing a message pack from Main queue by Rule Engine microservices |
queue.rule-engine.queues.submit-strategy.type | TB_QUEUE_RE_MAIN_SUBMIT_STRATEGY_TYPE | BURST | Main queue submit strategy. Can be: BURST, BATCH, SEQUENTIAL_BY_ORIGINATOR, SEQUENTIAL_WITHIN_TENANT, SEQUENTIAL |
queue.rule-engine.queues.submit-strategy.batch-size | TB_QUEUE_RE_MAIN_SUBMIT_STRATEGY_BATCH_SIZE | 1000 | Maximum number of messages in batch. Only for submit strategy type: BATCH |
queue.rule-engine.queues.processing-strategy.type | TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_TYPE | SKIP_ALL_FAILURES | Main queue processing strategy. Can be: SKIP_ALL_FAILURES, RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT |
queue.rule-engine.queues.processing-strategy.retries | TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_RETRIES | 3 | Number of retries, 0 is unlimited. Use for RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT processing strategies |
queue.rule-engine.queues.processing-strategy.failure-percentage | TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_FAILURE_PERCENTAGE | 0 | Skip retry if failures or timeouts are less then X percentage of messages |
queue.rule-engine.queues.processing-strategy.pause-between-retries | TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_RETRY_PAUSE | 3 | Time in seconds to wait in consumer thread before retries |
queue.rule-engine.queues.name | TB_QUEUE_RE_HP_QUEUE_NAME | HighPriority | Rule Engine HighPriority queue |
queue.rule-engine.queues.topic | TB_QUEUE_RE_HP_TOPIC | tb_rule_engine.hp | Topic for HighPriority queue by Rule Engine microservices |
queue.rule-engine.queues.poll-interval | TB_QUEUE_RE_HP_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages from HighPriority queue by Rule Engine microservices |
queue.rule-engine.queues.partitions | TB_QUEUE_RE_HP_PARTITIONS | 10 | HighPriority queue amount of partitions used by Rule Engine microservices |
queue.rule-engine.queues.pack-processing-timeout | TB_QUEUE_RE_HP_PACK_PROCESSING_TIMEOUT_MS | 60000 | Timeout for processing a message pack from HighPriority queue by Rule Engine microservices |
queue.rule-engine.queues.submit-strategy.type | TB_QUEUE_RE_HP_SUBMIT_STRATEGY_TYPE | BURST | HighPriority queue submit strategy. Can be: BURST, BATCH, SEQUENTIAL_BY_ORIGINATOR, SEQUENTIAL_WITHIN_TENANT, SEQUENTIAL |
queue.rule-engine.queues.submit-strategy.batch-size | TB_QUEUE_RE_HP_SUBMIT_STRATEGY_BATCH_SIZE | 100 | Maximum number of messages in batch. Only for submit strategy type: BATCH |
queue.rule-engine.queues.processing-strategy.type | TB_QUEUE_RE_HP_PROCESSING_STRATEGY_TYPE | RETRY_FAILED_AND_TIMED_OUT | SKIP_ALL_FAILURES, RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT |
queue.rule-engine.queues.processing-strategy.retries | TB_QUEUE_RE_HP_PROCESSING_STRATEGY_RETRIES | 0 | Number of retries, 0 is unlimited. Use for RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT processing strategies |
queue.rule-engine.queues.processing-strategy.failure-percentage | TB_QUEUE_RE_HP_PROCESSING_STRATEGY_FAILURE_PERCENTAGE | 0 | Skip retry if failures or timeouts are less then X percentage of messages |
queue.rule-engine.queues.processing-strategy.pause-between-retries | TB_QUEUE_RE_HP_PROCESSING_STRATEGY_RETRY_PAUSE | 5 | Time in seconds to wait in consumer thread before retries |
queue.rule-engine.queues.name | TB_QUEUE_RE_SQ_QUEUE_NAME | SequentialByOriginator | Rule Engine SequentialByOriginator queue |
queue.rule-engine.queues.topic | TB_QUEUE_RE_SQ_TOPIC | tb_rule_engine.sq | Topic for SequentialByOriginator queue by Rule Engine microservices |
queue.rule-engine.queues.poll-interval | TB_QUEUE_RE_SQ_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages from SequentialByOriginator queue by Rule Engine microservices |
queue.rule-engine.queues.partitions | TB_QUEUE_RE_SQ_PARTITIONS | 10 | SequentialByOriginator queue amount of partitions used by Rule Engine microservices |
queue.rule-engine.queues.pack-processing-timeout | TB_QUEUE_RE_SQ_PACK_PROCESSING_TIMEOUT_MS | 60000 | Timeout for processing a message pack from SequentialByOriginator queue by Rule Engine microservices |
queue.rule-engine.queues.submit-strategy.type | TB_QUEUE_RE_SQ_SUBMIT_STRATEGY_TYPE | SEQUENTIAL_BY_ORIGINATOR | SequentialByOriginator queue submit strategy. Can be: BURST, BATCH, SEQUENTIAL_BY_ORIGINATOR, SEQUENTIAL_WITHIN_TENANT, SEQUENTIAL |
queue.rule-engine.queues.submit-strategy.batch-size | TB_QUEUE_RE_SQ_SUBMIT_STRATEGY_BATCH_SIZE | 100 | Maximum number of messages in batch. Only for submit strategy type: BATCH |
queue.rule-engine.queues.processing-strategy.type | TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_TYPE | RETRY_FAILED_AND_TIMED_OUT | SKIP_ALL_FAILURES, RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT |
queue.rule-engine.queues.processing-strategy.retries | TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_RETRIES | 3 | Number of retries, 0 is unlimited. Use for RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT processing strategies |
queue.rule-engine.queues.processing-strategy.failure-percentage | TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_FAILURE_PERCENTAGE | 0 | Skip retry if failures or timeouts are less then X percentage of messages |
queue.rule-engine.queues.processing-strategy.pause-between-retries | TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_RETRY_PAUSE | 5 | Time in seconds to wait in consumer thread before retries |
queue.transport.notifications_topic | TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC | tb_transport.notifications | Transport nottifications topic |
queue.transport.poll_interval | TB_QUEUE_CORE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Core microservices |
ThingsBoard service parameters | |||
service.type. | TB_SERVICE_TYPE | monolith | Tb Queue service type. Can be: monolith or tb-core or tb-rule-engine |
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 |
Property | Environment Variable | Default Value | Description |
spring.main.web-environment | false | ||
spring.main.web-application-type | none | ||
Zookeeper connection parameters | |||
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' |
COAP server parameters | |||
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.sessions.inactivity_timeout | TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT | 300000 | |
transport.sessions.report_timeout | TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT | 30000 | |
transport.rate_limits.enabled | TB_TRANSPORT_RATE_LIMITS_ENABLED | false | Enabel/Disable rate limits on transport layer |
transport.rate_limits.tenant | TB_TRANSPORT_RATE_LIMITS_TENANT | 1000:1,20000:60 | Tenant Rate limit policy x:y where x = number of messages per time unit, y = timeunit size in seconds |
transport.rate_limits.device | TB_TRANSPORT_RATE_LIMITS_DEVICE | 10:1,300:60 | Device Rate limit policy x:y where x = number of messages per time unit, y = timeunit size in seconds |
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) |
Queue parameters | |||
queue.type | TB_QUEUE_TYPE | kafka | Queue type. Can be: kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) |
queue.kafka.bootstrap.servers | TB_KAFKA_SERVERS | localhost:9092 | List of kafka bootstrap servers used to establish connection |
queue.kafka.acks | TB_KAFKA_ACKS | all | The number of acknowledgments the producer requires the leader to have received before considering a request complete |
queue.kafka.retries | TB_KAFKA_RETRIES | 1 | Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error |
queue.kafka.batch.size | TB_KAFKA_BATCH_SIZE | 16384 | The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition |
queue.kafka.linger.ms | TB_KAFKA_LINGER_MS | 1 | The producer groups together any records that arrive in between request transmissions into a single batched request |
queue.kafka.buffer.memory | TB_BUFFER_MEMORY | 33554432 | The total bytes of memory the producer can use to buffer records waiting to be sent to the server |
queue.kafka.replication_factor | TB_QUEUE_KAFKA_REPLICATION_FACTOR | 1 | Replication factor defines the number of copies of a topic in a Kafka cluster |
queue.kafka.topic-properties.rule-engine | TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000 | 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 | 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 | 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 | 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:1048576000 | Kafka properties for Js Executor topics |
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 | AWS SQS properties for Rule Engine queues, messages which will commit after visibility timeout period can be consume again. 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 | AWS SQS properties for Core queues, messages which will commit after visibility timeout period can be consume again. 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 | AWS SQS properties for Transport Api queues, messages which will commit after visibility timeout period can be consume again. 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 | AWS SQS properties for Notifications queues, messages which will commit after visibility timeout period can be consume again. 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 | AWS SQS properties for Transport Api queues, messages which will commit after visibility timeout period can be consume again. 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 | Pub/Sub max message size. 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.username | TB_QUEUE_RABBIT_MQ_USERNAME | YOUR_USERNAME | User name for RabbitMQ user account |
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. |
queue.partitions.virtual_nodes_size | TB_QUEUE_PARTITIONS_VIRTUAL_NODES_SIZE | 16 | Amount of virtual nodes in consistent hash ring. |
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.request_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 | 60000 | Timeout for processing a message pack by Core microservices |
queue.core.stats.enabled | TB_QUEUE_CORE_STATS_ENABLED | false | Enable/disable statistics for Core microservices |
queue.core.stats.print-interval-ms | TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS | 10000 | Statistics printing interval for Core microservices |
queue.js.request_topic | REMOTE_JS_EVAL_REQUEST_TOPIC | js_eval.requests | Queue topic used for producing JavaScript evaluation requests |
queue.js.response_topic_prefix | REMOTE_JS_EVAL_RESPONSE_TOPIC | js_eval.responses | Prefix queue topic used to consume JavaScript evaluation responses |
queue.js.max_pending_requests | REMOTE_JS_MAX_PENDING_REQUESTS | 10000 | Maximum pending JavaScript evaluation requests |
queue.js.max_eval_requests_timeout | REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT | 60000 | Maximum timeout in milliseconds for JavaScript evaluation |
queue.js.max_requests_timeout | REMOTE_JS_MAX_REQUEST_TIMEOUT | 10000 | Maximum timeout in milliseconds for JavaScript execution |
queue.js.response_poll_interval | REMOTE_JS_RESPONSE_POLL_INTERVAL_MS | 25 | JavaScript evaluation responses poll interval |
queue.js.response_auto_commit_interval | REMOTE_JS_RESPONSE_AUTO_COMMIT_INTERVAL_MS | 100 | JavaScript evaluation responses auto commit 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 | 60000 | 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 | 10000 | Statistics printing interval for Rule Engine microservices |
queue.rule-engine.queues.name | TB_QUEUE_RE_MAIN_QUEUE_NAME | Main | Rule Engine Main queue (mustn't be renamed) |
queue.rule-engine.queues.topic | TB_QUEUE_RE_MAIN_TOPIC | tb_rule_engine.main | Topic for Main queue by Rule Engine microservices |
queue.rule-engine.queues.poll-interval | TB_QUEUE_RE_MAIN_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages from Main queue by Rule Engine microservices |
queue.rule-engine.queues.partitions | TB_QUEUE_RE_MAIN_PARTITIONS | 10 | Main queue amount of partitions used by Rule Engine microservices |
queue.rule-engine.queues.pack-processing-timeout | TB_QUEUE_RE_MAIN_PACK_PROCESSING_TIMEOUT_MS | 60000 | Timeout for processing a message pack from Main queue by Rule Engine microservices |
queue.rule-engine.queues.submit-strategy.type | TB_QUEUE_RE_MAIN_SUBMIT_STRATEGY_TYPE | BURST | Main queue submit strategy. Can be: BURST, BATCH, SEQUENTIAL_BY_ORIGINATOR, SEQUENTIAL_WITHIN_TENANT, SEQUENTIAL |
queue.rule-engine.queues.submit-strategy.batch-size | TB_QUEUE_RE_MAIN_SUBMIT_STRATEGY_BATCH_SIZE | 1000 | Maximum number of messages in batch. Only for submit strategy type: BATCH |
queue.rule-engine.queues.processing-strategy.type | TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_TYPE | SKIP_ALL_FAILURES | Main queue processing strategy. Can be: SKIP_ALL_FAILURES, RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT |
queue.rule-engine.queues.processing-strategy.retries | TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_RETRIES | 3 | Number of retries, 0 is unlimited. Use for RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT processing strategies |
queue.rule-engine.queues.processing-strategy.failure-percentage | TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_FAILURE_PERCENTAGE | 0 | Skip retry if failures or timeouts are less then X percentage of messages |
queue.rule-engine.queues.processing-strategy.pause-between-retries | TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_RETRY_PAUSE | 3 | Time in seconds to wait in consumer thread before retries |
queue.rule-engine.queues.name | TB_QUEUE_RE_HP_QUEUE_NAME | HighPriority | Rule Engine HighPriority queue |
queue.rule-engine.queues.topic | TB_QUEUE_RE_HP_TOPIC | tb_rule_engine.hp | Topic for HighPriority queue by Rule Engine microservices |
queue.rule-engine.queues.poll-interval | TB_QUEUE_RE_HP_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages from HighPriority queue by Rule Engine microservices |
queue.rule-engine.queues.partitions | TB_QUEUE_RE_HP_PARTITIONS | 10 | HighPriority queue amount of partitions used by Rule Engine microservices |
queue.rule-engine.queues.pack-processing-timeout | TB_QUEUE_RE_HP_PACK_PROCESSING_TIMEOUT_MS | 60000 | Timeout for processing a message pack from HighPriority queue by Rule Engine microservices |
queue.rule-engine.queues.submit-strategy.type | TB_QUEUE_RE_HP_SUBMIT_STRATEGY_TYPE | BURST | HighPriority queue submit strategy. Can be: BURST, BATCH, SEQUENTIAL_BY_ORIGINATOR, SEQUENTIAL_WITHIN_TENANT, SEQUENTIAL |
queue.rule-engine.queues.submit-strategy.batch-size | TB_QUEUE_RE_HP_SUBMIT_STRATEGY_BATCH_SIZE | 100 | Maximum number of messages in batch. Only for submit strategy type: BATCH |
queue.rule-engine.queues.processing-strategy.type | TB_QUEUE_RE_HP_PROCESSING_STRATEGY_TYPE | RETRY_FAILED_AND_TIMED_OUT | SKIP_ALL_FAILURES, RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT |
queue.rule-engine.queues.processing-strategy.retries | TB_QUEUE_RE_HP_PROCESSING_STRATEGY_RETRIES | 0 | Number of retries, 0 is unlimited. Use for RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT processing strategies |
queue.rule-engine.queues.processing-strategy.failure-percentage | TB_QUEUE_RE_HP_PROCESSING_STRATEGY_FAILURE_PERCENTAGE | 0 | Skip retry if failures or timeouts are less then X percentage of messages |
queue.rule-engine.queues.processing-strategy.pause-between-retries | TB_QUEUE_RE_HP_PROCESSING_STRATEGY_RETRY_PAUSE | 5 | Time in seconds to wait in consumer thread before retries |
queue.rule-engine.queues.name | TB_QUEUE_RE_SQ_QUEUE_NAME | SequentialByOriginator | Rule Engine SequentialByOriginator queue |
queue.rule-engine.queues.topic | TB_QUEUE_RE_SQ_TOPIC | tb_rule_engine.sq | Topic for SequentialByOriginator queue by Rule Engine microservices |
queue.rule-engine.queues.poll-interval | TB_QUEUE_RE_SQ_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages from SequentialByOriginator queue by Rule Engine microservices |
queue.rule-engine.queues.partitions | TB_QUEUE_RE_SQ_PARTITIONS | 10 | SequentialByOriginator queue amount of partitions used by Rule Engine microservices |
queue.rule-engine.queues.pack-processing-timeout | TB_QUEUE_RE_SQ_PACK_PROCESSING_TIMEOUT_MS | 60000 | Timeout for processing a message pack from SequentialByOriginator queue by Rule Engine microservices |
queue.rule-engine.queues.submit-strategy.type | TB_QUEUE_RE_SQ_SUBMIT_STRATEGY_TYPE | SEQUENTIAL_BY_ORIGINATOR | SequentialByOriginator queue submit strategy. Can be: BURST, BATCH, SEQUENTIAL_BY_ORIGINATOR, SEQUENTIAL_WITHIN_TENANT, SEQUENTIAL |
queue.rule-engine.queues.submit-strategy.batch-size | TB_QUEUE_RE_SQ_SUBMIT_STRATEGY_BATCH_SIZE | 100 | Maximum number of messages in batch. Only for submit strategy type: BATCH |
queue.rule-engine.queues.processing-strategy.type | TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_TYPE | RETRY_FAILED_AND_TIMED_OUT | SKIP_ALL_FAILURES, RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT |
queue.rule-engine.queues.processing-strategy.retries | TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_RETRIES | 3 | Number of retries, 0 is unlimited. Use for RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT processing strategies |
queue.rule-engine.queues.processing-strategy.failure-percentage | TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_FAILURE_PERCENTAGE | 0 | Skip retry if failures or timeouts are less then X percentage of messages |
queue.rule-engine.queues.processing-strategy.pause-between-retries | TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_RETRY_PAUSE | 5 | Time in seconds to wait in consumer thread before retries |
queue.transport.notifications_topic | TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC | tb_transport.notifications | Transport nottifications topic |
queue.transport.poll_interval | TB_QUEUE_CORE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Core microservices |
ThingsBoard service parameters | |||
service.type. | TB_SERVICE_TYPE | monolith | Tb Queue service type. Can be: monolith or tb-core or tb-rule-engine |
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 |
The configuration file for the startup script. Contains Java options and classpath related parameters.
The configuration file for logging. Allows controlling the log level, the size of log files and the total size/volume of logs.