mirror of
https://github.com/rakshasa/rtorrent.git
synced 2026-10-14 21:26:17 +00:00
* Fixed 'not' command.
* Improved logging. git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1224 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
+45
-36
@@ -13,6 +13,7 @@ gnuplot << EOF
|
|||||||
# 9) pieces.stats.total_size
|
# 9) pieces.stats.total_size
|
||||||
# 10) pieces.hash.queue_size
|
# 10) pieces.hash.queue_size
|
||||||
#
|
#
|
||||||
|
# file.append = (cat,/foo/bandwidth_stats.,(system.pid)),"timestamp","\"upload rate\"","\"upload total\"","\"download rate\"","\"download total\"","\"memory usage\"","\"sync queue\"","\"block count\"","\"total size\"","\"hash queue size\""
|
||||||
# schedule = log_bandwidth_stats,5,10,((file.append,((cat,/foo/bandwidth_stats.,((system.pid)))),((system.time_seconds)),((throttle.global_up.rate)),((throttle.global_up.total)),((throttle.global_down.rate)),((throttle.global_down.total)),((pieces.memory.current)),((pieces.memory.sync_queue)),((pieces.memory.block_count)),((pieces.stats.total_size)),((pieces.hash.queue_size))))
|
# schedule = log_bandwidth_stats,5,10,((file.append,((cat,/foo/bandwidth_stats.,((system.pid)))),((system.time_seconds)),((throttle.global_up.rate)),((throttle.global_up.total)),((throttle.global_down.rate)),((throttle.global_down.total)),((pieces.memory.current)),((pieces.memory.sync_queue)),((pieces.memory.block_count)),((pieces.stats.total_size)),((pieces.hash.queue_size))))
|
||||||
#
|
#
|
||||||
# 1) system.time_seconds
|
# 1) system.time_seconds
|
||||||
@@ -25,80 +26,88 @@ gnuplot << EOF
|
|||||||
# 6) view.size,seeding
|
# 6) view.size,seeding
|
||||||
# 7) view.size,active
|
# 7) view.size,active
|
||||||
#
|
#
|
||||||
|
# file.append = (cat,/foo/peer_stats.,(system.pid)),"timestamp","\"upload unchoked\"","\"download unchoked\"","\"open sockets\"","leeching","seeding","active"
|
||||||
# schedule = log_peer_stats,5,10,((file.append,((cat,/foo/peer_stats.,((system.pid)))),((system.time_seconds)),((throttle.unchoked_uploads)),((throttle.unchoked_downloads)),((network.open_sockets)),((view.size,leeching)),((view.size,seeding)),((view.size,active))))
|
# schedule = log_peer_stats,5,10,((file.append,((cat,/foo/peer_stats.,((system.pid)))),((system.time_seconds)),((throttle.unchoked_uploads)),((throttle.unchoked_downloads)),((network.open_sockets)),((view.size,leeching)),((view.size,seeding)),((view.size,active))))
|
||||||
#
|
#
|
||||||
|
# Choke groups:
|
||||||
#
|
#
|
||||||
# file.append = (cat,/foo/choke_group_stats.,(system.pid)),"\"timestamp\"","\"leech unchoked\"","\"leech queued\"","\"seed unchoked\"","\"seed queued\""
|
# file.append = (cat,/foo/choke_group_stats.,(system.pid)),"timestamp","\"leech unchoked\"","\"leech queued\"","\"seed unchoked\"","\"seed queued\""
|
||||||
# schedule = log_choke_group_stats,5,10,((file.append,((cat,/foo/choke_group_stats.,((system.pid)))),((system.time_seconds)),((choke_group.up.unchoked,0)),((choke_group.up.queued,0)),((choke_group.up.total,0)),((choke_group.up.unchoked,1)),((choke_group.up.queued,1)),((choke_group.up.total,1))))
|
# schedule = log_choke_group_stats,5,10,((file.append,((cat,/foo/choke_group_stats.,((system.pid)))),((system.time_seconds)),((choke_group.up.unchoked,0)),((choke_group.up.queued,0)),((choke_group.up.total,0)),((choke_group.up.unchoked,1)),((choke_group.up.queued,1)),((choke_group.up.total,1))))
|
||||||
|
#
|
||||||
|
# Mincore stats:
|
||||||
|
#
|
||||||
|
# file.append = (cat,/foo/mincore_stats.,(system.pid)),"timestamp","\"incore cont. /10s\"","\"not incore cont. /10s\"","\"incore new /10s\"","\"not incore new /10s\"","\"incore break /10s\"","\"sync success /10s\"","\"sync failed /10s\"","\"sync not synced /10s\"","\"sync not deallocated /10s\"","\"alloc failed /10s\"","\"allocate velocity /10s\"","\"deallocate velocity /10s\""
|
||||||
|
# log.libtorrent = mincore_stats,(cat,"/foo/mincore_stats.",(system.pid))
|
||||||
|
|
||||||
set terminal png size 1024,600
|
|
||||||
|
set terminal png size 1024,768 enhanced
|
||||||
set xdata time
|
set xdata time
|
||||||
set timefmt "%s"
|
set timefmt "%s"
|
||||||
set format x "%H:%M"
|
set format x "%H:%M"
|
||||||
set format y2 "%.0f"
|
set format y2 "%.0f"
|
||||||
set y2tics
|
set y2tics
|
||||||
set autoscale xfix
|
set autoscale xfix
|
||||||
|
set key autotitle columnhead
|
||||||
grab(x)=(x<min)?min=x:(x>max)?max=x:0;
|
|
||||||
|
|
||||||
set output "output_$1_sockets.png"
|
set output "output_$1_sockets.png"
|
||||||
plot "peer_stats.$1" using 1:7 smooth bezier with lines lw 4 title 'active',\
|
plot "peer_stats.$1" using 1:7 smooth bezier with lines lw 4,\
|
||||||
"peer_stats.$1" using 1:5 smooth bezier with lines lw 4 title 'leeching',\
|
"peer_stats.$1" using 1:5 smooth bezier with lines lw 4,\
|
||||||
"peer_stats.$1" using 1:6 smooth bezier with lines lw 4 title 'seeding',\
|
"peer_stats.$1" using 1:6 smooth bezier with lines lw 4,\
|
||||||
"<awk '{x=1000; if (\$4 < 1000) x=\$4; print \$1,x}' peer_stats.$1" using 1:2 smooth bezier with lines lw 2 title 'open sockets' axis x1y2,\
|
"<awk '{x=1000; if (\$4 < 1000) x=\$4; print \$1,x}' peer_stats.$1" using 1:2 smooth bezier with lines lw 2 axis x1y2,\
|
||||||
"peer_stats.$1" using 1:2 smooth bezier with lines lw 2 title 'upload unchoked' axis x1y2,\
|
"peer_stats.$1" using 1:2 smooth bezier with lines lw 2 axis x1y2,\
|
||||||
"peer_stats.$1" using 1:3 smooth bezier with lines lw 2 title 'download unchoked' axis x1y2
|
"peer_stats.$1" using 1:3 smooth bezier with lines lw 2 axis x1y2
|
||||||
|
|
||||||
# "peer_stats.$1" using 1:4 smooth bezier with lines lw 2 title 'open sockets' axis x1y2,\
|
|
||||||
|
|
||||||
set format y "%.0s %cb"
|
set format y "%.0s %cb"
|
||||||
|
|
||||||
set output "output_$1_bandwidth.png"
|
set output "output_$1_bandwidth.png"
|
||||||
plot "bandwidth_stats.$1" using 1:2 smooth bezier with lines lw 4 title 'Upload rate',\
|
plot "bandwidth_stats.$1" using 1:2 smooth bezier with lines lw 4,\
|
||||||
"bandwidth_stats.$1" using 1:4 smooth bezier with lines lw 4 title 'Download rate',\
|
"bandwidth_stats.$1" using 1:4 smooth bezier with lines lw 4,\
|
||||||
"peer_stats.$1" using 1:2 smooth bezier with lines lw 2 title 'Upload unchoked' axis x1y2,\
|
"peer_stats.$1" using 1:2 smooth bezier with lines lw 2 axis x1y2,\
|
||||||
"peer_stats.$1" using 1:3 smooth bezier with lines lw 2 title 'Download unchoked' axis x1y2
|
"peer_stats.$1" using 1:3 smooth bezier with lines lw 2 axis x1y2
|
||||||
|
|
||||||
set output "output_$1_memory.png"
|
set output "output_$1_memory.png"
|
||||||
plot "bandwidth_stats.$1" using 1:6 smooth bezier with lines lw 4 title 'Memory usage' axis x1y1,\
|
plot "bandwidth_stats.$1" using 1:6 smooth bezier with lines lw 4 axis x1y1,\
|
||||||
"peer_stats.$1" using 1:2 smooth bezier with lines lw 2 title 'Upload unchoked' axis x1y2,\
|
"peer_stats.$1" using 1:2 smooth bezier with lines lw 2 axis x1y2,\
|
||||||
"peer_stats.$1" using 1:3 smooth bezier with lines lw 2 title 'Download unchoked' axis x1y2
|
"peer_stats.$1" using 1:3 smooth bezier with lines lw 2 axis x1y2
|
||||||
|
|
||||||
#set yrange [0:3900000000.0]
|
#set yrange [0:3900000000.0]
|
||||||
#set y2range [0:2000]
|
#set y2range [0:2000]
|
||||||
|
|
||||||
set output "output_$1_pieces.png"
|
set output "output_$1_pieces.png"
|
||||||
plot "bandwidth_stats.$1" using 1:6 smooth bezier with lines lw 4 title 'Memory usage' axis x1y1,\
|
plot "bandwidth_stats.$1" using 1:6 smooth bezier with lines lw 4 axis x1y1,\
|
||||||
"bandwidth_stats.$1" using 1:7 smooth bezier with lines lw 4 title 'Sync queue Memory' axis x1y1,\
|
"bandwidth_stats.$1" using 1:7 smooth bezier with lines lw 4 axis x1y1,\
|
||||||
"<awk '{x=\$12*10; print \$1,x}' mincore_stats.$1" using 1:2 smooth bezier with lines lw 4 title 'Alloc /100s' axis x1y1,\
|
"<awk '{x=\$12*10; print \$1,x}' mincore_stats.$1" using 1:2 smooth bezier with lines lw 4 title 'alloc /100s' axis x1y1,\
|
||||||
"<awk '{x=\$13*10; print \$1,x}' mincore_stats.$1" using 1:2 smooth bezier with lines lw 4 title 'Dealloc /100s' axis x1y1,\
|
"<awk '{x=\$13*10; print \$1,x}' mincore_stats.$1" using 1:2 smooth bezier with lines lw 4 title 'dealloc /100s' axis x1y1,\
|
||||||
"mincore_stats.$1" using 1:7 smooth bezier with lines lw 2 title 'Sync success /10s' axis x1y2,\
|
"mincore_stats.$1" using 1:7 smooth bezier with lines lw 2 axis x1y2,\
|
||||||
"mincore_stats.$1" using 1:8 smooth bezier with lines lw 2 title 'Sync failed /10s' axis x1y2,\
|
"mincore_stats.$1" using 1:8 smooth bezier with lines lw 2 axis x1y2,\
|
||||||
"mincore_stats.$1" using 1:11 smooth bezier with lines lw 2 title 'Alloc failed /10s' axis x1y2,\
|
"mincore_stats.$1" using 1:11 smooth bezier with lines lw 2 axis x1y2,\
|
||||||
"<awk '{x=\$8/10; print \$1,x}' bandwidth_stats.$1" using 1:2 smooth bezier with lines lw 2 title 'Block count /10' axis x1y2,\
|
"<awk '{x=\$8/10; print \$1,x}' bandwidth_stats.$1" using 1:2 smooth bezier with lines lw 2 title 'block count /10' axis x1y2,\
|
||||||
"bandwidth_stats.$1" using 1:10 smooth bezier with lines lw 2 title 'Hash queue count' axis x1y2
|
"bandwidth_stats.$1" using 1:10 smooth bezier with lines lw 2 axis x1y2
|
||||||
|
|
||||||
#set yrange [*:*]
|
#set yrange [*:*]
|
||||||
#set y2range [*:*]
|
#set y2range [*:*]
|
||||||
|
|
||||||
set format y2 "%.0s %cb"
|
set format y2 "%.0s %cb"
|
||||||
set output "output_$1_torrents.png"
|
set output "output_$1_torrents.png"
|
||||||
plot "bandwidth_stats.$1" using 1:6 smooth bezier with lines lw 4 title 'Memory usage' axis x1y1,\
|
plot "bandwidth_stats.$1" using 1:6 smooth bezier with lines lw 4 axis x1y1,\
|
||||||
"bandwidth_stats.$1" using 1:9 smooth bezier with lines lw 2 title 'Pieces total size' axis x1y2
|
"bandwidth_stats.$1" using 1:9 smooth bezier with lines lw 2 axis x1y2
|
||||||
|
|
||||||
set format y "%.0f"
|
set format y "%.0f"
|
||||||
set format y2 "%.0f"
|
set format y2 "%.0f"
|
||||||
|
|
||||||
set output "output_$1_incore.png"
|
set output "output_$1_incore.png"
|
||||||
plot "bandwidth_stats.$1" using 1:(0) smooth bezier with lines title '',\
|
plot "bandwidth_stats.$1" using 1:(0) smooth bezier with lines,\
|
||||||
"mincore_stats.$1" using 1:2 smooth bezier with lines lw 2 title 'Incore cont. /10s' axis x1y1,\
|
"mincore_stats.$1" using 1:2 smooth bezier with lines lw 2 axis x1y1,\
|
||||||
"mincore_stats.$1" using 1:3 smooth bezier with lines lw 4 title 'Incore new /10s' axis x1y2,\
|
"mincore_stats.$1" using 1:3 smooth bezier with lines lw 4 axis x1y2,\
|
||||||
"mincore_stats.$1" using 1:4 smooth bezier with lines lw 2 title 'Not incore cont. /10s' axis x1y1,\
|
"mincore_stats.$1" using 1:4 smooth bezier with lines lw 2 axis x1y1,\
|
||||||
"mincore_stats.$1" using 1:5 smooth bezier with lines lw 4 title 'Not incore new /10s' axis x1y2
|
"mincore_stats.$1" using 1:5 smooth bezier with lines lw 4 axis x1y2
|
||||||
|
|
||||||
|
#
|
||||||
|
# Updated:
|
||||||
|
#
|
||||||
|
|
||||||
set output "output_$1_choke.png"
|
set output "output_$1_choke.png"
|
||||||
set style histogram columnstacked
|
set style histogram columnstacked
|
||||||
set key autotitle columnhead
|
|
||||||
|
|
||||||
plot "choke_group_stats.$1" using 1:2 smooth bezier with lines lw 2,\
|
plot "choke_group_stats.$1" using 1:2 smooth bezier with lines lw 2,\
|
||||||
"" using 1:4 smooth bezier with lines lw 2,\
|
"" using 1:4 smooth bezier with lines lw 2,\
|
||||||
|
|||||||
+13
-7
@@ -177,20 +177,26 @@ as_boolean(const torrent::Object& rawArgs) {
|
|||||||
switch (rawArgs.type()) {
|
switch (rawArgs.type()) {
|
||||||
case torrent::Object::TYPE_VALUE: return rawArgs.as_value();
|
case torrent::Object::TYPE_VALUE: return rawArgs.as_value();
|
||||||
case torrent::Object::TYPE_STRING: return !rawArgs.as_string().empty();
|
case torrent::Object::TYPE_STRING: return !rawArgs.as_string().empty();
|
||||||
case torrent::Object::TYPE_LIST: return !rawArgs.as_list().empty();
|
|
||||||
case torrent::Object::TYPE_MAP: return !rawArgs.as_map().empty();
|
// We need to properly handle argument lists that are single-object
|
||||||
|
// at a higher level.
|
||||||
|
case torrent::Object::TYPE_LIST: return !rawArgs.as_list().empty() && as_boolean(rawArgs.as_list().front());
|
||||||
|
// case torrent::Object::TYPE_MAP: return !rawArgs.as_map().empty();
|
||||||
default: return false;
|
default: return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
torrent::Object
|
torrent::Object
|
||||||
apply_not(rpc::target_type target, const torrent::Object& rawArgs) {
|
apply_not(rpc::target_type target, const torrent::Object& rawArgs) {
|
||||||
if (rawArgs.is_dict_key())
|
bool result;
|
||||||
return (int64_t)!as_boolean(rpc::commands.call_command(rawArgs.as_dict_key().c_str(),
|
|
||||||
rawArgs.as_dict_obj(),
|
|
||||||
target));
|
|
||||||
|
|
||||||
return (int64_t)!as_boolean(rawArgs);
|
if (rawArgs.is_dict_key())
|
||||||
|
result = as_boolean(rpc::commands.call_command(rawArgs.as_dict_key().c_str(), rawArgs.as_dict_obj(),
|
||||||
|
target));
|
||||||
|
else
|
||||||
|
result = as_boolean(rawArgs);
|
||||||
|
|
||||||
|
return (int64_t)!result;
|
||||||
}
|
}
|
||||||
|
|
||||||
torrent::Object
|
torrent::Object
|
||||||
|
|||||||
Reference in New Issue
Block a user