Skip to content

feat: v2.0 custom patches — CST timezone, configurable health check, FixedWithFallback enhancement - #1

Open
itoywh wants to merge 1 commit into
mainfrom
feat/custom-patches-2.0rc
Open

itoywh wants to merge 1 commit into
mainfrom
feat/custom-patches-2.0rc

Conversation

@itoywh

@itoywh itoywh commented Jun 15, 2026

Copy link
Copy Markdown
Owner

概述

基于 dae v2.0.0rc1 的自定义补丁集,增强节点可用性、健康检查配置化、日志体验,并集成上游 reload 修复与内存优化。

最新部署: 2026-06-18 → 192.168.2.4 (x86_64),commit 3d17895 (v2.0-custom-v6)
构建: GitHub Actions → dae-linux-x86_64


补丁清单

P1: FixedWithFallback 策略支持

文件: component/outbound/dialer_group.go

  • 实现 fixed_fallback(index, timeout, retries, [fallback_policy]) 四参数策略
  • 节点 dead → 紧急探针(NotifyCheckTcp/NotifyCheckDnsUdp)→ 耗尽后 fallback 到其他节点
  • fallback_policy 支持:random / min / min_avg10 / min_moving_avg
  • 互斥锁保护重试状态

P2: FixedWithFallback 增强

文件: component/outbound/dialer_group.go

  • 修复 FixedWithFallback 不跟踪节点延迟的 bug(check_tolerance 失效)
  • 纳秒级超时精度:Unix() -> UnixNano(),修复亚秒 timeout 截断
  • 限频日志:logFixedFallback(),atomic + 10 秒限频

P3: 健康检查完全配置化

文件: component/outbound/dialer/connectivity_check.go

  • 移除 tcp_check_url、udp_check_dns、check_interval 的默认值
  • check_interval=0 -> 完全禁用;字段为空 -> 跳过对应检查
  • IPv4-only 地址自动跳过 IPv6 探测

P4: 节点状态日志

文件: component/outbound/dialer/connectivity_check.go

  • DEAD 日志:Node became DEAD(WARN,健康检查/流量统一)
  • ALIVE 日志:Node became ALIVE(INFO,健康检查发现)
  • TRAFFIC 日志:Node became ALIVE (traffic)(INFO,真实流量恢复发现)

P5: CST 时区优化

文件: pkg/logger/logger.go

  • 使用 cstFormatter,不修改全局 time.Local
  • LoadLocation("Asia/Shanghai") + FixedZone("CST", 8*3600) fallback
  • 值拷贝避免修改共享 entry

P6: daeuniverse#1013 Reload 修复 — async closeTail

文件: control/control_plane.go, control/control_plane_core.go


部署信息

设备 IP 版本 补丁
虚拟机 (x86_64) 192.168.2.4 v2.0-custom-v6 P1-P6

@itoywh itoywh changed the title feat: CST timezone + configurable health check feat: v2.0 custom patches — CST timezone, configurable health check, FixedWithFallback enhancement Jun 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant