mbproxy: add keepalive / connection monitoring
The DL205/DL260 ECOM emits no TCP keepalives, so an idle backend socket can be silently dropped by a middlebox (switch, firewall, NAT) after 2-5 minutes. Enable OS SO_KEEPALIVE on backend and accepted upstream sockets, and drive a periodic synthetic FC03 heartbeat on each idle backend socket so a dead path is detected before a real client request hits it. Controlled by Connection.Keepalive (ON by default). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -108,7 +108,10 @@ internal sealed class StatusSnapshotBuilder
|
||||
CacheInvalidations: 0,
|
||||
CacheEntryCount: 0,
|
||||
CacheBytes: 0,
|
||||
ResponseDropForFullUpstream: 0);
|
||||
ResponseDropForFullUpstream: 0,
|
||||
BackendHeartbeatsSent: 0,
|
||||
BackendHeartbeatsFailed: 0,
|
||||
BackendIdleDisconnects: 0);
|
||||
|
||||
long connectsSuccess = counters.ConnectsSuccess;
|
||||
long connectsFailed = counters.ConnectsFailed;
|
||||
@@ -152,7 +155,10 @@ internal sealed class StatusSnapshotBuilder
|
||||
CacheMissCount: counters.CacheMissCount,
|
||||
CacheInvalidations: counters.CacheInvalidations,
|
||||
CacheEntryCount: counters.CacheEntryCount,
|
||||
CacheBytes: counters.CacheBytes),
|
||||
CacheBytes: counters.CacheBytes,
|
||||
BackendHeartbeatsSent: counters.BackendHeartbeatsSent,
|
||||
BackendHeartbeatsFailed: counters.BackendHeartbeatsFailed,
|
||||
BackendIdleDisconnects: counters.BackendIdleDisconnects),
|
||||
Bytes: new PlcBytesStatus(
|
||||
UpstreamIn: counters.BytesUpstreamIn,
|
||||
UpstreamOut: counters.BytesUpstreamOut)));
|
||||
|
||||
Reference in New Issue
Block a user