feat(syslog): 增加积压采样免采样窗口

- 新增 start-lag-ms 配置,默认15分钟内全量保留
- 在15分钟至1小时之间按10级逐步降低保留率
- 延迟达到1小时后使用普通10%、非标20%的最低保留率
- 校验起始延迟必须小于最低保留率阈值
- 状态接口新增 start_lag_ms 配置展示
- 将采样策略版本升级为 v2
- 更新 Docker Compose 和 v4 升级配置说明
- 补充采样时间边界及非法配置单元测试
This commit is contained in:
王绍宏
2026-09-12 23:43:56 +08:00
parent c868e3befd
commit 87fee6fe69
27 changed files with 1777 additions and 94 deletions
+6 -8
View File
@@ -10,7 +10,7 @@ v3 将以下统计表的热点更新移出 `syslog-consumer-rule` 事实事务
事实事务只批量写事实表并追加一条聚合 Outbox。独立的 Kafka 投影消费者串行更新日统计,之后继续通过
已有的 `STATS.MATERIALIZE` Topic 刷新 `device_device`、`dm_normalize_rule` 和
`device_collect_task`。这样三台 `syslog-consumer-rule` 可以并行写事实,不再同时争抢相同日统计行锁。
`device_collect_task`。单节点和多节点部署都不再让事实写入争抢日统计行锁。
v3 同时增加大日志独立处理链路:
@@ -36,8 +36,8 @@ v3 同时增加大日志独立处理链路:
数据库脚本必须使用 `syslog-consumer-rule` 实际连接的达梦用户执行。
如果现场已经执行过早期 v3 日统计异步投影升级,只执行 `kafka/02-create-large-log-topics.sh` 和本页的
大日志应用配置、验证步骤;不要重复执行数据库升级脚本。
如果现场已经执行过早期 v3 日统计异步投影升级,只执行大日志 Kafka 脚本和应用配置,不要重复执行
数据库升级脚本。
## 第一步:达梦
@@ -117,10 +117,10 @@ PASS: 大日志 Topic 已创建并统一配置。
## 第三步:升级应用
升级 `syslog-serve` 和三台 `syslog-consumer-rule`;`syslog-consumer` 不需要因为本次改造升级。
升级 `syslog-serve` 和现场的 `syslog-consumer-rule`;`syslog-consumer` 不需要因为本次改造升级。
升级前先按 [新增变量配置清单](./config/01-new-environment-variables.md) 修改现场实际使用的 Compose 文件。
三台 `syslog-consumer-rule` 的 Topic、消费组和截断上限必须保持一致。
如果部署了多个 `syslog-consumer-rule`,它们的 Topic、消费组和截断上限必须保持一致。
统计投影默认已经启用。确认现场没有显式配置:
@@ -128,9 +128,7 @@ PASS: 大日志 Topic 已创建并统一配置。
STATS_PROJECTION_ASYNC_ENABLED=false
```
先逐台升级 `syslog-consumer-rule`,可以启动一台观察后再升级另外两台;确认大日志 listener 正常后再
升级 `syslog-serve`。新旧版本滚动期间,同一条原始 Kafka 消息只会被消费组中的一个实例处理,不会因为
滚动升级重复统计。
先升级 `syslog-consumer-rule`;多实例时逐台滚动。确认大日志 listener 正常后再升级 `syslog-serve`。
## 升级后验证
@@ -50,7 +50,7 @@ syslog-serve/docker-compose/docker-compose-serve-prod.yaml
syslog-consumer-rule/docker-compose/docker-compose-consumer-rule-prod.yaml
```
在 `services.syslog-consumer-rule.environment` 中增加,三台实例保持一致:
在 `services.syslog-consumer-rule.environment` 中增加;如果以后部署多实例,各实例保持一致:
```yaml
# 大日志独立消费通道。
@@ -160,4 +160,4 @@ docker compose -f docker-compose-consumer-rule-prod.yaml config
docker compose -f docker-compose-consumer-rule-prod.yaml up -d --force-recreate syslog-consumer-rule
```
建议先升级三台 `syslog-consumer-rule`,确认大日志消费者正常后,再升级 `syslog-serve`。
建议先升级 `syslog-consumer-rule`,确认大日志消费者正常后,再升级 `syslog-serve`。