| |
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 |