@@ -100,9 +100,13 @@ namespace vix::commands::logs::analyzer
100100 return " connection reset by peer" ;
101101 }
102102
103- if (line.find (" client closed connection" ) != std::string::npos ||
103+ if (line.find (" client disconnected" ) != std::string::npos ||
104+ line.find (" client_closed" ) != std::string::npos ||
105+ line.find (" client closed connection" ) != std::string::npos ||
104106 line.find (" client prematurely closed connection" ) != std::string::npos ||
105- line.find (" broken pipe" ) != std::string::npos)
107+ line.find (" broken pipe" ) != std::string::npos ||
108+ line.find (" detail=eof" ) != std::string::npos ||
109+ line.find (" eof" ) != std::string::npos)
106110 {
107111 return " client disconnected" ;
108112 }
@@ -136,6 +140,13 @@ namespace vix::commands::logs::analyzer
136140
137141 return {};
138142 }
143+
144+ bool is_normal_network_noise (const std::string &group)
145+ {
146+ return group == " client disconnected" ||
147+ group == " connection reset by peer" ||
148+ group == " websocket disconnected" ;
149+ }
139150 }
140151
141152 RepeatedLogReport analyze_repeated_errors (
@@ -154,13 +165,21 @@ namespace vix::commands::logs::analyzer
154165 if (normalized.empty ())
155166 continue ;
156167
157- ++repeatedCounts[normalized];
158-
159168 const std::string networkGroup =
160169 detect_network_group (normalized);
161170
162171 if (!networkGroup.empty ())
172+ {
163173 ++networkCounts[networkGroup];
174+
175+ if (is_normal_network_noise (networkGroup))
176+ {
177+ ++report.hiddenNormalNoiseLines ;
178+ continue ;
179+ }
180+ }
181+
182+ ++repeatedCounts[normalized];
164183 }
165184
166185 for (const auto &[message, count] : repeatedCounts)
@@ -253,6 +272,14 @@ namespace vix::commands::logs::analyzer
253272 " Detected groups" ,
254273 std::to_string (report.networkDisconnectGroups ));
255274
275+ if (report.hiddenNormalNoiseLines > 0 )
276+ {
277+ vix::cli::util::kv (
278+ out,
279+ " Hidden normal noise" ,
280+ std::to_string (report.hiddenNormalNoiseLines ) + " lines" );
281+ }
282+
256283 if (report.networkGroups .empty ())
257284 {
258285 vix::cli::util::ok_line (
0 commit comments