dashboardjavacloudcoapiotiot-analyticsiot-platformiot-solutionskafkalwm2mmicroservicesmiddlewaremqttnettyplatformsnmpthingsboardvisualizationwebsocketswidgets
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
4.2 KiB
69 lines
4.2 KiB
#
|
|
# Copyright © 2016-2026 The Thingsboard Authors
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
# Queue configuration
|
|
# Defines the messaging queue backend used to dispatch JS evaluation requests to the executor and receive results.
|
|
queue_type: "kafka" # Queue type used for JS evaluation requests: kafka or in-memory
|
|
request_topic: "js_eval.requests" # Kafka topic name for incoming JS evaluation requests
|
|
queue_prefix: "" # Optional prefix applied to all queue/topic names; useful for environment isolation
|
|
http_port: "8888" # HTTP port exposing the /livenessProbe health check endpoint
|
|
|
|
# JavaScript execution configuration
|
|
# Controls response polling behavior and output size limits for individual JS script executions.
|
|
js:
|
|
response_poll_interval: "25" # Interval in milliseconds to poll for JS execution responses
|
|
max_result_size: "300000" # Maximum allowed size in bytes of a JS execution result
|
|
|
|
# Kafka configuration
|
|
# Connection, producer, and topic settings for the Kafka message broker used as the JS evaluation queue.
|
|
kafka:
|
|
bootstrap:
|
|
# Kafka Bootstrap Servers
|
|
servers: "localhost:9092"
|
|
replication_factor: "1" # Number of replicas for each Kafka topic partition
|
|
acks: "1" # -1 = all; 0 = no acknowledgments; 1 = only waits for the leader to acknowledge
|
|
batch_size: "128" # Maximum number of messages to accumulate before triggering a batch send
|
|
linger_ms: "5" # Time in milliseconds the producer waits before sending a batch, allowing more messages to accumulate
|
|
partitions_consumed_concurrently: "1" # (EXPERIMENTAL) increase this value if you are planning to handle more than one partition (scale up, scale down) - this will decrease the latency
|
|
requestTimeout: "30000" # Time in milliseconds to wait for a response to a Kafka request before timing out
|
|
connectionTimeout: "1000" # Time in milliseconds to wait when establishing a connection to a Kafka broker
|
|
compression: "none" # Message compression codec for the producer: none, gzip
|
|
topic_properties: "retention.ms:604800000;segment.bytes:52428800;retention.bytes:104857600;partitions:100;min.insync.replicas:1" # Semicolon-separated Kafka topic configuration properties applied on topic creation
|
|
use_confluent_cloud: false # Set to true to enable Confluent Cloud-specific configuration (SSL + SASL)
|
|
client_id: "kafkajs" # Kafka client identifier; inject the pod name to easily identify the client via kafka-consumer-groups.sh
|
|
ssl:
|
|
enabled: false # Enable SSL/TLS for Kafka broker connections
|
|
confluent:
|
|
sasl:
|
|
mechanism: "PLAIN" # SASL mechanism for Confluent Cloud authentication: PLAIN, SCRAM-SHA-256, or SCRAM-SHA-512
|
|
|
|
# Logging configuration
|
|
# Controls log verbosity, output directory, and log file naming pattern for the JS executor service.
|
|
logger:
|
|
level: "info" # Log level: trace, debug, info, warn, or error
|
|
path: "logs" # Directory path where log files are written
|
|
filename: "tb-js-executor-%DATE%.log" # Log file name pattern; %DATE% is replaced with the current date
|
|
|
|
# JavaScript execution and monitoring configuration
|
|
# Sandboxing, script caching, and observability settings for the JS script runtime.
|
|
script:
|
|
use_sandbox: "true" # Run scripts inside an isolated sandbox to prevent access to Node.js internals
|
|
memory_usage_trace_frequency: "1000" # Log memory usage every N script executions
|
|
script_body_trace_frequency: "10000" # Log the script body every N script executions
|
|
stat_print_frequency: "10000" # Print execution statistics every N script executions
|
|
max_active_scripts: "1000" # Maximum number of compiled scripts kept in the cache
|
|
slow_query_log_ms: "5.000000" # Execution time threshold in milliseconds above which a script is considered slow and logged
|
|
slow_query_log_body: "false" # Log the script body when execution time exceeds slow_query_log_ms threshold
|
|
|