7 次代碼提交 7d58cf83f0 ... eaf8ff519a

作者 SHA1 備註 提交日期
  Arne Babenhauserheide eaf8ff519a three paragraphs 2 年之前
  Arne Babenhauserheide 2331d3aef8 give size info before the diagrams 2 年之前
  Arne Babenhauserheide badeb0546d show 60 minutes, too, where applicable 2 年之前
  Arne Babenhauserheide 2a5da95619 month → mo. 2 年之前
  Arne Babenhauserheide c9e99c9d6f add lines that show 2 weeks and 3 months 2 年之前
  Arne Babenhauserheide d45da9f14a refactor image list: extract p img 2 年之前
  Arne Babenhauserheide 1367b71c4e fetchpull: lifetime plots first 2 年之前
共有 2 個文件被更改,包括 31 次插入27 次删除
  1. 11 11
      fetchpull-plot.gnuplot
  2. 20 16
      fetchpull.w

+ 11 - 11
fetchpull-plot.gnuplot

@@ -27,24 +27,24 @@ set cblabel "days since upload"
 set title "fetchpull: requests"
 set term png size 800,600
 set output "fetchpull-get-realtime.png"
-plot "<(grep realtime\\;\\#t fetchpull-stats-get.csv)" using 1:3:(log((column(4)+1))/log(2)) palette lw 1 title "realtime succeeded"
+plot "<(grep realtime\\;\\#t fetchpull-stats-get.csv)" using 1:3:(log((column(4)+1))/log(2)) palette lw 1 title "realtime succeeded", 10 title "10 s" at end  lw 2 lc "#aaaaaa", 60 title "1 min" at end  lw 2 lc "#aaaaaa", 600 title "10 min" at end lw 2 lc "#cccccc"
 replot
 set output "fetchpull-get-small.png"
-plot "<(grep small\\;\\#t fetchpull-stats-get.csv)" using 1:3:(log((column(4)+1))/log(2)) palette lw 1 title "small succeeded"
+plot "<(grep small\\;\\#t fetchpull-stats-get.csv)" using 1:3:(log((column(4)+1))/log(2)) palette lw 1 title "small succeeded", 10 title "10 s" at end  lw 2 lc "#aaaaaa", 60 title "1 min" at end  lw 2 lc "#aaaaaa", 600 title "10 min" at end lw 2 lc "#cccccc"
 replot
 set output "fetchpull-get-bulk.png"
-plot "<(grep bulk\\;\\#t fetchpull-stats-get.csv)" using 1:3:(log((column(4)+1))/log(2)) palette lw 1 title "bulk succeeded"
+plot "<(grep bulk\\;\\#t fetchpull-stats-get.csv)" using 1:3:(log((column(4)+1))/log(2)) palette lw 1 title "bulk succeeded", 10 title "10 s" at end  lw 2 lc "#aaaaaa", 60 title "1 min" at end  lw 2 lc "#aaaaaa", 600 title "10 min" at end lw 2 lc "#cccccc", 3600 title "60 min" at end lw 2 lc "#dddddd"
 replot
 set title "fetchpull: failed requests"
 set term png size 800,600
 set output "fetchpull-get-failed-realtime.png"
-plot "<(grep realtime\\;\\#f fetchpull-stats-get.csv)" using 1:(column(3)<20000? column(3) : 1/0):(log((column(4)+1))/log(2)) palette lw 1 pt 4 title "realtime failed"
+plot "<(grep realtime\\;\\#f fetchpull-stats-get.csv)" using 1:(column(3)<20000? column(3) : 1/0):(log((column(4)+1))/log(2)) palette lw 1 pt 4 title "realtime failed", 10 title "10 s" at end  lw 2 lc "#aaaaaa", 60 title "1 min" at end  lw 2 lc "#aaaaaa", 600 title "10 min" at end lw 2 lc "#cccccc"
 replot
 set output "fetchpull-get-failed-small.png"
-plot "<(grep small\\;\\#f fetchpull-stats-get.csv)" using 1:(column(3)<20000? column(3) : 1/0):(log((column(4)+1))/log(2)) palette lw 1 title "small failed"
+plot "<(grep small\\;\\#f fetchpull-stats-get.csv)" using 1:(column(3)<20000? column(3) : 1/0):(log((column(4)+1))/log(2)) palette lw 1 title "small failed", 10 title "10 s" at end  lw 2 lc "#aaaaaa", 60 title "1 min" at end  lw 2 lc "#aaaaaa", 600 title "10 min" at end lw 2 lc "#cccccc"
 replot
 set output "fetchpull-get-failed-bulk.png"
-plot "<(grep bulk\\;\\#f fetchpull-stats-get.csv)" using 1:(column(3)<20000? column(3) : 1/0):(log((column(4)+1))/log(2)) palette lw 1 title "bulk failed"
+plot "<(grep bulk\\;\\#f fetchpull-stats-get.csv)" using 1:(column(3)<20000? column(3) : 1/0):(log((column(4)+1))/log(2)) palette lw 1 title "bulk failed", 10 title "10 s" at end  lw 2 lc "#aaaaaa", 60 title "1 min" at end  lw 2 lc "#aaaaaa", 600 title "10 min" at end lw 2 lc "#cccccc"
 replot
 # plot inserts
 set output "fetchpull-put.png"
@@ -52,7 +52,7 @@ set title "fetchpull: inserts"
 set ylabel "time to upload (seconds)"
 set xlabel "upload date"
 set cblabel "days until download"
-plot "<(grep realtime\\;\\#t fetchpull-stats-put.csv)" using 1:3:(log((column(4)+1))/log(2)) palette lw 1 title "realtime succeeded", "<(grep small\\;\\#t fetchpull-stats-put.csv)" using 1:3:(log((column(4)+1))/log(2)) palette lw 1 title "small succeeded", "<(grep bulk\\;\\#t fetchpull-stats-put.csv)" using 1:3:(log((column(4)+1))/log(2)) palette lw 1 title "bulk succeeded"
+plot "<(grep realtime\\;\\#t fetchpull-stats-put.csv)" using 1:3:(log((column(4)+1))/log(2)) palette lw 1 title "realtime succeeded", "<(grep small\\;\\#t fetchpull-stats-put.csv)" using 1:3:(log((column(4)+1))/log(2)) palette lw 1 title "small succeeded", "<(grep bulk\\;\\#t fetchpull-stats-put.csv)" using 1:3:(log((column(4)+1))/log(2)) palette lw 1 title "bulk succeeded", 10 title "10 s" at end  lw 2 lc "#aaaaaa", 60 title "1 min" at end  lw 2 lc "#aaaaaa", 600 title "10 min" at end lw 2 lc "#cccccc", 3600 title "60 min" at end lw 2 lc "#dddddd"
 replot
 # plot inserts
 set output "fetchpull-put-failed.png"
@@ -60,7 +60,7 @@ set title "fetchpull: failed inserts"
 set ylabel "time to upload (seconds)"
 set xlabel "upload date"
 set cblabel "days until download"
-plot "<(grep realtime\\;\\#f fetchpull-stats-put.csv)" using 1:(column(3)<20000? column(3) : 1/0):(log((column(4)+1))/log(2)) palette lw 1 pt 4 title "realtime failed", "<(grep small\\;\\#f fetchpull-stats-put.csv)" using 1:(column(3)<20000? column(3) : 1/0):(log((column(4)+1))/log(2)) palette lw 1 title "small failed", "<(grep bulk\\;\\#f fetchpull-stats-put.csv)" using 1:(column(3)<20000? column(3) : 1/0):(log((column(4)+1))/log(2)) palette lw 1 title "bulk failed"
+plot "<(grep realtime\\;\\#f fetchpull-stats-put.csv)" using 1:(column(3)<20000? column(3) : 1/0):(log((column(4)+1))/log(2)) palette lw 1 pt 4 title "realtime failed", "<(grep small\\;\\#f fetchpull-stats-put.csv)" using 1:(column(3)<20000? column(3) : 1/0):(log((column(4)+1))/log(2)) palette lw 1 title "small failed", "<(grep bulk\\;\\#f fetchpull-stats-put.csv)" using 1:(column(3)<20000? column(3) : 1/0):(log((column(4)+1))/log(2)) palette lw 1 title "bulk failed", 10 title "10 s" at end  lw 2 lc "#aaaaaa", 60 title "1 min" at end  lw 2 lc "#aaaaaa", 600 title "10 min" at end lw 2 lc "#cccccc", 3600 title "60 min" at end lw 2 lc "#dddddd"
 replot
 # plot max age of requests
 unset cbtics
@@ -117,11 +117,11 @@ set timefmt "%Y-%m"
 set format x "%Y-%m"
 
 set output "fetchpull-lifetime-realtime-success-count.png"
-plot "<(grep 'realtime;#t' fetchpull-stats-get.csv | sed 's/-..;/;/;s/;[^;]+//;s/;[^;]*//;s/;[^;]*//;s/;/ /g' | sort | uniq -c)" using 2:3:1 palette lw 4 title "realtime succeeded"
+plot "<(grep 'realtime;#t' fetchpull-stats-get.csv | sed 's/-..;/;/;s/;[^;]+//;s/;[^;]*//;s/;[^;]*//;s/;/ /g' | sort | uniq -c)" using 2:3:1 palette lw 4 title "realtime succeeded", 14 title "2 weeks" at begin  lw 2 lc "#aaaaaa", 90 title "3 mo." at begin lw 2 lc "#cccccc"
 set output "fetchpull-lifetime-small-success-count.png"
-plot "<(grep 'small;#t' fetchpull-stats-get.csv | sed 's/-..;/;/;s/;[^;]+//;s/;[^;]*//;s/;[^;]*//;s/;/ /g' | sort | uniq -c)" using 2:3:1 palette lw 4 title "small succeeded"
+plot "<(grep 'small;#t' fetchpull-stats-get.csv | sed 's/-..;/;/;s/;[^;]+//;s/;[^;]*//;s/;[^;]*//;s/;/ /g' | sort | uniq -c)" using 2:3:1 palette lw 4 title "small succeeded", 14 title "2 weeks" at begin  lw 2 lc "#aaaaaa", 90 title "3 mo." at begin lw 2 lc "#cccccc"
 set output "fetchpull-lifetime-bulk-success-count.png"
-plot "<(grep 'bulk;#t' fetchpull-stats-get.csv | sed 's/-..;/;/;s/;[^;]+//;s/;[^;]*//;s/;[^;]*//;s/;/ /g' | sort | uniq -c)" using 2:3:1 palette lw 4 title "bulk succeeded"
+plot "<(grep 'bulk;#t' fetchpull-stats-get.csv | sed 's/-..;/;/;s/;[^;]+//;s/;[^;]*//;s/;[^;]*//;s/;/ /g' | sort | uniq -c)" using 2:3:1 palette lw 4 title "bulk succeeded", 14 title "2 weeks" at begin  lw 2 lc "#aaaaaa", 90 title "3 mo." at begin lw 2 lc "#cccccc"
 
 replot
 quit

+ 20 - 16
fetchpull.w

@@ -395,7 +395,7 @@ define : discarding-processor message
 
 define : help args
     format : current-output-port
-           . "~a [-i] [--help | --version | --test | YYYY-mm-dd]
+           . "~a [-i] [--help | --version | --test | --site [target-folder] | YYYY-mm-dd]
 
 Options:
         -i    load the script and run an interactive REPL."
@@ -799,21 +799,25 @@ define : website-content port
            head : meta : @ (charset "utf-8")
                   title ,title
            body : h1 ,title
-             p "These are the fetch-pull statistics. They provide an estimate of lifetimes of real files in Freenet and a somewhat early warning when network quality should degrade. Details are explained below the diagrams."
-             p : img : @ (src "fetchpull-get-realtime.png") (alt "fetch-pull realtime download graph")
-             p : img : @ (src "fetchpull-get-small.png") (alt "fetch-pull small download graph")
-             p : img : @ (src "fetchpull-get-bulk.png") (alt "fetch-pull bulk download graph")
-             p : img : @ (src "fetchpull-get-failed-realtime.png") (alt "fetch-pull failed realtime download graph")
-             p : img : @ (src "fetchpull-get-failed-small.png") (alt "fetch-pull failed small download graph")
-             p : img : @ (src "fetchpull-get-failed-bulk.png") (alt "fetch-pull failed bulk download graph")
-             p : img : @ (src "fetchpull-put.png") (alt "fetch-pull upload graph")
-             p : img : @ (src "fetchpull-put-failed.png") (alt "fetch-pull failed upload graph")
-             p : img : @ (src "fetchpull-lifetime-realtime.png") (alt "lifetime plot: time per download, realtime")
-             p : img : @ (src "fetchpull-lifetime-small.png") (alt "lifetime plot: time per download, small bulk")
-             p : img : @ (src "fetchpull-lifetime-bulk.png") (alt "lifetime plot: time per download, large bulk")
-             p : img : @ (src "fetchpull-lifetime-realtime-success-count.png") (alt "lifetime plot: successes per month, realtime")
-             p : img : @ (src "fetchpull-lifetime-small-success-count.png") (alt "lifetime plot: successes per month, small bulk")
-             p : img : @ (src "fetchpull-lifetime-bulk-success-count.png") (alt "lifetime plot: successes per month, large bulk")
+             p "These are the fetch-pull statistics. They provide an estimate of lifetimes of real files in Freenet and a somewhat early warning when network quality should degrade."
+             p "Realtime are 80 bytes. Small are 128 kiB. Bulk is 1MiB."
+             p "Further details are explained below the diagrams."
+             ,@ map : λ (attributes) : ` p : img ,attributes
+               '
+                 @ (src "fetchpull-lifetime-realtime-success-count.png") (alt "lifetime plot: successes per month, realtime")
+                 @ (src "fetchpull-lifetime-small-success-count.png") (alt "lifetime plot: successes per month, small bulk")
+                 @ (src "fetchpull-lifetime-bulk-success-count.png") (alt "lifetime plot: successes per month, large bulk")
+                 @ (src "fetchpull-get-realtime.png") (alt "fetch-pull realtime download graph")
+                 @ (src "fetchpull-get-small.png") (alt "fetch-pull small download graph")
+                 @ (src "fetchpull-get-bulk.png") (alt "fetch-pull bulk download graph")
+                 @ (src "fetchpull-get-failed-realtime.png") (alt "fetch-pull failed realtime download graph")
+                 @ (src "fetchpull-get-failed-small.png") (alt "fetch-pull failed small download graph")
+                 @ (src "fetchpull-get-failed-bulk.png") (alt "fetch-pull failed bulk download graph")
+                 @ (src "fetchpull-put.png") (alt "fetch-pull upload graph")
+                 @ (src "fetchpull-put-failed.png") (alt "fetch-pull failed upload graph")
+                 @ (src "fetchpull-lifetime-realtime.png") (alt "lifetime plot: time per download, realtime")
+                 @ (src "fetchpull-lifetime-small.png") (alt "lifetime plot: time per download, small bulk")
+                 @ (src "fetchpull-lifetime-bulk.png") (alt "lifetime plot: time per download, large bulk")
              h2 "explanation"
              p "Files uploaded regularly with the download attempted after some delay. 
 Realtime is uploaded with realtime priority, small and bulk with bulk priority.