# portable soak 运行配置。 # 复制为 .env 后可以在远端直接调整;所有路径默认相对 package 根目录。 # 最大运行轮次。重复执行 run_soak.sh 时会从已有最后一轮之后继续编号。 # 正整数表示固定运行轮次;负数(例如 -1)表示持续运行不自动停止;0 非法。 MAX_RUNS=3 # 两轮之间等待秒数。做连续无等待验收时设置为 0。 INTERVAL_SECS=0 # 连续运行的时间预算,单位秒。0 表示不启用;启用后会在每轮结束时检查并自然停止。 # 24 小时稳定性测试设置为 86400。 STOP_AFTER_SECS=0 # 要运行的 RIR 列表,逗号分隔。 # 合法值只有:afrinic, apnic, arin, lacnic, ripe。 # 示例:RIRS=apnic,arin 或 RIRS=afrinic,apnic,arin,lacnic,ripe RIRS=afrinic,apnic,arin,lacnic,ripe # 运行根目录。默认使用 package 根目录;如需把产物写到独立数据盘,可改成绝对路径。 RUN_ROOT="${PACKAGE_ROOT}" # 保留最近多少轮 run 目录。24 小时稳定性测试默认使用最近 100 轮。 RETAIN_RUNS=10 # 每轮完成并复制出 run 产物后,是否清理 tmp/daemon-run_xxxx,避免 tmp 与 runs 双份占用。 CLEAN_TMP_AFTER_RUN=0 # 是否输出 compact report JSON。1 表示启用,0 表示关闭。 OUTPUT_COMPACT_REPORT=1 # 是否复用持久 rsync mirror。1 表示跨 run 复用;失败隔离数据库时也不会清理 mirror。 ALLOW_RSYNC_MIRROR_REUSE=1 # rsync 同步/去重 scope。 # module-root 表示扩大实际拉取到 rsync module 根目录,并在同一 module 下复用成功拉取结果; # host 表示按 rsync host 做失败短路,但实际拉取仍限定当前发布点,避免同一不可达 host 重复等待超时; # publication-point 表示只按当前发布点去重。 RSYNC_SCOPE=module-root # 前一轮失败或不完整时,是否隔离旧数据库和运行态目录后强制下一轮 snapshot。 # 建议保持 1;设置为 0 时,检测到前一轮失败会直接停止。 FAILURE_SNAPSHOT_RESET=1 # 每隔多少轮执行一次 db_stats --exact。设置为空或 0 表示关闭 exact 统计。 DB_STATS_EXACT_EVERY=3 # 是否开启 ours RP progress log。1 表示开启。 RPKI_PROGRESS_LOG=1 # progress log 慢步骤阈值,单位秒。 RPKI_PROGRESS_SLOW_SECS=10 # phase2 stage fresh 慢发布点阈值,单位毫秒。 RPKI_PROGRESS_STAGE_FRESH_SLOW_MS=1000 # phase2 PP 控制面慢发布点阈值,单位毫秒。 RPKI_PROGRESS_PP_CONTROL_SLOW_MS=100 # 是否在运行前尝试禁用 rpki-client timer 并杀掉竞争 RP 进程。 DISABLE_COMPETING_RPS=1 # 传给 rpki 子进程的额外参数。多个参数用空格分隔。 # 示例:RPKI_EXTRA_ARGS="--enable-roa-validation-cache" # 实验性 transport 预热:RPKI_EXTRA_ARGS="--enable-transport-request-prefetch --enable-roa-validation-cache" RPKI_EXTRA_ARGS="" # 是否为每轮输出 timing profile 到 runs/run_xxxx/analyze/timing.json。 # 性能 profile 或打点验证时设置为 1;普通 soak 建议保持 0,避免额外开销。 RPKI_ANALYZE=0 # 长期稳定性测试 runner 配置。运行命令:./run_24h_soak_with_metrics.sh # 总运行时长,单位秒;0 表示持续运行不自动停止;如需 24 小时自然停止可设置为 86400。 SOAK_DURATION_SECS=0 # 小时报告间隔,单位秒。正式运行使用 3600;短周期验证可设置为 60。 HOURLY_REPORT_INTERVAL_SECS=3600 # 24 小时 runner 覆盖 run 保留数量;按 #062 要求默认保留最近 100 个 run。 SOAK_RETAIN_RUNS=100 # 是否启动 rpki_artifact_metrics sidecar。 START_METRICS_SERVICE=1 # 24 小时 runner 退出时是否停止 metrics sidecar。默认保留,方便 Prometheus/Grafana 继续展示最后状态。 STOP_METRICS_SERVICE_ON_EXIT=0 # metrics sidecar 监听地址。Prometheus 容器通过 host.docker.internal 访问。 METRICS_LISTEN=0.0.0.0:9556 METRICS_POLL_SECS=5 METRICS_INSTANCE=remote231-24h # 是否启动 package 内置 Prometheus/Grafana monitor stack。 START_MONITOR_STACK=1 # 24 小时 runner 退出时是否停止 monitor stack。默认保留,方便继续查看最后状态;数据 volume 会保留。 STOP_MONITOR_STACK_ON_EXIT=0 # Prometheus/Grafana 监控数据保留周期。 PROMETHEUS_RETENTION=7d # 是否发送每小时 Feishu 摘要。需要配置 FEISHU_WEBHOOK_SCRIPT 或 FEISHU_WEBHOOK_URL。 SEND_FEISHU=1 # 只打印 Feishu 消息,不真实发送。联调时可设置为 1。 FEISHU_DRY_RUN=0 # 可选:复用 feishu-webhook skill 的发送脚本路径。 # 示例:FEISHU_WEBHOOK_SCRIPT=/home/yuyr/.codex/skills/user/feishu-webhook/scripts/send_feishu_text.py FEISHU_WEBHOOK_SCRIPT= # 小时报告异常判定阈值。 WALL_WARN_SECS=140 VRP_MIN=900000 VAPS_MIN=1000 PP_MIN=50000 # warning 只汇总展示;默认不作为 incident 条件。设置为非负数才启用阈值。 WARNING_MAX=-1 # 可选覆盖路径;默认由 package 自动推导。 # BIN_DIR="${PACKAGE_ROOT}/bin" # FIXTURE_DIR="${PACKAGE_ROOT}/fixtures" # DB_DIR="${RUN_ROOT}/state/db" # META_DIR="${RUN_ROOT}/state/meta" # TMP_DIR="${RUN_ROOT}/tmp" # RSYNC_MIRROR_ROOT="${RUN_ROOT}/state/rsync-mirror"