Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
X
xotcl-request-monitor
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
project-open
xotcl-request-monitor
Commits
94ffa86b
Commit
94ffa86b
authored
May 23, 2014
by
Frank Bergmann
Browse files
Options
Browse Files
Download
Plain Diff
This commit was generated by cvs2svn to track changes on a CVS vendor
branch.
parents
25f71f63
29c2d706
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
55 additions
and
15 deletions
+55
-15
throttle_mod-procs.tcl
tcl/throttle_mod-procs.tcl
+8
-2
index.tcl
www/index.tcl
+13
-5
running.tcl
www/running.tcl
+34
-8
No files found.
tcl/throttle_mod-procs.tcl
View file @
94ffa86b
...
@@ -266,7 +266,7 @@
...
@@ -266,7 +266,7 @@
Throttle instproc add_url_stat
{
url time_used key pa content_type
}
{
Throttle instproc add_url_stat
{
url time_used key pa content_type
}
{
catch
{
my unset running_url
(
$key
,$url
)}
catch
{
my unset running_url
(
$key
,$url
)}
#my log
"### unset running_url(
$key
,
$url
)
$errmsg
"
#my log
"### unset running_url(
$key
,
$url
)
$errmsg
"
if
{[
string
match
text/html*
$content
_type
]}
{
if
{[
string
match
"text/html*"
$content
_type
]}
{
[
Users current_object
]
add_view
$key
[
Users current_object
]
add_view
$key
}
}
response_time_minutes add_url_stat
$url
$time
_used
$key
response_time_minutes add_url_stat
$url
$time
_used
$key
...
@@ -563,6 +563,7 @@
...
@@ -563,6 +563,7 @@
@author Gustaf Neumann
@author Gustaf Neumann
@cvs-id $Id$
@cvs-id $Id$
}
}
Users ad_proc active
{
-full:switch
}
{
Users ad_proc active
{
-full:switch
}
{
Return a list of lists containing information about current
Return a list of lists containing information about current
users. If the switch 'full' is used this list contains
users. If the switch 'full' is used this list contains
...
@@ -614,7 +615,11 @@
...
@@ -614,7 +615,11 @@
}
}
return
[
list
$ip
$auth
]
return
[
list
$ip
$auth
]
}
}
Users ad_proc user_is_active
{
uid
}
{
@return boolean value whether user is active
}
{
my exists pa
(
$uid
)
}
Users ad_proc hits
{
uid
}
{
Users ad_proc hits
{
uid
}
{
@param uid request key
@param uid request key
...
@@ -1155,6 +1160,7 @@ throttle forward max_values %self do %1 set stats
...
@@ -1155,6 +1160,7 @@ throttle forward max_values %self do %1 set stats
throttle forward purge_access_stats %self do Users %proc
throttle forward purge_access_stats %self do Users %proc
throttle forward users %self do Users
throttle forward users %self do Users
throttle forward views_per_minute %self do Users %proc
throttle forward views_per_minute %self do Users %proc
throttle forward user_is_active %self do Users %proc
####
####
# the next procs are for the filters (registered from the -init file
)
# the next procs are for the filters (registered from the -init file
)
...
...
www/index.tcl
View file @
94ffa86b
...
@@ -42,6 +42,9 @@ proc currentSystemLoad {} {
...
@@ -42,6 +42,9 @@ proc currentSystemLoad {} {
set f
[
open
$procloadavg
];
set c
[
read
$f
];
close
$f
set f
[
open
$procloadavg
];
set c
[
read
$f
];
close
$f
return
$c
return
$c
}
}
if
{
!
[
catch
{
exec
sysctl vm.loadavg kern.boottime
}
result
]}
{
return
$result
}
return
[
exec
/usr/bin/uptime
]
return
[
exec
/usr/bin/uptime
]
}
}
...
@@ -55,19 +58,19 @@ proc currentResponseTime {} {
...
@@ -55,19 +58,19 @@ proc currentResponseTime {} {
}
}
set avg_half_hour
[
avg_last_n
$tm
30 cnt
]
set avg_half_hour
[
avg_last_n
$tm
30 cnt
]
if
{
$cnt
> 0
}
{
if
{
$cnt
> 0
}
{
set minstat
"
[
format
%4.
2
f
$avg
_half_hour
]
(last
$cnt
minutes), "
set minstat
"
[
format
%4.
3
f
$avg
_half_hour
]
(last
$cnt
minutes), "
}
else
{
}
else
{
set minstat
""
set minstat
""
}
}
if
{[
llength
$tm
]
>0
}
{
if
{[
llength
$tm
]
>0
}
{
set lminstat
"
[
format
%4.
2
f
[
expr
{[
lindex
$tm
end
]
/1000.0
}]]
(last minute), "
set lminstat
"
[
format
%4.
3
f
[
expr
{[
lindex
$tm
end
]
/1000.0
}]]
(last minute), "
}
else
{
}
else
{
set lminstat
""
set lminstat
""
}
}
if
{[
llength
$hours
]
>0
}
{
if
{[
llength
$hours
]
>0
}
{
set avg_last_day
[
avg_last_n
$hours
24 cnt
]
set avg_last_day
[
avg_last_n
$hours
24 cnt
]
set hourstat
"
[
format
%4.
2
f
[
expr
{[
lindex
$hours
end
]
/1000.0
}]]
(last hour), "
set hourstat
"
[
format
%4.
3
f
[
expr
{[
lindex
$hours
end
]
/1000.0
}]]
(last hour), "
append hourstat
"
[
format
%4.
2
f
$avg
_last_day
]
(last
$cnt
hours)"
append hourstat
"
[
format
%4.
3
f
$avg
_last_day
]
(last
$cnt
hours)"
set server_running
"
$cnt
hours"
set server_running
"
$cnt
hours"
}
else
{
}
else
{
if
{[
llength
$tm
]
>0
}
{
if
{[
llength
$tm
]
>0
}
{
...
@@ -93,7 +96,7 @@ proc currentViews {} {
...
@@ -93,7 +96,7 @@ proc currentViews {} {
set views_per_min_per_user
[
expr
{
60.0*$views_per_sec/
[
lindex
$um
end
]}]
set views_per_min_per_user
[
expr
{
60.0*$views_per_sec/
[
lindex
$um
end
]}]
set view_time
[
expr
{
$views
_per_min_per_user>0 ?
set view_time
[
expr
{
$views
_per_min_per_user>0 ?
" avg. view time:
[
format
%4.1f
[
expr
{
60.0/$views_per_min_per_user
}]]
"
:
""
}]
" avg. view time:
[
format
%4.1f
[
expr
{
60.0/$views_per_min_per_user
}]]
"
:
""
}]
return
"
[
format
%4.1f
$views
_per_sec
]
views/sec,
[
format
%4.
2
f
$views
_per_min_per_user
]
views/min/user,
$view
_time"
return
"
[
format
%4.1f
$views
_per_sec
]
views/sec,
[
format
%4.
3
f
$views
_per_min_per_user
]
views/min/user,
$view
_time"
}
}
...
@@ -255,6 +258,11 @@ if {![catch {ns_conn contentsentlength}]} {
...
@@ -255,6 +258,11 @@ if {![catch {ns_conn contentsentlength}]} {
set background
[
expr
{[
llength
$background
_requests
]
/2
}]
set background
[
expr
{[
llength
$background
_requests
]
/2
}]
append running /$background
append running /$background
}
}
if
{[
ns_info name
]
eq
"NaviServer"
}
{
# add info from background writer
append running /
[
llength
[
ns_writer list
]]
}
array
set thread_avgs
[
throttle thread_avgs
]
array
set thread_avgs
[
throttle thread_avgs
]
if
{[
info
command ::tlf::system_activity
]
ne
""
}
{
if
{[
info
command ::tlf::system_activity
]
ne
""
}
{
...
...
www/running.tcl
View file @
94ffa86b
...
@@ -26,7 +26,13 @@ if {[info command bgdelivery] ne ""} {
...
@@ -26,7 +26,13 @@ if {[info command bgdelivery] ne ""} {
}
}
set
nr_bg
[
expr
{[
llength
$background
_requests
]
/2
}]
set
nr_bg
[
expr
{[
llength
$background
_requests
]
/2
}]
set
nr_req
[
expr
{[
llength
$running
_requests
]
/2
}]
set
nr_req
[
expr
{[
llength
$running
_requests
]
/2
}]
set
title
"Currently Running Requests (
$nr
_req/
$nr
_bg)"
set
counts
$nr
_req/$nr_bg
if
{[
ns_info name
]
eq
"NaviServer"
}
{
set writer_requests
[
ns_writer list
]
append counts /
[
llength
$writer
_requests
]
}
set
title
"Currently Running Requests (
$counts
)"
set
context
[
list
"Running Requests"
]
set
context
[
list
"Running Requests"
]
TableWidget create t1 -volatile
\
TableWidget create t1 -volatile
\
...
@@ -38,12 +44,13 @@ TableWidget create t1 -volatile \
...
@@ -38,12 +44,13 @@ TableWidget create t1 -volatile \
Field url -label
"Url"
Field url -label
"Url"
Field elapsed -label
"Elapsed Time"
-html
{
align right
}
Field elapsed -label
"Elapsed Time"
-html
{
align right
}
Field background -label
"Background"
Field background -label
"Background"
Field progress -label
"Progress"
}
\
}
\
-no_data
"Currently no running requests"
-no_data
"Currently no running requests"
set sortable_requests
[
list
]
set sortable_requests
[
list
]
foreach
{
key elapsed
}
$running
_requests
{
foreach
{
key elapsed
}
$running
_requests
{
foreach
{
requestor url
}
[
split
$key
,
]
break
lassign
[
split
$key
,
]
requestor url
set ms
[
format
%.2f
[
expr
{[
throttle ms -start_time
$elapsed
]
/1000.0
}]]
set ms
[
format
%.2f
[
expr
{[
throttle ms -start_time
$elapsed
]
/1000.0
}]]
if
{[
string
is integer
$requestor
]}
{
if
{[
string
is integer
$requestor
]}
{
acs_user::get -user_id
$requestor
-array user
acs_user::get -user_id
$requestor
-array user
...
@@ -55,9 +62,9 @@ foreach {key elapsed} $running_requests {
...
@@ -55,9 +62,9 @@ foreach {key elapsed} $running_requests {
lappend sortable_requests
[
list
$user
_string
$user
_url
$url
$ms
""
]
lappend sortable_requests
[
list
$user
_string
$user
_url
$url
$ms
""
]
}
}
foreach
{
index entry
}
$background
_requests
{
foreach
{
index entry
}
$background
_requests
{
foreach
{
key elapsed
}
$entry
break
lassign
$entry
key elapsed
foreach
{
requestor url
}
[
split
$key
,
]
break
lassign
[
split
$key
,
]
requestor url
set ms
[
format
%.2f
[
expr
{[
throttle ms -start_time
$elapsed
]
/1000.0
}]]
set ms
[
format
%.2f
[
expr
{[
throttle ms -start_time
$elapsed
]
/
-
1000.0
}]]
if
{[
string
is integer
$requestor
]}
{
if
{[
string
is integer
$requestor
]}
{
acs_user::get -user_id
$requestor
-array user
acs_user::get -user_id
$requestor
-array user
set user_string
"
$user
(first_names)
$user
(last_name)"
set user_string
"
$user
(first_names)
$user
(last_name)"
...
@@ -65,15 +72,34 @@ foreach {index entry} $background_requests {
...
@@ -65,15 +72,34 @@ foreach {index entry} $background_requests {
set user_string
$requestor
set user_string
$requestor
}
}
set user_url
"last-requests?request_key=
$requestor
"
set user_url
"last-requests?request_key=
$requestor
"
lappend sortable_requests
[
list
$user
_string
$user
_url
$url
-$ms
"background"
]
lappend sortable_requests
[
list
$user
_string
$user
_url
$url
$ms
"::bgdelivery"
]
}
if
{[
ns_info name
]
eq
"NaviServer"
}
{
foreach
{
entry
}
$writer
_requests
{
if
{[
llength
$entry
]
!= 8
}
continue
lassign
$entry
starttime thread driver ip fd remaining done clientdata
lassign
$clientdata
requestor url
set size
[
expr
{
$remaining
+$done
}]
set percentage
[
expr
{
$done
*100.0/$size
}]
set progress
[
format
{
%5.2f%% of %5.2f MB
}
$percentage
[
expr
{
$size
/1000000.0
}]]
set ms
[
format
%.2f
[
expr
{([
clock
milliseconds
]
-
$starttime
*1000
)
/-1000.0
}]]
if
{[
string
is integer
$requestor
]}
{
acs_user::get -user_id
$requestor
-array user
set user_string
"
$user
(first_names)
$user
(last_name)"
}
else
{
set user_string
$requestor
}
set user_url
"last-requests?request_key=
$requestor
"
lappend sortable_requests
[
list
$user
_string
$user
_url
$url
$ms
$thread
$progress
]
}
}
}
foreach
r
[
lsort
-decreasing -real -index 3
$sortable
_requests
]
{
foreach
r
[
lsort
-decreasing -real -index 3
$sortable
_requests
]
{
foreach
{
user_string user_url url ms mode
}
$r
break
lassign
$r
user_string user_url url ms mode progress
if
{
$ms
<0
}
{
set
ms
[
expr
{
-1*$ms
}]}
if
{
$ms
<0
}
{
set
ms
[
expr
{
-1*$ms
}]}
t1 add
\
t1 add
\
-user
$user
_string -user.href
$user
_url
\
-user
$user
_string -user.href
$user
_url
\
-url
$url
-elapsed
$ms
-background
$mode
-url
$url
-elapsed
$ms
-background
$mode
-progress
$progress
}
}
set
t1
[
t1 asHTML
]
set
t1
[
t1 asHTML
]
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment