ns::stats::Collector method describe (public)

 <instance of ns::stats::Collector[i]> describe [ -server server ]

Defined in

Return a dictionary describing the NaviServer process, virtual servers, connection pools and network drivers. An optional server argument restricts virtual-server data; process-wide information retains its process scope. Availability fields identify optional information that could not be collected. Does not start sampling or modify the sampling baseline.

Switches:
-server (optional)

Testcases:
No testcase defined.
Source code:
set result [dict create schemaVersion 1 scope process  process [dict create  pid [ns_info pid]  bootTime [ns_info boottime]  version [ns_info patchlevel]  host [ns_info hostname]  uptimeSeconds [ns_info uptime]]  servers {} drivers {} availability {}]

if {![catch {ns_info buildinfo} build]} {
    dict set result process build $build
}
dict set result process platform [dict create  os $::tcl_platform(os)  osVersion $::tcl_platform(osVersion)  machine $::tcl_platform(machine)]
foreach s [ns_info servers] {
    set pools {}
    foreach p [ns_server -server $s pools] {
        set name [expr {$p eq "" ? "default" : $p}]
        set threads [ns_server -server $s -pool $p threads]
        set limits {}
        foreach k {min max maxconnections} {
            if {[dict exists $threads $k]} {
                dict set limits $k [dict get $threads $k]
            }
        }
        dict set pools $name $limits
    }
    set entry [dict create  pools $pools  databasePools [ns_config ns/server/$s/db pools {}] bindings {} availability {}]
    if {![catch {ns_server -server $s modules} modules]} {
        dict set entry modules $modules
        dict set entry availability modules true
    } else {
        dict set entry availability modules false
    }
    if {![catch {ns_driver info} infos]} {
        foreach driver $infos {
            set module [dict get $driver module]
            set mappings {}
            set allMappings true
            if {[catch {ns_config -all ns/module/$module/servers $s {}} mappings]} {
                set mappings [ns_config ns/module/$module/servers $s {}]
                set allMappings false
            }
            if {$mappings ne "" || [dict get $driver server] eq $s} {
                dict set entry bindings $module [dict create  address [dict get $driver address]  port [dict get $driver port]  protocol [dict get $driver protocol]  hostMappings $mappings  hostMappingsComplete $allMappings]
            }
        }
    }
    dict set result servers $s $entry
}

if {![catch {ns_driver info} info]} {
    set drivers {}
    foreach driver $info {
        set entry {}
        foreach k {
            module type server location address port defaultport protocol
            sendwait recvwait recvbufsize sendbufsize libraryversion
        } {
            if {[dict exists $driver $k]} {
                dict set entry $k [dict get $driver $k]
            }
        }
        lappend drivers $entry
    }
    dict set result drivers $drivers
    dict set result availability drivers true
} else {
    dict set result availability drivers false
}
return [:selectServer $result $server]
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: