跳转到主要内容
MoleSignal 是一个单一二进制,服务所有角色;你来选择某个进程运行哪些角色。这让它既能当作 一条命令的沙箱,也能横向扩展成集群。

架构

                          ┌──────────┐
   OTel / Vector / ...  ─►│  router  │─► 一致性哈希(org, stream) ─► ingester(s)
                          └──────────┘                                  │
                               │                                        ▼
                               ▼                                   WAL + Arrow buffer
                       /api/v1/{ingest,query,...}                       │
                               │                              flush → Parquet + Tantivy
                               ▼                              上传到对象存储
                       ┌──────────────┐                                 │
                       │ web shell    │                                 ▼
                       │ (⌘K + stack) │         ┌────────────────────────────┐
                       └──────┬───────┘         │ FileMeta 在 Postgres        │
                              │ /query          │ 对象在 S3/GCS/Azure/…       │
                              ▼                 └────────────────────────────┘
                       ┌──────────────┐                      ▲
                       │  querier(s)  │── Arrow Flight do_get ┘
                       └──────────────┘    (按哈希分片做分布式扫描)
关键点:日志、指标、追踪落进同一批 Parquet 文件(不同的流、同一物理存储),所以一条 SQL 查询 可以原生地在它们之间 join —— 没有跨存储联邦。

节点角色

角色启动什么状态
standalone同进程内 HTTP API + 所有 worker
router反向代理 + 限流无状态
ingestergRPC 接入 + WAL + buffer + flush 到 Parquet本地 WAL(≤ flush 窗口)
querierArrow Flight server + DataFusion 执行无状态
compactor周期合并 Parquet + 清理过期数据无状态
alert_manager规则评估 + 升级派发无状态
角色由 [node].roles 配置(或 MS_NODE.ROLES)选择。只有 ingester 持有本地状态(flush 窗口内的 WAL),因此其余角色都能自由扩缩。

部署方式

仓库提供两个 profile:
# 全部在一个进程内 —— 适合评估
docker compose -f deploy/docker/docker-compose.yaml --profile standalone up

# 角色分离 —— 更接近生产
docker compose -f deploy/docker/docker-compose.yaml --profile multirole up

依赖

  • Postgres —— 元数据(FileMeta、流、告警、身份)。
  • 对象存储 —— locals3(及 S3 兼容:MinIO、R2、阿里云 OSS)、azuregcs

运维

  • 单一二进制,所有角色同一镜像。
  • Prometheus /metrics,含丰富的 cache / object_store / ingester / compactor 指标。
  • 健康探针 —— readiness 由 ingester WAL 回放加对象存储往返探测共同把关。
  • TLS + ACME —— 经 [http.tls] 可选自动证书(HTTP-01 challenge,Let’s Encrypt)。
完整设置参考见 配置