nsmcp::AccessRecordStoreSQLite method scopeDiagnostics (protected)
<instance of nsmcp::AccessRecordStoreSQLite> scopeDiagnostics
Defined in /usr/local/ns/tcl/nsmcp/log-traffic-record-store.tcl
- Testcases:
- No testcase defined.
Source code: if {[:fullPartitionScope]} { set floor [:retentionFloor] if {![${:db} scalar {SELECT EXISTS(SELECT 1 FROM main.files WHERE active=0)}]} { set row [lindex [${:db} execute { SELECT coalesce(sum(n),0) AS examinedRecords,0 AS parseErrors,0 AS oversizedRecords, coalesce(min(first),'') AS earliestAt,coalesce(max(last),'') AS latestAt FROM main.partitions WHERE n>0 }] 0] if {[dict get $row examinedRecords]==0 || [dict get $row earliestAt]>=$floor} { dict set :queryMetrics diagnosticsSource partition-metadata return $row } } # A partially retained partition or an inactive generation cannot use # partition counts. Ready minute rollups preserve the active-file and # retention filters; exact timestamp extrema come from two edge minutes. set end [${:db} scalar { SELECT coalesce(max(slot),0)+60 FROM main.minutes m JOIN temp.nsmcp_record_scope s ON m.fid=s.fid }] set source [:rollupSource [dict create from $floor to [expr {max($floor,$end)}] pathLiteral {}]] set row [lindex [${:db} execute " SELECT coalesce(sum(n),0) AS examinedRecords,0 AS parseErrors,0 AS oversizedRecords, coalesce(min(t),'') AS earliestAt,coalesce(max(t),'') AS latestAt FROM ($source) "] 0] set exact true if {[dict get $row examinedRecords]>0} { foreach {key func} {earliestAt min latestAt max} { set lo [expr {wide(floor([dict get $row $key]/60.0))*60}] set hi [expr {$lo+60}] set value [${:db} scalar "SELECT ${func}(t) FROM temp.nsmcp_record_window WHERE kind=0 AND t>=$lo AND t<$hi"] if {$value eq {}} {set exact false; break} dict set row $key $value } } if {$exact} { dict set :queryMetrics diagnosticsSource minute-rollups return $row } } dict set :queryMetrics diagnosticsSource detailed-rows return [lindex [${:db} execute { SELECT count(*) AS examinedRecords,coalesce(sum(kind=1),0) AS parseErrors, coalesce(sum(kind=2),0) AS oversizedRecords,coalesce(min(t),'') AS earliestAt, coalesce(max(t),'') AS latestAt FROM temp.nsmcp_record_window }] 0]XQL Not present: Generic, PostgreSQL, Oracle
![[i]](/resources/acs-subsite/ZoomIn16.gif)