gustafn
committed
on 05 Aug 19
allow zero-timings in boomerang reports
openacs-4/.../tcl/boomerang-procs.tcl (+2 -2)
178 178                     dict set entries nt_start_time [expr {[dict get $entries nt_req_st] - [dict get $entries nt_nav_st]}]
179 179                     dict set entries nt_tcp_time [expr {[dict get $entries nt_con_end] - [dict get $entries nt_con_st]}]
180 180                     dict set entries nt_request_time [expr {[dict get $entries nt_res_st] - [dict get $entries nt_req_st]}]
181 181                     dict set entries nt_response_time [expr {[dict get $entries nt_res_end] - [dict get $entries nt_res_st]}]
182 182                     dict set entries nt_processing_time [expr {[dict get $entries nt_domcomp] - [dict get $entries nt_res_end]}]
183 183                     dict set entries nt_total_time [expr {[dict get $entries nt_load_end] - [dict get $entries nt_nav_st]}]
184 184
185 185                     #
186 186                     # Sanity checks for the computed fields:
187 187                     # - no *_time can be larger than t_done
188 188                     # - no *_time must be negative
189 189                     # - check for unrealistic high t_done times (caused be technicalities)
190 190                     set t_done [dict get $entries t_done]
191 191                     set max_time [expr {$t_done + 1}]
192 192                     set time_fields {
193 193                         nt_start_time nt_tcp_time nt_request_time nt_response_time
194 194                         nt_processing_time nt_total_time
195 195                     }
196 196                     foreach time_field $time_fields {
197 197                         set v [dict get $entries $time_field]
198                           if {$v <= 0 || $v >= $max_time} {
  198                         if {$v < 0 || $v >= $max_time} {
199 199                             ns_log Warning "boomerang: strange value for $time_field: <$v> computed from $entries"
200 200                             dict set entries $time_field 0
201 201                         }
202 202                     }
203 203                     if {[dict get $entries nt_total_time] + 500 < $t_done} {
204 204                         ns_log Warning "boomerang: nt_total_time [dict get $entries nt_total_time] < t_done $t_done"
205 205                     }
206 206                     set record 1
207 207                 } else {
208 208                     ns_log notice "boomerang: no nt_con_st value in $entries"
209 209                     set record 0
210 210                 }
211 211             }
212 212             #
213 213             # Drop most Navigation Timing timestamps, since we have
214 214             # the relative times (might require more fine tuning).
215 215             #
216 216             foreach field {
217 217                 nt_con_end
218 218                 nt_con_st