跳转到主要内容
MoleSignal 只有一个配置来源:一个 TOML 文件,用 molesignal --config /path/to/config.toml 传入。任何字段都可被形如 MS_<SECTION>.<FIELD> 的环境变量覆盖 —— 前缀是单下划线,section 与 field 之间用点连接。
# 下面两行等价于设置 [http].port = 5081 和 [store.meta].dsn = ...
export MS_HTTP.PORT=5081
export MS_STORE.META.DSN="postgres://user:pass@db:5432/molesignal"
schema 定义在 crates/config/src/settings.rs;仓库默认配置是 conf/config.toml

节点(node)

[node]
# 可组合角色:standalone / router / ingester / querier / compactor / alert_manager
# `standalone` 表示同进程内启用全部角色。
roles = ["standalone"]
# 节点唯一标识;留空则启动时生成 KSUID。
id = ""

HTTP 与 gRPC

[http]
bind = "0.0.0.0"
port = 5080
gzip = true              # 反向代理后建议关闭

[grpc]
bind = "0.0.0.0"
port = 5082
max_message_size_mb = 32

TLS + 自动证书

[http.tls]
enabled = false               # 主开关;false 时仅明文 HTTP
plain_port = 80               # HTTP-01 challenge + 80→443 重定向
port = 443                    # rustls 服务端口
acme_directory = "production" # production | staging | 自定义 CA URL(如 Pebble)
account_email = ""            # Let's Encrypt 要求
key_storage_dir = "/var/lib/molesignal/acme"

存储(store)

[store.meta]
backend = "postgres"
dsn = "postgres://molesignal:molesignal@localhost:5432/molesignal"
max_connections = 16

[store.object]
# 列式数据落地:local | s3 | azure | gcs
backend = "local"
root = "./data/objects"
# S3 / S3 兼容(MinIO、R2、阿里云 OSS):
# bucket = "molesignal"
# region = "us-east-1"
# endpoint = ""            # MinIO 填 http://localhost:9000
# access_key = ""
# secret_key = ""
# 凭据解析顺序:env > credentials_file > 内联 TOML。
# credentials_file = "/etc/molesignal/object-store.toml"
Azure 走 AZURE_STORAGE_ACCOUNT / AZURE_STORAGE_ACCESS_KEY;GCS 走 GOOGLE_APPLICATION_CREDENTIALS

自身遥测(telemetry)

[telemetry]
log_level = "info"
log_format = "text"        # text | json
otlp_endpoint = ""         # 留空则不导出 trace
metrics_enabled = true
log_output = "console"     # console | file
# log_directory = "logs"          # 仅当 log_output = "file"
# log_rotation = "daily"          # minutely | hourly | daily | never
# log_max_files = 7

函数(functions)

[functions]
# 可选的 JavaScript 运行时。还需构建特性
# `--features molesignal-bootstrap/js-runtime`。
js_runtime_enabled = false

缓存

parquet 磁盘缓存默认启用(./data/cache/parquet,10 GB LRU),可经 [cache.disk_cache] 调整或 关闭。FileMeta 冷层溢出会把早于 [storage.file_meta_dump].cold_after_days(默认 30)的分区序列化 到对象存储,使元数据表保持精简。