Skip to content
Stand with Ukraine flag

Rule Engine Configuration

All parameters listed here correspond to settings in tb-edge.yml (or tb-edge.conf on Linux). Set them as environment variables in /etc/tb-edge/conf/tb-edge.conf (Linux) or as container environment variables (Docker / Kubernetes). For instructions on applying changes, see How to change configuration.

ParameterEnv variableDefaultDescription
actors.system.throughputACTORS_SYSTEM_THROUGHPUT5Number of messages the actor system will process per actor before switching to processing of messages for the next actor
actors.system.scheduler_pool_sizeACTORS_SYSTEM_SCHEDULER_POOL_SIZE1Thread pool size for actor system scheduler
actors.system.max_actor_init_attemptsACTORS_SYSTEM_MAX_ACTOR_INIT_ATTEMPTS10Maximum number of attempts to init the actor before disabling the actor
actors.system.app_dispatcher_pool_sizeACTORS_SYSTEM_APP_DISPATCHER_POOL_SIZE1Thread pool size for main actor system dispatcher
actors.system.tenant_dispatcher_pool_sizeACTORS_SYSTEM_TENANT_DISPATCHER_POOL_SIZE2Thread pool size for actor system dispatcher that process messages for tenant actors
actors.system.device_dispatcher_pool_sizeACTORS_SYSTEM_DEVICE_DISPATCHER_POOL_SIZE4Thread pool size for actor system dispatcher that process messages for device actors
actors.system.rule_dispatcher_pool_sizeACTORS_SYSTEM_RULE_DISPATCHER_POOL_SIZE8Thread pool size for actor system dispatcher that process messages for rule engine (chain/node) actors
actors.system.edge_dispatcher_pool_sizeACTORS_SYSTEM_EDGE_DISPATCHER_POOL_SIZE4Thread pool size for actor system dispatcher that process messages for edge actors
actors.tenant.create_components_on_initACTORS_TENANT_CREATE_COMPONENTS_ON_INITtrueCreate components in initialization
actors.session.max_concurrent_sessions_per_deviceACTORS_MAX_CONCURRENT_SESSION_PER_DEVICE1Max number of concurrent sessions per device
actors.session.sync.timeoutACTORS_SESSION_SYNC_TIMEOUT10000Default timeout for processing requests using synchronous session (HTTP, CoAP) in milliseconds
actors.rule.db_callback_thread_pool_sizeACTORS_RULE_DB_CALLBACK_THREAD_POOL_SIZE50Specify thread pool size for database request callbacks executor service
actors.rule.mail_thread_pool_sizeACTORS_RULE_MAIL_THREAD_POOL_SIZE40Specify thread pool size for mail sender executor service
actors.rule.mail_password_reset_thread_pool_sizeACTORS_RULE_MAIL_PASSWORD_RESET_THREAD_POOL_SIZE10Specify thread pool size for password reset emails
actors.rule.sms_thread_pool_sizeACTORS_RULE_SMS_THREAD_POOL_SIZE50Specify thread pool size for sms sender executor service
actors.rule.allow_system_mail_serviceACTORS_RULE_ALLOW_SYSTEM_MAIL_SERVICEtrueWhether to allow usage of system mail service for rules
actors.rule.allow_system_sms_serviceACTORS_RULE_ALLOW_SYSTEM_SMS_SERVICEtrueWhether to allow usage of system sms service for rules
actors.rule.external_call_thread_pool_sizeACTORS_RULE_EXTERNAL_CALL_THREAD_POOL_SIZE50Specify thread pool size for external call service
actors.rule.chain.error_persist_frequencyACTORS_RULE_CHAIN_ERROR_FREQUENCY3000Errors for particular actors are persisted once per specified amount of milliseconds
actors.rule.chain.debug_mode_rate_limits_per_tenant.enabledACTORS_RULE_CHAIN_DEBUG_MODE_RATE_LIMITS_PER_TENANT_ENABLEDtrueEnable/Disable the rate limit of persisted debug events for all rule nodes per tenant
actors.rule.chain.debug_mode_rate_limits_per_tenant.configurationACTORS_RULE_CHAIN_DEBUG_MODE_RATE_LIMITS_PER_TENANT_CONFIGURATION50000:3600The value of DEBUG mode rate limit. By default, no more then 50 thousand events per hour
actors.rule.node.error_persist_frequencyACTORS_RULE_NODE_ERROR_FREQUENCY3000Errors for particular actor are persisted once per specified amount of milliseconds
actors.rule.transaction.queue_sizeACTORS_RULE_TRANSACTION_QUEUE_SIZE15000Size of queues that store messages for transaction rule nodes
actors.rule.transaction.durationACTORS_RULE_TRANSACTION_DURATION60000Time in milliseconds for transaction to complete
actors.rule.external.force_ackACTORS_RULE_EXTERNAL_NODE_FORCE_ACKfalseForce acknowledgment of the incoming message for external rule nodes to decrease processing latency. Enqueue the result of external node processing as a separate message to the rule engine.
actors.rpc.max_retriesACTORS_RPC_MAX_RETRIES5Maximum number of persistent RPC call retries in case of failed request delivery.
actors.rpc.submit_strategyACTORS_RPC_SUBMIT_STRATEGY_TYPEBURSTRPC submit strategies. Allowed values: BURST, SEQUENTIAL_ON_ACK_FROM_DEVICE, SEQUENTIAL_ON_RESPONSE_FROM_DEVICE.
actors.rpc.response_timeout_msACTORS_RPC_RESPONSE_TIMEOUT_MS30000Time in milliseconds for RPC to receive a response after delivery. Used only for SEQUENTIAL_ON_RESPONSE_FROM_DEVICE submit strategy.
actors.statistics.enabledACTORS_STATISTICS_ENABLEDtrueEnable/disable actor statistics
actors.statistics.js_print_interval_msACTORS_JS_STATISTICS_PRINT_INTERVAL_MS10000Frequency of printing the JS executor statistics
actors.statistics.persist_frequencyACTORS_STATISTICS_PERSIST_FREQUENCY3600000Actors statistic persistence frequency in milliseconds
ParameterEnv variableDefaultDescription
queue.typeTB_QUEUE_TYPEin-memoryin-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ)
queue.prefixTB_QUEUE_PREFIX_(empty)_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.in_memory.stats.print-interval-msTB_QUEUE_IN_MEMORY_STATS_PRINT_INTERVAL_MS60000For debug level
queue.kafka.bootstrap.serversTB_KAFKA_SERVERSlocalhost:9092Kafka Bootstrap nodes in “host:port” format
queue.kafka.ssl.enabledTB_KAFKA_SSL_ENABLEDfalseEnable/Disable SSL Kafka communication
queue.kafka.ssl.truststore.locationTB_KAFKA_SSL_TRUSTSTORE_LOCATION_(empty)_The location of the trust store file
queue.kafka.ssl.truststore.passwordTB_KAFKA_SSL_TRUSTSTORE_PASSWORD_(empty)_The password of trust store file if specified
queue.kafka.ssl.keystore.locationTB_KAFKA_SSL_KEYSTORE_LOCATION_(empty)_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.passwordTB_KAFKA_SSL_KEYSTORE_PASSWORD_(empty)_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.passwordTB_KAFKA_SSL_KEY_PASSWORD_(empty)_The password of the private key in the key store file or the PEM key specified in ‘keystore.key’
queue.kafka.acksTB_KAFKA_ACKSallThe 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.retriesTB_KAFKA_RETRIES1Number of retries. Resend any record whose send fails with a potentially transient error
queue.kafka.compression.typeTB_KAFKA_COMPRESSION_TYPEnonenone or gzip
queue.kafka.batch.sizeTB_KAFKA_BATCH_SIZE16384Default batch size. This setting gives the upper bound of the batch size to be sent
queue.kafka.linger.msTB_KAFKA_LINGER_MS1This variable creates a small amount of artificial delay—that is, rather than immediately sending out a record
queue.kafka.max.request.sizeTB_KAFKA_MAX_REQUEST_SIZE1048576The 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.connectionTB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION5The maximum number of unacknowledged requests the client will send on a single connection before blocking
queue.kafka.buffer.memoryTB_BUFFER_MEMORY33554432The total bytes of memory the producer can use to buffer records waiting to be sent to the server
queue.kafka.replication_factorTB_QUEUE_KAFKA_REPLICATION_FACTOR1The multiple copies of data over the multiple brokers of Kafka
queue.kafka.max_poll_interval_msTB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS300000The maximum delay between invocations of poll() method 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_recordsTB_QUEUE_KAFKA_MAX_POLL_RECORDS8192The maximum number of records returned in a single call of poll() method
queue.kafka.max_partition_fetch_bytesTB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES16777216The maximum amount of data per-partition the server will return. Records are fetched in batches by the consumer
queue.kafka.fetch_max_bytesTB_QUEUE_KAFKA_FETCH_MAX_BYTES134217728The maximum amount of data the server will return. Records are fetched in batches by the consumer
queue.kafka.request.timeout.msTB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS30000(30 seconds)
queue.kafka.session.timeout.msTB_QUEUE_KAFKA_SESSION_TIMEOUT_MS10000(10 seconds)
queue.kafka.auto_offset_resetTB_QUEUE_KAFKA_AUTO_OFFSET_RESETearliestearliest, latest or none
queue.kafka.use_confluent_cloudTB_QUEUE_KAFKA_USE_CONFLUENT_CLOUDfalseEnable/Disable using of Confluent Cloud
queue.kafka.confluent.ssl.algorithmTB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHMhttpsThe endpoint identification algorithm used by clients to validate server hostname. The default value is https
queue.kafka.confluent.sasl.mechanismTB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISMPLAINThe 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.configTB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIGorg.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.protocolTB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOLSASL_SSLProtocol used to communicate with brokers. Valid values are: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL
queue.kafka.consumer-properties-per-topic.tb_ota_package.key_(none)_max.poll.recordsKey-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.valueTB_QUEUE_KAFKA_OTA_MAX_POLL_RECORDS10Example of specific consumer properties value per topic
queue.kafka.consumer-properties-per-topic.tb_version_control.key_(none)_max.poll.interval.msExample of specific consumer properties value per topic for VC
queue.kafka.consumer-properties-per-topic.tb_version_control.key.valueTB_QUEUE_KAFKA_VC_MAX_POLL_INTERVAL_MS600000Example of specific consumer properties value per topic for VC
queue.kafka.consumer-properties-per-topic.tb_housekeeper.key_(none)_max.poll.recordsConsumer properties for Housekeeper tasks topic
queue.kafka.consumer-properties-per-topic.tb_housekeeper.key.valueTB_QUEUE_KAFKA_HOUSEKEEPER_MAX_POLL_RECORDS1Amount of records to be returned in a single poll. For Housekeeper tasks topic, we should consume messages (tasks) one by one
queue.kafka.consumer-properties-per-topic.tb_housekeeper.reprocessing.key_(none)_max.poll.recordsConsumer properties for Housekeeper reprocessing topic
queue.kafka.consumer-properties-per-topic.tb_housekeeper.reprocessing.key.valueTB_QUEUE_KAFKA_HOUSEKEEPER_REPROCESSING_MAX_POLL_RECORDS1Amount of records to be returned in a single poll. For Housekeeper reprocessing topic, we should consume messages (tasks) one by one
queue.kafka.other-inlineTB_QUEUE_KAFKA_OTHER_PROPERTIES_(empty)_In this section you can specify custom parameters (semicolon separated) for Kafka consumer/producer/admin
queue.kafka.topic-properties.rule-engineTB_QUEUE_KAFKA_RE_TOPIC_PROPERTIESretention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1Kafka properties for Rule Engine
queue.kafka.topic-properties.coreTB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIESretention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1Kafka properties for Core topics
queue.kafka.topic-properties.transport-apiTB_QUEUE_KAFKA_TA_TOPIC_PROPERTIESretention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:10;min.insync.replicas:1Kafka properties for Transport Api topics
queue.kafka.topic-properties.notificationsTB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIESretention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1Kafka properties for Notifications topics
queue.kafka.topic-properties.js-executorTB_QUEUE_KAFKA_JE_TOPIC_PROPERTIESretention.ms:604800000;segment.bytes:52428800;retention.bytes:104857600;partitions:100;min.insync.replicas:1Kafka properties for JS Executor topics
queue.kafka.topic-properties.ota-updatesTB_QUEUE_KAFKA_OTA_TOPIC_PROPERTIESretention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:10;min.insync.replicas:1Kafka properties for OTA updates topic
queue.kafka.topic-properties.version-controlTB_QUEUE_KAFKA_VC_TOPIC_PROPERTIESretention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1Kafka properties for Version Control topic
queue.kafka.topic-properties.housekeeperTB_QUEUE_KAFKA_HOUSEKEEPER_TOPIC_PROPERTIESretention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:10;min.insync.replicas:1Kafka properties for Housekeeper tasks topic
queue.kafka.topic-properties.housekeeper-reprocessingTB_QUEUE_KAFKA_HOUSEKEEPER_REPROCESSING_TOPIC_PROPERTIESretention.ms:7776000000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1Kafka properties for Housekeeper reprocessing topic; retention.ms is set to 90 days; partitions is set to 1 since only one reprocessing service is running at a time
queue.kafka.topic-properties.edgeTB_QUEUE_KAFKA_EDGE_TOPIC_PROPERTIESretention.ms:604800000;segment.bytes:52428800;retention.bytes:1048576000;partitions:1;min.insync.replicas:1Kafka properties for Edge topic
queue.kafka.consumer-stats.enabledTB_QUEUE_KAFKA_CONSUMER_STATS_ENABLEDtruePrints lag between consumer group offset and last messages offset in Kafka topics
queue.kafka.consumer-stats.print-interval-msTB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS60000Statistics printing interval for Kafka’s consumer-groups stats
queue.kafka.consumer-stats.kafka-response-timeout-msTB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS1000Time to wait for the stats-loading requests to Kafka to finish
queue.aws_sqs.use_default_credential_provider_chainTB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAINfalseUse the default credentials provider for AWS SQS
queue.aws_sqs.access_key_idTB_QUEUE_AWS_SQS_ACCESS_KEY_IDYOUR_KEYAccess key ID from AWS IAM user
queue.aws_sqs.secret_access_keyTB_QUEUE_AWS_SQS_SECRET_ACCESS_KEYYOUR_SECRETSecret access key from AWS IAM user
queue.aws_sqs.regionTB_QUEUE_AWS_SQS_REGIONYOUR_REGIONRegion from AWS account
queue.aws_sqs.threads_per_topicTB_QUEUE_AWS_SQS_THREADS_PER_TOPIC1Number of threads per each AWS SQS queue in consumer
queue.aws_sqs.producer_thread_pool_sizeTB_QUEUE_AWS_SQS_EXECUTOR_THREAD_POOL_SIZE50Thread pool size for aws_sqs queue producer executor provider. Default value equals to AmazonSQSAsyncClient.DEFAULT_THREAD_POOL_SIZE
queue.aws_sqs.queue-properties.rule-engineTB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIESVisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.coreTB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIESVisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.transport-apiTB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIESVisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.notificationsTB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIESVisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.js-executorTB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIESVisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800
queue.aws_sqs.queue-properties.ota-updatesTB_QUEUE_AWS_SQS_OTA_QUEUE_PROPERTIESVisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.version-controlTB_QUEUE_AWS_SQS_VC_QUEUE_PROPERTIESVisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.aws_sqs.queue-properties.edgeTB_QUEUE_AWS_SQS_EDGE_QUEUE_PROPERTIESVisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
queue.pubsub.project_idTB_QUEUE_PUBSUB_PROJECT_IDYOUR_PROJECT_IDProject ID from Google Cloud
queue.pubsub.service_accountTB_QUEUE_PUBSUB_SERVICE_ACCOUNTYOUR_SERVICE_ACCOUNTAPI Credentials in JSON format
queue.pubsub.max_msg_sizeTB_QUEUE_PUBSUB_MAX_MSG_SIZE1048576Message size for PubSub queue.Value in bytes
queue.pubsub.max_messagesTB_QUEUE_PUBSUB_MAX_MESSAGES1000Number of messages per consumer
queue.pubsub.executor_thread_pool_sizeTB_QUEUE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE0Thread pool size for pubsub queue executor provider. If set to 0 - default pubsub executor provider value will be used (5 * number of available processors)
queue.pubsub.queue-properties.rule-engineTB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIESackDeadlineInSec:30;messageRetentionInSec:604800Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again
queue.pubsub.queue-properties.coreTB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIESackDeadlineInSec:30;messageRetentionInSec:604800Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consumed again
queue.pubsub.queue-properties.transport-apiTB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIESackDeadlineInSec:30;messageRetentionInSec:604800Pub/Sub properties for Transport API subscribers, messages which will commit after ackDeadlineInSec period can be consumed again
queue.pubsub.queue-properties.notificationsTB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIESackDeadlineInSec:30;messageRetentionInSec:604800Pub/Sub properties for Version Control subscribers, messages which will commit after ackDeadlineInSec period can be consumed again
queue.pubsub.queue-properties.js-executorTB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIESackDeadlineInSec:30;messageRetentionInSec:604800PubSub queue properties
queue.pubsub.queue-properties.version-controlTB_QUEUE_PUBSUB_VC_QUEUE_PROPERTIESackDeadlineInSec:30;messageRetentionInSec:604800Pub/Sub properties for Transport Api subscribers, messages which will commit after ackDeadlineInSec period can be consumed again
queue.pubsub.queue-properties.edgeTB_QUEUE_PUBSUB_EDGE_QUEUE_PROPERTIESackDeadlineInSec:30;messageRetentionInSec:604800Pub/Sub properties for Edge subscribers, messages which will commit after ackDeadlineInSec period can be consumed again
queue.service_bus.namespace_nameTB_QUEUE_SERVICE_BUS_NAMESPACE_NAMEYOUR_NAMESPACE_NAMEAzure namespace
queue.service_bus.sas_key_nameTB_QUEUE_SERVICE_BUS_SAS_KEY_NAMEYOUR_SAS_KEY_NAMEAzure Service Bus Shared Access Signatures key name
queue.service_bus.sas_keyTB_QUEUE_SERVICE_BUS_SAS_KEYYOUR_SAS_KEYAzure Service Bus Shared Access Signatures key
queue.service_bus.max_messagesTB_QUEUE_SERVICE_BUS_MAX_MESSAGES1000Number of messages per a consumer
queue.service_bus.queue-properties.rule-engineTB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIESlockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800Azure Service Bus properties for Rule Engine queues
queue.service_bus.queue-properties.coreTB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIESlockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800Azure Service Bus properties for Core queues
queue.service_bus.queue-properties.transport-apiTB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIESlockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800Azure Service Bus properties for Transport Api queues
queue.service_bus.queue-properties.notificationsTB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIESlockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800Azure Service Bus properties for Notification queues
queue.service_bus.queue-properties.js-executorTB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIESlockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800Azure Service Bus queue properties
queue.service_bus.queue-properties.version-controlTB_QUEUE_SERVICE_BUS_VC_QUEUE_PROPERTIESlockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800Azure Service Bus properties for Version Control queues
queue.service_bus.queue-properties.edgeTB_QUEUE_SERVICE_BUS_EDGE_QUEUE_PROPERTIESlockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800Azure Service Bus properties for Edge queues
queue.rabbitmq.exchange_nameTB_QUEUE_RABBIT_MQ_EXCHANGE_NAME_(empty)_By default empty
queue.rabbitmq.hostTB_QUEUE_RABBIT_MQ_HOSTlocalhostRabbitMQ host used to establish connection
queue.rabbitmq.portTB_QUEUE_RABBIT_MQ_PORT5672RabbitMQ host used to establish a connection
queue.rabbitmq.virtual_hostTB_QUEUE_RABBIT_MQ_VIRTUAL_HOST/Virtual hosts provide logical grouping and separation of resources
queue.rabbitmq.usernameTB_QUEUE_RABBIT_MQ_USERNAMEYOUR_USERNAMEUsername for RabbitMQ user account
queue.rabbitmq.passwordTB_QUEUE_RABBIT_MQ_PASSWORDYOUR_PASSWORDUser password for RabbitMQ user account
queue.rabbitmq.automatic_recovery_enabledTB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLEDfalseNetwork 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_timeoutTB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT60000The connection timeout for the RabbitMQ connection factory
queue.rabbitmq.handshake_timeoutTB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT10000RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout
queue.rabbitmq.max_poll_messagesTB_QUEUE_RABBIT_MQ_MAX_POLL_MESSAGES1The maximum number of messages returned in a single call of doPoll() method
queue.rabbitmq.queue-properties.rule-engineTB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIESx-max-length-bytes:1048576000;x-message-ttl:604800000RabbitMQ properties for Rule Engine queues
queue.rabbitmq.queue-properties.coreTB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIESx-max-length-bytes:1048576000;x-message-ttl:604800000RabbitMQ properties for Core queues
queue.rabbitmq.queue-properties.transport-apiTB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIESx-max-length-bytes:1048576000;x-message-ttl:604800000RabbitMQ properties for Transport API queues
queue.rabbitmq.queue-properties.notificationsTB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIESx-max-length-bytes:1048576000;x-message-ttl:604800000RabbitMQ properties for Notification queues
queue.rabbitmq.queue-properties.js-executorTB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIESx-max-length-bytes:1048576000;x-message-ttl:604800000RabbitMQ queue properties
queue.rabbitmq.queue-properties.version-controlTB_QUEUE_RABBIT_MQ_VC_QUEUE_PROPERTIESx-max-length-bytes:1048576000;x-message-ttl:604800000RabbitMQ properties for Version Control queues
queue.rabbitmq.queue-properties.edgeTB_QUEUE_RABBIT_MQ_EDGE_QUEUE_PROPERTIESx-max-length-bytes:1048576000;x-message-ttl:604800000RabbitMQ properties for Edge queues
queue.partitions.hash_function_nameTB_QUEUE_PARTITIONS_HASH_FUNCTION_NAMEmurmur3_128murmur3_32, murmur3_128 or sha256
queue.transport_api.requests_topicTB_QUEUE_TRANSPORT_API_REQUEST_TOPICtb_transport.api.requestsTopic used to consume api requests from transport microservices
queue.transport_api.responses_topicTB_QUEUE_TRANSPORT_API_RESPONSE_TOPICtb_transport.api.responsesTopic used to produce api responses to transport microservices
queue.transport_api.max_pending_requestsTB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS10000Maximum pending api requests from transport microservices to be handled by server
queue.transport_api.max_requests_timeoutTB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT10000Maximum timeout in milliseconds to handle api request from transport microservice by server
queue.transport_api.max_callback_threadsTB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS100Amount of threads used to invoke callbacks
queue.transport_api.max_core_handler_threadsTB_QUEUE_TRANSPORT_MAX_CORE_HANDLER_THREADS16Amount of threads used for transport API requests
queue.transport_api.request_poll_intervalTB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS25Interval in milliseconds to poll api requests from transport microservices
queue.transport_api.response_poll_intervalTB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS25Interval in milliseconds to poll api response from transport microservices
queue.core.topicTB_QUEUE_CORE_TOPICtb_coreDefault topic name of Kafka, RabbitMQ, etc. queue
queue.core.poll-intervalTB_QUEUE_CORE_POLL_INTERVAL_MS25Interval in milliseconds to poll messages by Core microservices
queue.core.partitionsTB_QUEUE_CORE_PARTITIONS10Amount of partitions used by Core microservices
queue.core.pack-processing-timeoutTB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS2000Timeout for processing a message pack by Core microservices
queue.core.consumer-per-partitionTB_QUEUE_CORE_CONSUMER_PER_PARTITIONtrueEnable/disable a separate consumer per partition for Core queue
queue.core.ota.topicTB_QUEUE_CORE_OTA_TOPICtb_ota_packageDefault topic name for OTA updates
queue.core.ota.pack-interval-msTB_QUEUE_CORE_OTA_PACK_INTERVAL_MS60000The 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-sizeTB_QUEUE_CORE_OTA_PACK_SIZE100The size of OTA updates notifications fetched from the queue. The queue stores pairs of firmware and device ids
queue.core.usage-stats-topicTB_QUEUE_US_TOPICtb_usage_statsStats topic name for queue Kafka, RabbitMQ, etc.
queue.core.stats.enabledTB_QUEUE_CORE_STATS_ENABLEDtrueEnable/disable statistics for Core microservices
queue.core.stats.print-interval-msTB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS60000Statistics printing interval for Core microservices
queue.core.housekeeper.topicTB_HOUSEKEEPER_TOPICtb_housekeeperTopic name for Housekeeper tasks
queue.core.housekeeper.reprocessing-topicTB_HOUSEKEEPER_REPROCESSING_TOPICtb_housekeeper.reprocessingTopic name for Housekeeper tasks to be reprocessed
queue.core.housekeeper.poll-interval-msTB_HOUSEKEEPER_POLL_INTERVAL_MS500Poll interval for topics related to Housekeeper
queue.core.housekeeper.task-processing-timeout-msTB_HOUSEKEEPER_TASK_PROCESSING_TIMEOUT_MS120000Timeout in milliseconds for task processing. Tasks that fail to finish on time will be submitted for reprocessing
queue.core.housekeeper.disabled-task-typesTB_HOUSEKEEPER_DISABLED_TASK_TYPES_(empty)_Comma-separated list of task types that shouldn’t be processed. Available task types: DELETE_ATTRIBUTES, DELETE_TELEMETRY (both DELETE_LATEST_TS and DELETE_TS_HISTORY will be disabled), DELETE_LATEST_TS, DELETE_TS_HISTORY, DELETE_EVENTS, DELETE_ALARMS, UNASSIGN_ALARMS
queue.core.housekeeper.task-reprocessing-delay-msTB_HOUSEKEEPER_TASK_REPROCESSING_DELAY_MS3000Delay in milliseconds between tasks reprocessing
queue.core.housekeeper.max-reprocessing-attemptsTB_HOUSEKEEPER_MAX_REPROCESSING_ATTEMPTS10Maximum amount of task reprocessing attempts. After exceeding, the task will be dropped
queue.core.housekeeper.stats.enabledTB_HOUSEKEEPER_STATS_ENABLEDtrueEnable/disable statistics for Housekeeper
queue.core.housekeeper.stats.print-interval-msTB_HOUSEKEEPER_STATS_PRINT_INTERVAL_MS60000Statistics printing interval for Housekeeper
queue.vc.topicTB_QUEUE_VC_TOPICtb_version_controlDefault topic name for Kafka, RabbitMQ, etc.
queue.vc.partitionsTB_QUEUE_VC_PARTITIONS10Number of partitions to associate with this queue. Used for scaling the number of messages that can be processed in parallel
queue.vc.poll-intervalTB_QUEUE_VC_INTERVAL_MS25Interval in milliseconds between polling of the messages if no new messages arrive
queue.vc.pack-processing-timeoutTB_QUEUE_VC_PACK_PROCESSING_TIMEOUT_MS180000Timeout before retrying all failed and timed-out messages from the processing pack
queue.vc.request-timeoutTB_QUEUE_VC_REQUEST_TIMEOUT180000Timeout for a request to VC-executor (for a request for the version of the entity, for a commit charge, etc.)
queue.vc.msg-chunk-sizeTB_QUEUE_VC_MSG_CHUNK_SIZE250000Queue settings for Kafka, RabbitMQ, etc. Limit for single message size
queue.js.request_topicREMOTE_JS_EVAL_REQUEST_TOPICjs_eval.requestsJS Eval request topic
queue.js.response_topic_prefixREMOTE_JS_EVAL_RESPONSE_TOPICjs_eval.responsesJS Eval responses topic prefix that is combined with node id
queue.js.max_pending_requestsREMOTE_JS_MAX_PENDING_REQUESTS10000JS Eval max pending requests
queue.js.max_eval_requests_timeoutREMOTE_JS_MAX_EVAL_REQUEST_TIMEOUT60000JS Eval max request timeout
queue.js.max_requests_timeoutREMOTE_JS_MAX_REQUEST_TIMEOUT10000JS max request timeout
queue.js.max_exec_requests_timeoutREMOTE_JS_MAX_EXEC_REQUEST_TIMEOUT2000JS execution max request timeout
queue.js.response_poll_intervalREMOTE_JS_RESPONSE_POLL_INTERVAL_MS25JS response poll interval
queue.rule-engine.topicTB_QUEUE_RULE_ENGINE_TOPICtb_rule_engineDeprecated. It will be removed in the nearest releases
queue.rule-engine.poll-intervalTB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS25Interval in milliseconds to poll messages by Rule Engine
queue.rule-engine.pack-processing-timeoutTB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS2000Timeout for processing a message pack of Rule Engine
queue.rule-engine.stats.enabledTB_QUEUE_RULE_ENGINE_STATS_ENABLEDtrueEnable/disable statistics for Rule Engine
queue.rule-engine.stats.print-interval-msTB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS60000Statistics printing interval for Rule Engine
queue.rule-engine.stats.max-error-message-lengthTB_QUEUE_RULE_ENGINE_MAX_ERROR_MESSAGE_LENGTH4096Max length of the error message that is printed by statistics
queue.rule-engine.topic-deletion-delayTB_QUEUE_RULE_ENGINE_TOPIC_DELETION_DELAY_SEC15After a queue is deleted (or the profile’s isolation option was disabled), Rule Engine will continue reading related topics during this period before deleting the actual topics
queue.rule-engine.management-thread-pool-sizeTB_QUEUE_RULE_ENGINE_MGMT_THREAD_POOL_SIZE12Size of the thread pool that handles such operations as partition changes, config updates, queue deletion
queue.transport.notifications_topicTB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPICtb_transport.notificationsFor high-priority notifications that require minimum latency and processing time
queue.transport.poll_intervalTB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS25Interval in milliseconds to poll messages
queue.edge.topicTB_QUEUE_EDGE_TOPICtb_edgeDefault topic name for Kafka, RabbitMQ, etc.
queue.edge.partitionsTB_QUEUE_EDGE_PARTITIONS10Amount of partitions used by Edge services
queue.edge.poll-intervalTB_QUEUE_EDGE_POLL_INTERVAL_MS25Poll interval for topics related to Edge services
queue.edge.pack-processing-timeoutTB_QUEUE_EDGE_PACK_PROCESSING_TIMEOUT_MS10000Timeout for processing a message pack by Edge services
queue.edge.pack-processing-retriesTB_QUEUE_EDGE_MESSAGE_PROCESSING_RETRIES3Retries for processing a failure message pack by Edge services
queue.edge.consumer-per-partitionTB_QUEUE_EDGE_CONSUMER_PER_PARTITIONfalseEnable/disable a separate consumer per partition for Edge queue
queue.edge.stats.enabledTB_QUEUE_EDGE_STATS_ENABLEDtrueEnable/disable statistics for Edge services
queue.edge.stats.print-interval-msTB_QUEUE_EDGE_STATS_PRINT_INTERVAL_MS60000Statistics printing interval for Edge services
ParameterEnv variableDefaultDescription
event.debug.max-symbolsTB_MAX_DEBUG_EVENT_SYMBOLS4096Maximum number of symbols per debug event. The event content will be truncated if needed
ParameterEnv variableDefaultDescription
service.typeTB_SERVICE_TYPEmonolithmonolith or tb-core or tb-rule-engine
service.idTB_SERVICE_ID_(empty)_Unique id for this service (autogenerated if empty)
service.rule_engine.assigned_tenant_profilesTB_RULE_ENGINE_ASSIGNED_TENANT_PROFILES_(empty)_Comma-separated list of tenant profile ids assigned to this Rule Engine. This Rule Engine will only be responsible for tenants with these profiles (in case ‘isolation’ option is enabled in the profile).
service.rule_engine.pubsub.executor_thread_pool_sizeTB_RULE_ENGINE_PUBSUB_EXECUTOR_THREAD_POOL_SIZE0Thread pool size for pubsub rule node executor provider. If not set - default pubsub executor provider value will be used (5 * number of available processors)
ParameterEnv variableDefaultDescription
tbel.enabledTBEL_ENABLEDtrueEnable/Disable TBEL feature.
tbel.max_total_args_sizeTBEL_MAX_TOTAL_ARGS_SIZE100000Limit the number of arguments that are passed to the function to execute the script
tbel.max_result_sizeTBEL_MAX_RESULT_SIZE300000Maximum allowed symbols in a result after processing a script
tbel.max_script_body_sizeTBEL_MAX_SCRIPT_BODY_SIZE50000Maximum allowed symbols in the script body
tbel.max_memory_limit_mbTBEL_MAX_MEMORY_LIMIT_MB8Maximum allowed TBEL script execution memory
tbel.max_errorsTBEL_MAX_ERRORS3Maximum allowed TBEL script execution errors before it will be blacklisted
tbel.max_requests_timeoutTBEL_MAX_REQUEST_TIMEOUT500TBEL Eval max request timeout in milliseconds. 0 - no timeout
tbel.max_black_list_duration_secTBEL_MAX_BLACKLIST_DURATION_SEC60Maximum time in seconds for black listed function to stay in the list.
tbel.thread_pool_sizeTBEL_THREAD_POOL_SIZE50Specify thread pool size for javascript executor service
tbel.compiled_scripts_cache_sizeTBEL_COMPILED_SCRIPTS_CACHE_SIZE1000Maximum cache size of TBEL compiled scripts
tbel.stats.enabledTB_TBEL_STATS_ENABLEDfalseEnable/Disable stats collection for TBEL engine
tbel.stats.print_interval_msTB_TBEL_STATS_PRINT_INTERVAL_MS10000Interval of logging for TBEL stats
ParameterEnv variableDefaultDescription
js.evaluatorJS_EVALUATORlocallocal (Nashorn Engine, deprecated) OR remote JS-Executors (NodeJS)
js.max_total_args_sizeJS_MAX_TOTAL_ARGS_SIZE100000Limit the number of arguments that are passed to the function to execute the script
js.max_result_sizeJS_MAX_RESULT_SIZE300000Maximum allowed symbols in a result after processing a script
js.max_script_body_sizeJS_MAX_SCRIPT_BODY_SIZE50000Maximum allowed symbols in script body
js.local.js_thread_pool_sizeLOCAL_JS_THREAD_POOL_SIZE50Specify thread pool size for javascript executor service
js.local.use_js_sandboxUSE_LOCAL_JS_SANDBOXtrueUse Sandboxed (secured) JVM JavaScript environment
js.local.monitor_thread_pool_sizeLOCAL_JS_SANDBOX_MONITOR_THREAD_POOL_SIZE4Specify thread pool size for JavaScript sandbox resource monitor
js.local.max_cpu_timeLOCAL_JS_SANDBOX_MAX_CPU_TIME8000Maximum CPU time in milliseconds allowed for script execution
js.local.max_memoryLOCAL_JS_SANDBOX_MAX_MEMORY104857600Maximum memory in Bytes which JS executor thread can allocate (approximate calculation). A zero memory limit in combination with a non-zero CPU limit is not recommended due to the implementation of Nashorn 0.4.2. 100MiB is effectively unlimited for most cases
js.local.max_errorsLOCAL_JS_SANDBOX_MAX_ERRORS3Maximum allowed JavaScript execution errors before JavaScript will be blacklisted
js.local.max_requests_timeoutLOCAL_JS_MAX_REQUEST_TIMEOUT0JS Eval max request timeout. 0 - no timeout
js.local.max_black_list_duration_secLOCAL_JS_SANDBOX_MAX_BLACKLIST_DURATION_SEC60Maximum time in seconds for black listed function to stay in the list.
js.local.stats.enabledTB_JS_LOCAL_STATS_ENABLEDfalseEnable/Disable stats collection for local JS executor
js.local.stats.print_interval_msTB_JS_LOCAL_STATS_PRINT_INTERVAL_MS10000Interval of logging for local JS executor stats
js.remote.js_thread_pool_sizeREMOTE_JS_THREAD_POOL_SIZE50Specify thread pool size for javascript executor service
js.remote.max_errorsREMOTE_JS_SANDBOX_MAX_ERRORS3Maximum allowed JavaScript execution errors before JavaScript will be blacklisted
js.remote.max_black_list_duration_secREMOTE_JS_SANDBOX_MAX_BLACKLIST_DURATION_SEC60Maximum time in seconds for black listed function to stay in the list.
js.remote.stats.enabledTB_JS_REMOTE_STATS_ENABLEDfalseEnable/Disable stats collection for remote JS executor
js.remote.stats.print_interval_msTB_JS_REMOTE_STATS_PRINT_INTERVAL_MS10000Interval of logging for remote JS executor stats
ParameterEnv variableDefaultDescription
state.defaultInactivityTimeoutInSecDEFAULT_INACTIVITY_TIMEOUT600Device inactivity timeout is a global configuration parameter that defines when the device will be marked as “inactive” by the server. The parameter value is in seconds. A user can overwrite this parameter for an individual device by setting the “inactivityTimeout” server-side attribute (NOTE: expects value in milliseconds). We recommend this parameter to be in sync with session inactivity timeout (“transport.sessions.inactivity_timeout” or TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT) parameter which is responsible for detection of the stale device connection sessions. The value of the session inactivity timeout parameter should be greater or equal to the device inactivity timeout. Note that the session inactivity timeout is set in milliseconds while device inactivity timeout is in seconds.
state.defaultStateCheckIntervalInSecDEFAULT_STATE_CHECK_INTERVAL60Interval for checking the device state after a specified period. Time in seconds
state.persistToTelemetryPERSIST_STATE_TO_TELEMETRYfalseControls whether we store the device ‘active’ flag in attributes (default) or telemetry. If you decide to change this parameter, you should re-create the device info view as one of the following: If ‘persistToTelemetry’ is changed from ‘false’ to ‘true’: ‘CREATE OR REPLACE VIEW device_info_view AS SELECT * FROM device_info_active_ts_view;’ If ‘persistToTelemetry’ is changed from ‘true’ to ‘false’: ‘CREATE OR REPLACE VIEW device_info_view AS SELECT * FROM device_info_active_attribute_view;‘
state.telemetryTtlSTATE_TELEMETRY_TTL0Millisecond value defining time-to-live for device state telemetry data (e.g. ‘active’, ‘lastActivityTime’). Used only when state.persistToTelemetry is set to ‘true’ and Cassandra is used for timeseries data. 0 means time-to-live mechanism is disabled.
state.rule.node.deviceState.rateLimitDEVICE_STATE_NODE_RATE_LIMIT_CONFIGURATION1:1,30:60,60:3600Defines the rate at which device connectivity events can be triggered. Comma-separated list of capacity:duration pairs that define bandwidth capacity and refill duration for token bucket rate limit algorithm. Refill is set to be greedy. Please refer to Bucket4j library documentation for more details.
ParameterEnv variableDefaultDescription
vc.thread_pool_sizeTB_VC_POOL_SIZE6Pool size for handling export tasks
vc.git.io_pool_sizeTB_VC_GIT_POOL_SIZE3Pool size for handling the git IO operations
vc.git.repositories-folderTB_VC_GIT_REPOSITORIES_FOLDER${java.io.tmpdir}/repositoriesDefault storing repository path
ParameterEnv variableDefaultDescription
updates.enabledUPDATES_ENABLEDtrueEnable/disable checks for the new version