- Server common parameters
- Spring common parameters
- Zookeeper connection parameters. Used for service discovery.
- Integration common parameters
- Queue common parameters
- Tbel parameters
- JS parameters
- Cache parameters
- Redis configuration parameters
- CoAP server parameters
- Event parameters
- Usage statistics parameters
- Metrics parameters
- General management parameters
- Notification system parameters
Server common parameters
Parameter | Environment Variable | Default Value | Description |
server.address | HTTP_BIND_ADDRESS | 0.0.0.0 | Server bind address |
server.port | HTTP_BIND_PORT | 8082 | Server bind port |
server.tomcat.max-http-form-post-size | MAX_HTTP_FORM_POST_SIZE | 10000000 | 10Mb |
Spring common parameters
Parameter | Environment Variable | Default Value | Description |
spring.main.allow-circular-references | "true" | Spring Boot configuration property that controls whether circular dependencies between beans are allowed. | |
spring.servlet.multipart.max-file-size | SPRING_SERVLET_MULTIPART_MAX_FILE_SIZE | 50MB | Total file size cannot exceed 50MB when configuring file uploads |
spring.servlet.multipart.max-request-size | SPRING_SERVLET_MULTIPART_MAX_REQUEST_SIZE | 50MB | Total request size for a multipart/form-data cannot exceed 50MB |
Zookeeper connection parameters. Used for service discovery.
Parameter | Environment Variable | Default Value | Description |
zk.enabled | ZOOKEEPER_ENABLED | true | Enable/disable zookeeper discovery service. |
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' |
zk.recalculate_delay | ZOOKEEPER_RECALCULATE_DELAY_MS | 0 | The recalculate_delay property is recommended in a microservices architecture setup for rule-engine services. This property provides a pause to ensure that when a rule-engine service is restarted, other nodes don't immediately attempt to recalculate their partitions. The delay is recommended because the initialization of rule chain actors is time-consuming. Avoiding unnecessary recalculations during a restart can enhance system performance and stability. |
Integration common parameters
Parameter | Environment Variable | Default Value | Description |
integrations.statistics.enabled | INTEGRATIONS_STATISTICS_ENABLED | true | Enable/disable integrations statistics |
integrations.statistics.persist_frequency | INTEGRATIONS_STATISTICS_PERSIST_FREQUENCY | 3600000 | Integration statistic persistence frequency in milliseconds |
integrations.init.connection_timeout_sec | INTEGRATIONS_INIT_CONNECTION_TIMEOUT_SEC | 10 | Maximum connection timeout allowed for integrations in seconds. Any greater user defined timeout will be reduced down to this limit. |
integrations.init.connection_check_api_request_timeout_sec | INTEGRATIONS_INIT_CONNECTION_CHECK_API_REQUEST_TIMEOUT_SEC | 20 | Connection check timeout for API request in seconds |
integrations.reinit.enabled | INTEGRATIONS_REINIT_ENABLED | true | Enable/Disable integrations hot reinitialization |
integrations.reinit.frequency | INTEGRATIONS_REINIT_FREQUENCY | 300000 | Checking interval for reinit integrations |
integrations.allow_Local_network_hosts | INTEGRATIONS_ALLOW_LOCAL_NETWORK_HOSTS | true | Enable/Disable integrations local network hosts |
Queue common parameters
Parameter | Environment Variable | Default Value | Description |
queue.type | TB_QUEUE_TYPE | kafka | kafka (Apache Kafka) |
queue.prefix | TB_QUEUE_PREFIX | Global queue prefix. If specified, prefix is added before default topic name: 'prefix.default_topic_name'. Prefix is applied to all topics (and consumer groups for kafka). | |
queue.kafka.bootstrap.servers | TB_KAFKA_SERVERS | localhost:9092 | Kafka Bootstrap Servers |
queue.kafka.ssl.enabled | TB_KAFKA_SSL_ENABLED | false | Enable/Disable SSL Kafka communication |
queue.kafka.ssl.truststore.location | TB_KAFKA_SSL_TRUSTSTORE_LOCATION | The location of the trust store file | |
queue.kafka.ssl.truststore.password | TB_KAFKA_SSL_TRUSTSTORE_PASSWORD | The password of trust store file if specified | |
queue.kafka.ssl.keystore.location | TB_KAFKA_SSL_KEYSTORE_LOCATION | The location of the key store file. This is optional for the client and can be used for two-way authentication for the client | |
queue.kafka.ssl.keystore.password | TB_KAFKA_SSL_KEYSTORE_PASSWORD | The store password for the key store file. This is optional for the client and only needed if ‘ssl.keystore.location’ is configured. Key store password is not supported for PEM format | |
queue.kafka.ssl.key.password | TB_KAFKA_SSL_KEY_PASSWORD | The password of the private key in the key store file or the PEM key specified in ‘keystore.key’ | |
queue.kafka.acks | TB_KAFKA_ACKS | all | The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent. The following settings are allowed:0,1 and all |
queue.kafka.retries | TB_KAFKA_RETRIES | 1 | Number of retries. Resend any record whose send fails with a potentially transient error |
queue.kafka.compression.type | TB_KAFKA_COMPRESSION_TYPE | none | none or gzip |
queue.kafka.batch.size | TB_KAFKA_BATCH_SIZE | 16384 | Default batch size. This setting gives the upper bound of the batch size to be sent |
queue.kafka.linger.ms | TB_KAFKA_LINGER_MS | 1 | This variable creates a small amount of artificial delay—that is, rather than immediately sending out a record |
queue.kafka.max.request.size | TB_KAFKA_MAX_REQUEST_SIZE | 1048576 | The maximum size of a request in bytes. This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests |
queue.kafka.max.in.flight.requests.per.connection | TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION | 5 | The maximum number of unacknowledged requests the client will send on a single connection before blocking |
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 | The multiple copies of data over the multiple brokers of Kafka |
queue.kafka.max_poll_interval_ms | TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS | 300000 | The maximum delay between invocations of poll() when using consumer group management. This places an upper bound on the amount of time that the consumer can be idle before fetching more records |
queue.kafka.max_poll_records | TB_QUEUE_KAFKA_MAX_POLL_RECORDS | 8192 | The maximum number of records returned in a single call to poll() |
queue.kafka.max_partition_fetch_bytes | TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES | 16777216 | The maximum amount of data per-partition the server will return. Records are fetched in batches by the consumer |
queue.kafka.fetch_max_bytes | TB_QUEUE_KAFKA_FETCH_MAX_BYTES | 134217728 | The maximum amount of data the server will return. Records are fetched in batches by the consumer |
queue.kafka.request.timeout.ms | TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS | 30000 | (30 seconds) |
queue.kafka.session.timeout.ms | TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS | 10000 | (10 seconds) |
queue.kafka.use_confluent_cloud | TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD | false | Enable/Disable using of Confluent Cloud |
queue.kafka.confluent.ssl.algorithm | TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM | https | The endpoint identification algorithm used by clients to validate server hostname. The default value is https |
queue.kafka.confluent.sasl.mechanism | TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM | PLAIN | The mechanism used to authenticate Schema Registry requests. SASL/PLAIN should only be used with TLS/SSL as a transport layer to ensure that clear passwords are not transmitted on the wire without encryption |
queue.kafka.confluent.sasl.config | TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG | org.apache.kafka.common.security.plain.PlainLoginModule required username=\"CLUSTER_API_KEY\" password=\"CLUSTER_API_SECRET\"; | Using JAAS Configuration for specifying multiple SASL mechanisms on a broker |
queue.kafka.confluent.security.protocol | TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL | SASL_SSL | Protocol used to communicate with brokers. Valid values are: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL |
queue.kafka.consumer-properties-per-topic.tb_ota_package.key | max.poll.records | Key-value properties for Kafka consumer per specific topic, e.g. tb_ota_package is a topic name for ota, tb_rule_engine.sq is a topic name for default SequentialByOriginator queue. Check TB_QUEUE_CORE_OTA_TOPIC and TB_QUEUE_RE_SQ_TOPIC params | |
queue.kafka.consumer-properties-per-topic.tb_ota_package.key.value | TB_QUEUE_KAFKA_OTA_MAX_POLL_RECORDS | 10 | Example of specific consumer properties value per topic |
queue.kafka.other-inline | TB_QUEUE_KAFKA_OTHER_PROPERTIES | In this section you can specify custom parameters (semicolon separated) for Kafka consumer/producer/admin | |
queue.kafka.topic-properties.rule-engine | TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Rule Engine |
queue.kafka.topic-properties.core | TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Core topics |
queue.kafka.topic-properties.transport-api | TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 | Kafka properties for Transport Api topics |
queue.kafka.topic-properties.notifications | TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1 | Kafka properties for Notifications topics |
queue.kafka.topic-properties.js-executor | TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:52428800;retention.bytes:104857600;partitions:100;min.insync.replicas:1 | Kafka properties for JS Executor topics |
queue.kafka.topic-properties.integration-api | TB_QUEUE_KAFKA_INTEGRATION_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 | Kafka properties for Integration Api topics |
queue.kafka.topic-properties.housekeeper | TB_QUEUE_KAFKA_HOUSEKEEPER_TOPIC_PROPERTIES | retention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:10;min.insync.replicas:1 | Kafka properties for Housekeeper tasks topic |
queue.kafka.consumer-stats.enabled | TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED | true | Prints lag between consumer group offset and last messages offset in Kafka topics |
queue.kafka.consumer-stats.print-interval-ms | TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Kafka's consumer-groups stats |
queue.kafka.consumer-stats.kafka-response-timeout-ms | TB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS | 1000 | Time to wait for the stats-loading requests to Kafka to finis |
queue.partitions.hash_function_name | TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME | murmur3_128 | murmur3_32, murmur3_128 or sha256 |
queue.transport_api.requests_topic | TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC | tb_transport.api.requests | Topic used to consume api requests from transport microservices |
queue.transport_api.responses_topic | TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC | tb_transport.api.responses | Topic used to produce api responses to transport microservices |
queue.transport_api.max_pending_requests | TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS | 10000 | Maximum pending api requests from transport microservices to be handled by server |
queue.transport_api.max_requests_timeout | TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT | 10000 | Maximum timeout in milliseconds to handle api request from transport microservice by server |
queue.transport_api.max_callback_threads | TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS | 100 | Amount of threads used to invoke callbacks |
queue.transport_api.request_poll_interval | TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll api requests from transport microservices |
queue.transport_api.response_poll_interval | TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll api response from transport microservices |
queue.core.topic | TB_QUEUE_CORE_TOPIC | tb_core | Default topic name |
queue.core.notifications_topic | TB_QUEUE_CORE_NOTIFICATIONS_TOPIC | tb_core.notifications | For high-priority notifications that require minimum latency and processing time |
queue.core.poll-interval | TB_QUEUE_CORE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Core microservices |
queue.core.partitions | TB_QUEUE_CORE_PARTITIONS | 10 | Amount of partitions used by Core microservices |
queue.core.pack-processing-timeout | TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS | 2000 | Timeout for processing a message pack by Core microservices |
queue.core.ota.topic | TB_QUEUE_CORE_OTA_TOPIC | tb_ota_package | Default topic name for OTA updates |
queue.core.ota.pack-interval-ms | TB_QUEUE_CORE_OTA_PACK_INTERVAL_MS | 60000 | The interval of processing the OTA updates for devices. Used to avoid any harm to the network due to many parallel OTA updates |
queue.core.ota.pack-size | TB_QUEUE_CORE_OTA_PACK_SIZE | 100 | The size of OTA updates notifications fetched from the queue. The queue stores pairs of firmware and device ids |
queue.core.usage-stats-topic | TB_QUEUE_US_TOPIC | tb_usage_stats | Stats topic name |
queue.core.stats.enabled | TB_QUEUE_CORE_STATS_ENABLED | true | Enable/disable statistics for Core microservices |
queue.core.stats.print-interval-ms | TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Core microservices |
queue.core.housekeeper.topic | TB_HOUSEKEEPER_TOPIC | tb_housekeeper | Topic name for Housekeeper tasks |
queue.js.request_topic | REMOTE_JS_EVAL_REQUEST_TOPIC | js_eval.requests | JS Eval request topic |
queue.js.response_topic_prefix | REMOTE_JS_EVAL_RESPONSE_TOPIC | js_eval.responses | JS Eval responses topic prefix that is combined with node id |
queue.js.max_pending_requests | REMOTE_JS_MAX_PENDING_REQUESTS | 10000 | JS Eval max pending requests |
queue.js.max_eval_requests_timeout | REMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT | 60000 | JS Eval max request timeout |
queue.js.max_requests_timeout | REMOTE_JS_MAX_REQUEST_TIMEOUT | 10000 | JS max request timeout |
queue.js.response_poll_interval | REMOTE_JS_RESPONSE_POLL_INTERVAL_MS | 25 | JS response poll interval |
queue.rule-engine.topic | TB_QUEUE_RULE_ENGINE_TOPIC | tb_rule_engine | Deprecated. It will be removed in the nearest releases |
queue.rule-engine.notifications_topic | TB_QUEUE_RULE_ENGINE_NOTIFICATIONS_TOPIC | tb_rule_engine.notifications | For high-priority notifications that require minimum latency and processing time |
queue.rule-engine.poll-interval | TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by Rule Engine |
queue.rule-engine.pack-processing-timeout | TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS | 2000 | Timeout for processing a message pack of Rule Engine |
queue.rule-engine.stats.enabled | TB_QUEUE_RULE_ENGINE_STATS_ENABLED | true | Enable/disable statistics for Rule Engine |
queue.rule-engine.stats.print-interval-ms | TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS | 60000 | Statistics printing interval for Rule Engine |
queue.rule-engine.queues.name | TB_QUEUE_RE_SQ_QUEUE_NAME | SequentialByOriginator | queue name |
queue.rule-engine.queues.name.topic | TB_QUEUE_RE_SQ_TOPIC | tb_rule_engine.sq | queue topic |
queue.rule-engine.queues.name.poll-interval | TB_QUEUE_RE_SQ_POLL_INTERVAL_MS | 25 | poll interval |
queue.rule-engine.queues.name.partitions | TB_QUEUE_RE_SQ_PARTITIONS | 10 | number queue partitions |
queue.rule-engine.queues.name.consumer-per-partition | TB_QUEUE_RE_SQ_CONSUMER_PER_PARTITION | true | if true - use for each customer different partition |
queue.rule-engine.queues.name.pack-processing-timeout | TB_QUEUE_RE_SQ_PACK_PROCESSING_TIMEOUT_MS | 2000 | Timeout for processing a message pack |
queue.rule-engine.queues.name.submit-strategy.type | TB_QUEUE_RE_SQ_SUBMIT_STRATEGY_TYPE | SEQUENTIAL_BY_ORIGINATOR | BURST, BATCH, SEQUENTIAL_BY_ORIGINATOR, SEQUENTIAL_BY_TENANT, SEQUENTIAL |
queue.rule-engine.queues.name.submit-strategy.batch-size | TB_QUEUE_RE_SQ_SUBMIT_STRATEGY_BATCH_SIZE | 100 | Maximum number of messages in batch |
queue.rule-engine.queues.name.processing-strategy.type | TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_TYPE | RETRY_FAILED_AND_TIMED_OUT | SKIP_ALL_FAILURES, SKIP_ALL_FAILURES_AND_TIMED_OUT, RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT |
queue.rule-engine.queues.name.processing-strategy.retries | TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_RETRIES | 3 | Number of retries, 0 is unlimited |
queue.rule-engine.queues.name.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.name.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.rule-engine.queues.name.processing-strategy.max-pause-between-retries | TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_MAX_RETRY_PAUSE | 5 | Max allowed time in seconds for pause between retries. |
queue.integration.partitions | TB_QUEUE_INTEGRATION_PARTITIONS | 3 | Name of hash function used for consistent hash ring in Cluster Mode. See architecture docs for more details. Valid values - murmur3_32, murmur3_128 or sha256 |
queue.integration.notifications_topic | TB_QUEUE_INTEGRATION_NOTIFICATIONS_TOPIC | tb_integration_executor.notifications | For high-priority notifications that require minimum latency and processing time |
queue.integration.downlink_topic | TB_QUEUE_INTEGRATION_DOWNLINK_TOPIC | tb_ie.downlink | Default downlink topic name used by queue |
queue.integration.downlink_topics | TB_QUEUE_INTEGRATION_DOWNLINK_TOPICS | Downlink topic names for integration type (semicolor separated). Example: "MQTT:tb_ie.downlink.mqtt,HTTP:tb_ie.downlink.http" If not specified, the default topic will construct as before - 'downlink_topic' + IntegrationType.name() | |
queue.integration.uplink_topic | TB_QUEUE_INTEGRATION_UPLINK_TOPIC | tb_ie.uplink | Default uplink topic name used by queue |
queue.integration.poll_interval | TB_QUEUE_INTEGRATION_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll messages by integrations |
queue.integration.pack-processing-timeout | TB_QUEUE_INTEGRATION_PACK_PROCESSING_TIMEOUT_MS | 10000 | Timeout for processing a message pack by integrations |
queue.integration_api.requests_topic | TB_QUEUE_INTEGRATION_EXECUTOR_API_REQUEST_TOPIC | tb_ie.api.requests | Default Integration Api request topic name used by queue |
queue.integration_api.responses_topic | TB_QUEUE_INTEGRATION_EXECUTOR_API_RESPONSE_TOPIC | tb_ie.api.responses | Default Integration Api response topic name used by queue |
queue.integration_api.max_pending_requests | TB_QUEUE_INTEGRATION_EXECUTOR_MAX_PENDING_REQUESTS | 10000 | Maximum pending api requests from integration executor to be handled by server< |
queue.integration_api.max_requests_timeout | TB_QUEUE_INTEGRATION_EXECUTOR_MAX_REQUEST_TIMEOUT | 10000 | Maximum timeout in milliseconds to handle api request from integration executor microservice by server |
queue.integration_api.max_callback_threads | TB_QUEUE_INTEGRATION_EXECUTOR_MAX_CALLBACK_THREADS | 10 | Amount of threads used to invoke callbacks |
queue.integration_api.request_poll_interval | TB_QUEUE_INTEGRATION_EXECUTOR_REQUEST_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll api requests from integration executor microservices |
queue.integration_api.response_poll_interval | TB_QUEUE_INTEGRATION_EXECUTOR_RESPONSE_POLL_INTERVAL_MS | 25 | Interval in milliseconds to poll api response from integration executor microservices |
Tbel parameters
Parameter | Environment Variable | Default Value | Description |
tbel.enabled | TBEL_ENABLED | true | Enable/Disable TBEL feature. |
tbel.max_total_args_size | TBEL_MAX_TOTAL_ARGS_SIZE | 100000 | Limit the number of arguments that are passed to the function to execute the script |
tbel.max_result_size | TBEL_MAX_RESULT_SIZE | 300000 | Maximum allowed symbols in a result after processing a script |
tbel.max_script_body_size | TBEL_MAX_SCRIPT_BODY_SIZE | 50000 | Maximum allowed symbols in the script body |
tbel.max_memory_limit_mb | TBEL_MAX_MEMORY_LIMIT_MB | 8 | Maximum allowed TBEL script execution memory |
tbel.max_errors | TBEL_MAX_ERRORS | 3 | Maximum allowed TBEL script execution errors before it will be blacklisted |
tbel.max_requests_timeout | TBEL_MAX_REQUEST_TIMEOUT | 500 | TBEL Eval max request timeout in milliseconds. 0 - no timeout |
tbel.max_black_list_duration_sec | TBEL_MAX_BLACKLIST_DURATION_SEC | 60 | Maximum time in seconds for black listed function to stay in the list. |
tbel.thread_pool_size | TBEL_THREAD_POOL_SIZE | 50 | Specify thread pool size for javascript executor service |
tbel.stats.enabled | TB_TBEL_STATS_ENABLED | false | Enable/Disable stats collection for TBEL engine |
tbel.stats.print_interval_ms | TB_TBEL_STATS_PRINT_INTERVAL_MS | 10000 | Interval of logging for TBEL stats |
JS parameters
Parameter | Environment Variable | Default Value | Description |
js.evaluator | JS_EVALUATOR | local | local/remote |
js.local.js_thread_pool_size | LOCAL_JS_THREAD_POOL_SIZE | 50 | Specify thread pool size for javascript executor service |
js.local.use_js_sandbox | USE_LOCAL_JS_SANDBOX | true | Use Sandboxed (secured) JVM JavaScript environment |
js.local.monitor_thread_pool_size | LOCAL_JS_SANDBOX_MONITOR_THREAD_POOL_SIZE | 4 | Specify thread pool size for JavaScript sandbox resource monitor |
js.local.max_cpu_time | LOCAL_JS_SANDBOX_MAX_CPU_TIME | 8000 | Maximum CPU time in milliseconds allowed for script execution |
js.local.max_errors | LOCAL_JS_SANDBOX_MAX_ERRORS | 3 | Maximum allowed JavaScript execution errors before JavaScript will be blacklisted |
js.local.max_requests_timeout | LOCAL_JS_MAX_REQUEST_TIMEOUT | 0 | JS Eval max request timeout. 0 - no timeout |
js.local.max_black_list_duration_sec | LOCAL_JS_SANDBOX_MAX_BLACKLIST_DURATION_SEC | 60 | Maximum time in seconds for black listed function to stay in the list. |
js.local.stats.enabled | TB_JS_LOCAL_STATS_ENABLED | false | Enable/Disable stats collection for local JS executor |
js.local.stats.print_interval_ms | TB_JS_LOCAL_STATS_PRINT_INTERVAL_MS | 10000 | Interval of logging for local JS executor stats |
js.remote.js_thread_pool_size | REMOTE_JS_THREAD_POOL_SIZE | 50 | Specify thread pool size for javascript executor service |
js.remote.max_errors | REMOTE_JS_SANDBOX_MAX_ERRORS | 3 | Maximum allowed JavaScript execution errors before JavaScript will be blacklisted |
js.remote.max_black_list_duration_sec | REMOTE_JS_SANDBOX_MAX_BLACKLIST_DURATION_SEC | 60 | Maximum time in seconds for black listed function to stay in the list. |
js.remote.stats.enabled | TB_JS_REMOTE_STATS_ENABLED | false | Enable/Disable stats collection for remote JS executor |
js.remote.stats.print_interval_ms | TB_JS_REMOTE_STATS_PRINT_INTERVAL_MS | 10000 | Interval of logging for remote JS executor stats |
Cache parameters
Parameter | Environment Variable | Default Value | Description |
cache.type | CACHE_TYPE | redis | caffeine or redis |
cache.maximumPoolSize | CACHE_MAXIMUM_POOL_SIZE | 16 | max pool size to process futures that calls the external cache |
cache.specs.devices.timeToLiveInMinutes | CACHE_SPECS_DEVICES_TTL | 1440 | Device cache TTL |
cache.specs.devices.maxSize | CACHE_SPECS_DEVICES_MAX_SIZE | 10000 | 0 means the cache is disabled |
cache.specs.downlink.timeToLiveInMinutes | CACHE_SPECS_DOWNLINK_TTL | 1440 | Downlink converter cache specs TTL |
cache.specs.downlink.maxSize | CACHE_SPECS_DOWNLINK_MAX_SIZE | 100000 | 0 means the cache is disabled |
cache.specs.integrations.timeToLiveInMinutes | CACHE_SPECS_INTEGRATIONS_TTL | 1440 | integrations cache specs TTL |
cache.specs.integrations.maxSize | CACHE_SPECS_INTEGRATIONS_MAX_SIZE | 10000 | 0 means the cache is disabled |
cache.rateLimits.timeToLiveInMinutes | CACHE_SPECS_RATE_LIMITS_TTL | 60 | Rate limits cache TTL |
cache.rateLimits.maxSize | CACHE_SPECS_RATE_LIMITS_MAX_SIZE | 100000 | 0 means the cache is disabled |
Redis configuration parameters
Parameter | Environment Variable | Default Value | Description |
redis.connection.type | REDIS_CONNECTION_TYPE | standalone | Redis deployment type: Standalone (single Redis node deployment) OR Cluster |
redis.standalone.host | REDIS_HOST | localhost | Redis connection host |
redis.standalone.port | REDIS_PORT | 6379 | Redis connection port |
redis.standalone.useDefaultClientConfig | REDIS_USE_DEFAULT_CLIENT_CONFIG | true | Use the default Redis configuration file |
redis.standalone.clientName | REDIS_CLIENT_NAME | standalone | This value may be used only if you used not default ClientConfig |
redis.standalone.connectTimeout | REDIS_CLIENT_CONNECT_TIMEOUT | 30000 | This value may be used only if you used not default ClientConfig |
redis.standalone.readTimeout | REDIS_CLIENT_READ_TIMEOUT | 60000 | This value may be used only if you used not default ClientConfig |
redis.standalone.usePoolConfig | REDIS_CLIENT_USE_POOL_CONFIG | false | This value may be used only if you used not default ClientConfig |
redis.cluster.nodes | REDIS_NODES | Comma-separated list of "host:port" pairs to bootstrap from. | |
redis.cluster.max-redirects | REDIS_MAX_REDIRECTS | 12 | Maximum number of redirects to follow when executing commands across the cluster. |
redis.cluster.useDefaultPoolConfig | REDIS_USE_DEFAULT_POOL_CONFIG | true | if set false will be used pool config build from values of the pool config section |
redis.sentinel.master | REDIS_MASTER | name of the master node | |
redis.sentinel.sentinels | REDIS_SENTINELS | comma-separated list of "host:port" pairs of sentinels | |
redis.sentinel.password | REDIS_SENTINEL_PASSWORD | password to authenticate with sentinel | |
redis.sentinel.useDefaultPoolConfig | REDIS_USE_DEFAULT_POOL_CONFIG | true | if set false will be used pool config build from values of the pool config section |
redis.db | REDIS_DB | 0 | db index |
redis.password | REDIS_PASSWORD | db password | |
redis.ssl.enabled | TB_REDIS_SSL_ENABLED | false | Enable/disable secure connection |
redis.ssl.credentials.cert_file | TB_REDIS_SSL_PEM_CERT | Path redis server (CA) certificate | |
redis.ssl.credentials.user_cert_file | TB_REDIS_SSL_PEM_KEY | Path to user certificate file. This is optional for the client and can be used for two-way authentication for the client | |
redis.ssl.credentials.user_key_file | TB_REDIS_SSL_PEM_KEY_PASSWORD | Path to user private key file. This is optional for the client and only needed if ‘user_cert_file’ is configured. | |
redis.pool_config.maxTotal | REDIS_POOL_CONFIG_MAX_TOTAL | 128 | Maximum number of connections that can be allocated by the connection pool |
redis.pool_config.maxIdle | REDIS_POOL_CONFIG_MAX_IDLE | 128 | Maximum number of idle connections that can be maintained in the pool without being closed |
redis.pool_config.minIdle | REDIS_POOL_CONFIG_MIN_IDLE | 16 | Minumum number of idle connections that can be maintained in the pool without being closed |
redis.pool_config.testOnBorrow | REDIS_POOL_CONFIG_TEST_ON_BORROW | true | Enable/Disable PING command sent when a connection is borrowed |
redis.pool_config.testOnReturn | REDIS_POOL_CONFIG_TEST_ON_RETURN | true | The property is used to specify whether to test the connection before returning it to the connection pool. |
redis.pool_config.testWhileIdle | REDIS_POOL_CONFIG_TEST_WHILE_IDLE | true | The property is used in the context of connection pooling in Redis |
redis.pool_config.minEvictableMs | REDIS_POOL_CONFIG_MIN_EVICTABLE_MS | 60000 | Minimum time that an idle connection should be idle before it can be evicted from the connection pool. The value is set in milliseconds |
redis.pool_config.evictionRunsMs | REDIS_POOL_CONFIG_EVICTION_RUNS_MS | 30000 | Specifies the time interval in milliseconds between two consecutive eviction runs |
redis.pool_config.maxWaitMills | REDIS_POOL_CONFIG_MAX_WAIT_MS | 60000 | Maximum time in milliseconds where a client is willing to wait for a connection from the pool when all connections are exhausted |
redis.pool_config.numberTestsPerEvictionRun | REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN | 3 | Specifies the number of connections to test for eviction during each eviction run |
redis.pool_config.blockWhenExhausted | REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED | true | Determines the behavior when a thread requests a connection from the pool, but there are no available connections, and the pool cannot create more due to the maxTotal configuration |
CoAP server parameters
Parameter | Environment Variable | Default Value | Description |
coap.server.enabled | COAP_ENABLED | true | Enable/disable coap server. |
coap.bind_address | COAP_BIND_ADDRESS | 0.0.0.0 | CoAP bind address |
coap.bind_port | COAP_BIND_PORT | 5683 | CoAP bind port |
coap.dtls.enabled | COAP_DTLS_ENABLED | false | Enable/disable DTLS 1.2 support |
coap.dtls.retransmission_timeout | COAP_DTLS_RETRANSMISSION_TIMEOUT_IN_MILLISECONDS | 9000 | RFC7925_RETRANSMISSION_TIMEOUT_IN_MILLISECONDS = 9000 |
coap.dtls.bind_address | COAP_DTLS_BIND_ADDRESS | 0.0.0.0 | CoAP DTLS bind address |
coap.dtls.bind_port | COAP_DTLS_BIND_PORT | 5684 | CoAP DTLS bind port |
coap.dtls.connection_id_length | COAP_DTLS_CONNECTION_ID_LENGTH | CoAP DTLS connection ID length. RFC 9146, Connection Identifier for DTLS 1.2 | |
coap.dtls.max_transmission_unit | COAP_DTLS_MAX_TRANSMISSION_UNIT | 1024 | Specify the MTU (Maximum Transmission Unit). Should be used if LAN MTU is not used, e.g. if IP tunnels are used or if the client uses a smaller value than the LAN MTU. Default = 1024 Minimum value = 64 If set to 0 - LAN MTU is used. |
coap.dtls.max_fragment_length | COAP_DTLS_MAX_FRAGMENT_LENGTH | 1024 | DTLS maximum fragment length (RFC 6066, Section 4). Default = 1024 Possible values: 512, 1024, 2048, 4096. If set to 0, the default maximum fragment size of 2^14 bytes (16,384 bytes) is used. Without this extension, TLS specifies a fixed maximum plaintext fragment length of 2^14 bytes. It may be desirable for constrained clients to negotiate a smaller maximum fragment length due to memory limitations or bandwidth limitations. In order to negotiate smaller maximum fragment lengths, clients MAY include an extension of type "max_fragment_length" in the (extended) client hello. The "extension_data" field of this extension SHALL contain: enum { 2^9(1) == 512, 2^10(2) == 1024, 2^11(3) == 2048, 2^12(4) == 4096, (255) } MaxFragmentLength; TLS already requires clients and servers to support fragmentation of handshake messages. |
coap.dtls.credentials.type | COAP_DTLS_CREDENTIALS_TYPE | PEM | Server credentials type (PEM - pem certificate file; KEYSTORE - java keystore) |
coap.dtls.credentials.pem.cert_file | COAP_DTLS_PEM_CERT | coapserver.pem | Path to the server certificate file (holds server certificate or certificate chain, may include server private key) |
coap.dtls.credentials.pem.key_file | COAP_DTLS_PEM_KEY | coapserver_key.pem | Path to the server certificate private key file. Optional by default. Required if the private key is not present in server certificate file; |
coap.dtls.credentials.pem.key_password | COAP_DTLS_PEM_KEY_PASSWORD | server_key_password | Server certificate private key password (optional) |
coap.dtls.credentials.keystore.type | COAP_DTLS_KEY_STORE_TYPE | JKS | Type of the key store (JKS or PKCS12) |
coap.dtls.credentials.keystore.store_file | COAP_DTLS_KEY_STORE | coapserver.jks | Path to the key store that holds the SSL certificate |
coap.dtls.credentials.keystore.store_password | COAP_DTLS_KEY_STORE_PASSWORD | server_ks_password | Password used to access the key store |
coap.dtls.credentials.keystore.key_alias | COAP_DTLS_KEY_ALIAS | serveralias | Key alias |
coap.dtls.credentials.keystore.key_password | COAP_DTLS_KEY_PASSWORD | server_key_password | Password used to access the key |
coap.dtls.x509.skip_validity_check_for_client_cert | TB_COAP_X509_DTLS_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT | false | Skip certificate validity check for client certificates. |
coap.dtls.x509.dtls_session_inactivity_timeout | TB_COAP_X509_DTLS_SESSION_INACTIVITY_TIMEOUT | 86400000 | Inactivity timeout of DTLS session. Used to cleanup cache |
coap.dtls.x509.dtls_session_report_timeout | TB_COAP_X509_DTLS_SESSION_REPORT_TIMEOUT | 1800000 | Interval of periodic eviction of the timed-out DTLS sessions |
Event parameters
Parameter | Environment Variable | Default Value | Description |
event.debug.rate_limits.enabled | DEBUG_MODE_RATE_LIMITS_PER_TENANT_ENABLED | true | If true rate limits will be active |
event.debug.rate_limits.integration | INTEGRATION_DEBUG_MODE_RATE_LIMITS_PER_TENANT | 50000:3600 | No more than 50000 messages per hour |
event.debug.rate_limits.converter | CONVERTER_DEBUG_MODE_RATE_LIMITS_PER_TENANT | 50000:3600 | No more than 50000 messages per hour |
service.type | TB_SERVICE_TYPE | tb-integration-executor | service type |
service.id | TB_SERVICE_ID | Unique id for this service (autogenerated if empty) | |
service.integrations.supported | TB_SERVICE_INTEGRATIONS_SUPPORTED | ALL | Allow to enable integration on service/microservice integration executor. Allowed values: OCEANCONNECT, SIGFOX, THINGPARK, TPE, CHIRPSTACK, TUYA, UDP, TCP, TTN, TTI, AZURE_EVENT_HUB, OPC_UA, IBM_WATSON_IOT, AWS_IOT, AWS_SQS, LORIOT, COAP, AZURE_SERVICE_BUS, HTTP, MQTT or ALL to allow all |
service.integrations.excluded | TB_SERVICE_INTEGRATIONS_EXCLUDED | NONE | List of integrations to exclude from processing on service/microservice integration executor. Allowed values: OCEANCONNECT, SIGFOX, THINGPARK, TPE, CHIRPSTACK, TUYA, UDP, TCP, TTN, TTI, AZURE_EVENT_HUB, OPC_UA, IBM_WATSON_IOT, AWS_IOT, AWS_SQS, LORIOT, COAP, AZURE_SERVICE_BUS, HTTP, MQTT. By default NONE |
Usage statistics parameters
Parameter | Environment Variable | Default Value | Description |
usage.stats.report.enabled | USAGE_STATS_REPORT_ENABLED | true | Enable/Disable the collection of statistics about API usage. Collected on a system and tenant level by default |
usage.stats.report.enabled_per_customer | USAGE_STATS_REPORT_PER_CUSTOMER_ENABLED | false | Enable/Disable collection of statistics about API usage on a customer level |
usage.stats.report.interval | USAGE_STATS_REPORT_INTERVAL | 60 | Interval of reporting the statistics. By default, the summarized statistics are sent every 10 seconds |
usage.stats.report.pack_size | USAGE_STATS_REPORT_PACK_SIZE | 1024 | Amount of statistic messages in pack |
Metrics parameters
Parameter | Environment Variable | Default Value | Description |
metrics.enabled | METRICS_ENABLED | false | Enable/disable actuator metrics. |
metrics.timer.percentiles | METRICS_TIMER_PERCENTILES | 0.5 | Metrics percentiles returned by actuator for timer metrics. List of double values (divided by ,). |
General management parameters
Parameter | Environment Variable | Default Value | Description |
management.endpoints.web.exposure.include | '${METRICS_ENDPOINTS_EXPOSE:info}' | Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics). |
Notification system parameters
Parameter | Environment Variable | Default Value | Description |
notification_system.rules.deduplication_durations | TB_NOTIFICATION_RULES_DEDUPLICATION_DURATIONS | RATE_LIMITS:14400000; | Semicolon-separated deduplication durations (in millis) for trigger types. Format: 'NotificationRuleTriggerType1:123;NotificationRuleTriggerType2:456' |