跳转到内容

配置参考

Wippy 通过 .wippy.yaml 文件进行配置。所有选项都有合理的默认值。

下面的任何值都可以在启动时通过 wippy run --set section.path=value 覆盖(可重复使用,优先级高于文件)。如需覆盖单个注册表入口而非这些配置区段,请使用 override: 区段或 -o——参见覆盖入口

控制 zap logger 编码器。CLI 参数(-v-c-s)会覆盖级别/输出;唯一由 yaml 驱动的选项是编码。

字段类型默认值说明
encodingstringconsole编码器:console(人类可读)或 json(结构化)
logger:
encoding: json

控制运行时日志路由。控制台输出通过 CLI 参数-v-c-s)配置。

字段类型默认值说明
propagate_downstreambooltrue发送日志到控制台/文件输出
stream_to_eventsboolfalse将日志发布到事件总线供程序访问
min_levelint-1最低级别:-1=debug, 0=info, 1=warn, 2=error
logmanager:
propagate_downstream: true
stream_to_events: false
min_level: 0

参见:Logger 模块

Go pprof HTTP 服务器,用于 CPU/内存分析。通过 -p 参数或配置启用。

字段类型默认值说明
enabledboolfalse启动分析器服务
addressstringlocalhost:6060监听地址
read_timeoutduration15sHTTP 读取超时
write_timeoutduration15sHTTP 写入超时
idle_timeoutduration60s连接保活超时
profiler:
enabled: true
address: "localhost:6060"

访问地址:http://localhost:6060/debug/pprof/

全局安全行为。单独的策略定义为 security.policy 入口

字段类型默认值说明
strict_modeboolfalse安全上下文不完整时拒绝访问
security:
strict_mode: true

参见:安全系统Security 模块

入口存储和版本历史。注册表保存所有配置入口。

字段类型默认值说明
enable_historybooltrue跟踪入口版本
history_typestringmemory存储类型:memory, sqlite, nil
history_pathstring.wippy/registry.dbSQLite 文件路径
registry:
history_type: sqlite
history_path: /var/lib/wippy/registry.db

参见:注册表概念Registry 模块

跨节点的进程间消息路由。

字段类型默认值说明
node_namestringlocal中继节点标识符
relay:
node_name: worker-1

参见:进程模型

服务生命周期管理。控制监督器用于派发生命周期事件的内部控制邮箱。

字段类型默认值说明
host.buffer_sizeint1024内部控制邮箱容量
host.worker_countint16并发派发工作线程数
supervisor:
host:
buffer_size: 2048
worker_count: 32

参见:监督指南

每个 `process.host` 的工作线程和队列在入口本身(`workers`、`queue_size`、`local_queue_size`)配置,而不是在此全局节中。参见 [Process Host](system/process-host.md) 入口类型。

Lua 虚拟机缓存和表达式求值。

字段类型默认值说明
proto_cache_sizeint60000编译原型缓存
main_cache_sizeint10000主块缓存
cache.enabledboolfalse将编译后的字节码/类型检查缓存持久化到磁盘
cache.dirstring(系统缓存目录)缓存目录路径
cache.modestringread_write缓存模式:read_writeread_onlywrite_only
type_system.enabledboolfalse启用静态类型检查
type_system.strictboolfalse将类型警告视为错误
lua:
proto_cache_size: 60000
cache:
enabled: true
dir: .cache/lua
type_system:
enabled: true

参见:Lua 概览

注册表搜索缓存。内部用于入口查找。

字段类型默认值说明
query_cache_sizeint1000缓存的查询结果数
regex_cache_sizeint100编译的正则表达式数
finder:
query_cache_size: 2000

通过 OTLP 导出分布式追踪和指标。

字段类型默认值说明
enabledboolfalse启用 OTEL
endpointstringlocalhost:4318OTLP 端点
protocolstringhttp/protobuf协议:grpc, http/protobuf
service_namestringwippy-runtime服务标识符
service_versionstring服务版本标签
insecurebooltrue允许明文 OTLP 连接
sample_ratefloat1.0追踪采样率(0.0-1.0)
propagatorsstring[][tracecontext, baggage]上下文传播器
traces_enabledbooltrue导出追踪
metrics_enabledboolfalse导出指标
http.enabledbooltrue追踪 HTTP 请求
http.extract_headersbooltrue从入站请求头中提取追踪上下文
http.inject_headersbooltrue向出站请求头注入追踪上下文
process.enabledbooltrue追踪进程生命周期
process.trace_lifecyclebooltrue为 spawn/terminate 发出 span
interceptor.enabledbooltrue追踪函数调用
interceptor.orderint100拦截器优先级
queue.enabledbooltrue追踪队列发布/消费
temporal.enabledboolfalse追踪 Temporal 工作流
otel:
enabled: true
endpoint: "http://jaeger:4318"
traces_enabled: true
process:
trace_lifecycle: true

标准 OTEL 环境变量(OTEL_EXPORTER_OTLP_ENDPOINTOTEL_SERVICE_NAMEOTEL_TRACES_SAMPLER_ARGOTEL_PROPAGATORSOTEL_SDK_DISABLED)会覆盖对应字段。

参见:可观测性指南

优雅关闭行为。

字段类型默认值说明
timeoutduration30s等待组件停止的最长时间
shutdown:
timeout: 60s

内部指标收集缓冲区。

字段类型默认值说明
buffer.sizeint10000指标缓冲区容量
interceptor.enabledboolfalse自动跟踪函数调用
metrics:
buffer:
size: 20000
interceptor:
enabled: true

参见:Metrics 模块可观测性指南

Prometheus 指标端点。

字段类型默认值说明
enabledboolfalse启动指标服务
addressstringlocalhost:9090监听地址
prometheus:
enabled: true
address: "0.0.0.0:9090"

暴露 /metrics 端点供 Prometheus 抓取。

参见:可观测性指南

多节点集群:gossip 成员发现加上有界 Raft 共识核心。架构和运维模型参见集群指南;本节为配置键参考。

字段类型默认值说明
enabledboolfalse启用集群
namestringhostname节点名称;在集群中必须唯一
failure_domainstring可用区/机架标签;在 gossip 中广播,使选民分布在不同域

通过 memberlist 实现 SWIM gossip。用于节点发现、故障检测和元数据传播。

字段类型默认值说明
membership.bind_addrstring0.0.0.0Gossip 绑定地址
membership.bind_portint7946Gossip 绑定端口(TCP+UDP)
membership.advertise_addrstring对等节点访问此节点所用的地址(NAT/k8s)
membership.join_addrsstring逗号分隔的种子节点 host:port 列表
membership.secret_keystringBase64 编码的 gossip 加密密钥(内联)
membership.secret_filestring存放 gossip 加密密钥的文件路径

承载节点间中继和 Raft 流量的 TCP 网格。Raft 通过此网格传输(yamux 多路复用);没有独立的 Raft 端口。

字段类型默认值说明
internode.bind_addrstring0.0.0.0网格绑定地址
internode.bind_portint0网格端口(0 = 自动:7950-7959,之后为临时端口)
internode.auto_portbooltrue启动时发现实际端口,固定并在 gossip 中广播

有界的 Raft。Raft 状态默认在文件系统持久化,存储于 raft.data_dir(默认 ~/.wippy/store)下;重启后的节点仍会从对等节点重新加入 quorum。store.kv.raft entry 通过它进行复制。引导通过 gossip 驱动(Consul/Nomad bootstrap_expect 风格)。

字段类型默认值说明
raft.data_dirstring~/.wippy/store文件系统持久化 Raft 状态和持久化 CRDT 快照的目录(位于 <data_dir>/_sys/ 下)。仅当无路径可解析时(无 home 目录且未设置)才无磁盘运行
raft.enabledbooltrue运行 Raft 节点;false 使此节点成为仅 gossip 客户端
raft.rolestringserverserver 运行 Raft 节点;client 仅参与 gossip
raft.eligiblebooltrue此节点是否可被选为选民
raft.priorityint100选民选取优先级(值越低越优先)
raft.bootstrap_expectint1初始 quorum 大小:0=加入已有集群,1=单节点,N=等待 N 个合格对等节点后组成 quorum
raft.max_votersint5选民上限(必须为奇数);超出的合格节点成为备用节点
raft.max_standbysint4保持热备以备晋升的非投票成员;超过 voters+standbys 的节点不作为 Raft 成员
raft.reconcile_debounceduration2sgossip 事件后运行选民协调器前的合并窗口
raft.reconcile_timeoutduration2s每次协调过程的超时时间
raft.heartbeat_timeoutduration3s追随者空闲等待发起选举前的超时
raft.election_timeoutduration3s候选人选举超时(不小于心跳超时)
raft.commit_timeoutduration500ms空闲 leader 心跳节拍
raft.snapshot_thresholduint648192触发新快照前自上次快照以来的日志条目数
raft.snapshot_intervalduration2m快照检查间隔
raft.snapshot_retainint3保留的快照数量
raft.trailing_logsuint6410240快照后保留的日志条目数
raft.max_append_entriesint16每次 AppendEntries RPC 的最大条目数
raft.leader_probe_intervalduration3s全局注册表 leader 可达性探测间隔
raft.leader_probe_graceint3声明 leader 不可达前允许的连续探测失败次数

单节点(开发环境)——集群开启,立即自举:

cluster:
enabled: true
name: dev
raft:
bootstrap_expect: 1

三节点投票集群——每个节点列出其他节点作为种子,等待三个节点全部就绪后组成 quorum:

cluster:
enabled: true
name: node-1
failure_domain: us-east-1a
membership:
bind_port: 7946
join_addrs: "node-2:7946,node-3:7946"
secret_file: /etc/wippy/cluster.key
raft:
bootstrap_expect: 3
max_voters: 5

仅 gossip 客户端——加入集群用于命名/消息传递,但从不运行 Raft:

cluster:
enabled: true
name: edge-7
membership:
join_addrs: "node-1:7946,node-2:7946"
raft:
role: client

用于编辑器集成的语言服务器协议(Language Server Protocol)服务器。

字段类型默认值说明
enabledboolfalse启用 TCP 服务器
addressstring:7777TCP 监听地址
http_enabledboolfalse启用 HTTP 传输
http_addressstring:7778HTTP 监听地址
http_pathstring/lspHTTP 端点路径
http_allow_originstring*CORS 允许的源
max_message_bytesint8388608入站消息最大大小
lsp:
enabled: true
address: ":7777"
http_enabled: true

参见:LSP 指南

覆盖网络管理器(SOCKS5、I2P、Tailscale 驱动)。

字段类型默认值说明
state_dirstring.wippy/net驱动状态存储目录
default_networkstring当入口省略 network 时应用的默认网络 ID
network_service:
state_dir: /var/lib/wippy/net
default_network: app:tailscale

参见:网络覆盖

HTTP 调度函数和出站请求所用的共享 HTTP 客户端池的调优参数。

字段类型默认值说明
dispatcher.http.timeoutduration0(无)单请求超时
dispatcher.http.max_idle_connsint0(标准库)所有主机的最大空闲连接数
dispatcher.http.max_idle_per_hostint0(标准库)每个主机的最大空闲连接数
dispatcher.http.idle_conn_timeoutduration0(标准库)空闲连接超时
dispatcher.http.max_clientsint0(无限制)最大池化客户端数
dispatcher:
http:
timeout: 30s
max_idle_per_host: 32

wippy install/update 使用的模块注册表客户端。

字段类型默认值说明
registry_urlstringhttps://hub.wippy.ai注册表端点
modules:
registry_url: https://internal-registry.example.com

启动时加载的原生 Go 插件扩展(仅 Unix)。

字段类型默认值说明
enabledbooltrue加载扩展
pathsstring[]插件文件路径(相对于配置目录)
extensions:
enabled: true
paths:
- ./extensions/myplugin.so
变量说明
GOMEMLIMIT内存限制(覆盖 --memory-limit 参数)