feat(syslog): 增加 WAL 与分 IP 接入诊断
- 每分钟保存 WAL 全局状态和分 IP 接收统计,历史保留 7 天 - 记录接收、WAL 落盘、Kafka ACK、过滤、背压及丢弃数量 - 增加 wal_max_pending_bytes 和 wal_admission_unavailable 指标 - 增加 TCP pending 当前值及进程内峰值统计 - 网络异常后同一 IP 恢复接收时打印恢复日志 - 提供当前状态及按日期查询诊断历史的接口 - 连接关闭时清理 TCP pending 计数并停止无效重试 - 增加相关单元测试和现场排查文档
This commit is contained in:
+6
-2
@@ -1,6 +1,7 @@
|
||||
package com.netty;
|
||||
|
||||
import com.haobang.dispatch.DeviceContextResolver;
|
||||
import com.haobang.diagnostics.SyslogIpMetricsRegistry;
|
||||
import com.haobang.wal.SyslogWalService;
|
||||
import io.netty.channel.ChannelInitializer;
|
||||
import io.netty.channel.ChannelPipeline;
|
||||
@@ -17,13 +18,16 @@ public class SyslogUdpChannelInitializer extends ChannelInitializer<DatagramChan
|
||||
private final SyslogWalService walService;
|
||||
private final DeviceContextResolver deviceResolver;
|
||||
private final boolean dropInvalidBeforeWal;
|
||||
private final SyslogIpMetricsRegistry ipMetrics;
|
||||
|
||||
SyslogUdpChannelInitializer(Charset syslogCharset, SyslogWalService walService,
|
||||
DeviceContextResolver deviceResolver, boolean dropInvalidBeforeWal) {
|
||||
DeviceContextResolver deviceResolver, boolean dropInvalidBeforeWal,
|
||||
SyslogIpMetricsRegistry ipMetrics) {
|
||||
this.syslogCharset = java.util.Objects.requireNonNull(syslogCharset, "syslogCharset");
|
||||
this.walService = java.util.Objects.requireNonNull(walService, "walService");
|
||||
this.deviceResolver = java.util.Objects.requireNonNull(deviceResolver, "deviceResolver");
|
||||
this.dropInvalidBeforeWal = dropInvalidBeforeWal;
|
||||
this.ipMetrics = java.util.Objects.requireNonNull(ipMetrics, "ipMetrics");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -36,6 +40,6 @@ public class SyslogUdpChannelInitializer extends ChannelInitializer<DatagramChan
|
||||
|
||||
// 添加业务处理器
|
||||
pipeline.addLast("handler", new SyslogMessageHandler(
|
||||
syslogCharset, walService, deviceResolver, dropInvalidBeforeWal));
|
||||
syslogCharset, walService, deviceResolver, dropInvalidBeforeWal, ipMetrics));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user