1 ##########################################################
2 # Configuration file for innreport (3.*).
5 # Tested with INN 2.3, 2.1, 1.7.2 and 1.5.1.
7 # (c) 1997, 1998, 1999 by Fabien Tassin <fta@sofaraway.org>
9 ##########################################################
15 unknown true; # want unknown entries.
16 max_unknown 50; # max unknown entries to display.
18 module "innreport_inn"; # ${libpath}/${module}.pm
19 unwanted_log "unwanted.log"; # ${logpath}/${unwanted_log}
22 graph true; # need 'html'
23 archive true; # use false to keep only the latest HTML report.
24 index "index.html"; # name of the HTML index file.
25 # html_dir "/var/www/News/stats"; # default to pathhttp in inn.conf
26 img_dir "pics"; # images will go to ${html_dir}/${img_dir}
27 cycle none; # use a number or 'none'.
28 separator "."; # use a valid filename character.
29 title "Daily Usenet report";
30 # title "Daily Usenet report for <A HREF=\"/News/stats/\">news.y.z</A>";
31 # footer "Local contact: <A HREF=\"mailto:x@y.z\">x@y.z</A>";
32 # html_body "BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\"";
33 # html_header_file "header.html"; # ${html_dir}/${html_header_file}
34 # html_footer_file "footer.html"; # ${html_dir}/${html_footer_file}
35 graph_width 550; # graph width (in pixels)
36 transparent true; # graph background transparent ?
37 graph_fg "#000000"; # graph foreground color.
38 graph_bg "#FFFFFF"; # graph background color.
41 ###########################################################################
49 title "Incoming feeds";
50 name "Offered|Accepted|Volume";
51 value "total(%innd_offered) | total(%innd_accepted) |
52 bytes(total(%inn_flow_size))";
55 title "Outgoing feeds";
56 name "Offered|Accepted|Volume";
57 value "total(%innfeed_offered) + total(%nntplink_offered) +
58 total(%innxmit_offered) | total(%innfeed_accepted) +
59 total(%nntplink_accepted) + total(%innxmit_accepted) |
60 bytes(total(%innfeed_accepted_size) +
61 total(%innfeed_rejected_size) +
62 total(%innxmit_bytes) +
63 total(%innxmit_accepted_size) +
64 total(%innxmit_rejected_size))";
67 title "Incoming feeds";
74 value "val2"; # Incoming feeds: Offered
79 value "val3"; # Incoming feeds: Accepted
83 title "Outgoing feeds";
90 value "val5"; # Outgoing feeds: Offered
95 value "val6"; # Outgoing feeds: Accepted
106 value "byte(val4)"; # Incoming feeds: Volume
111 value "byte(val7)"; # Outgoing feeds: Volume
116 ###########################################################################
120 # skip true; # used to skip a section.
121 title "Log entries by program:";
123 sort "$prog_type{$b} <=> $prog_type{$a}";
124 # text false; # to skip this section in the text report
125 # html false; # to skip this section in the HTML report
130 format_total "TOTAL: %-39.39s";
137 # text false; # to skip this column in the text report
138 value "$prog_type{$key}";
139 total "total(%prog_type)";
145 # html false; # to skip this column in the HTML report
146 value "$prog_type{$key} / total(%prog_type) * 100";
152 value "bytes($prog_size{$key})";
153 total "bytes(total(%prog_size))";
159 value "$prog_size{$key} / total(%prog_size) * 100";
166 title "History cache:";
168 sort "$innd_his{$b} <=> $innd_his{$a}";
173 format_total "TOTAL: %-50.50s";
180 value "$innd_his{$key}";
181 total "total(%innd_his)";
187 value "100 * $innd_his{$key} / total(%innd_his)";
194 title "History cache:";
196 sort "$innd_cache{$b} <=> $innd_cache{$a}";
201 format_total "TOTAL: %-50.50s";
208 value "$innd_cache{$key}";
209 total "total(%innd_cache)";
215 value "100 * $innd_cache{$key} / total(%innd_cache)";
222 data "%innd_time_time";
227 format_total "TOTAL: %-8.8s";
228 total "time_ms($innd_time_times)";
233 value "time_ms($innd_time_time{$key})";
234 total "time_ms(total(%innd_time_time))";
240 value "100 * $innd_time_time{$key} / $innd_time_times";
241 total "100 * total(%innd_time_time) /
247 value "$innd_time_num{$key}";
255 value "$innd_time_min{$key}";
263 value "$innd_time_time{$key} /
264 ($innd_time_num{$key} ? $innd_time_num{$key} : 1)";
272 value "$innd_time_max{$key}";
278 section innfeed_timer {
279 title "INNfeed timer:";
280 data "%innfeed_time_time";
285 format_total "TOTAL: %-8.8s";
286 total "time_ms($innfeed_time_times)";
291 value "time_ms($innfeed_time_time{$key})";
292 total "time_ms(total(%innfeed_time_time))";
298 value "100 * $innfeed_time_time{$key} / $innfeed_time_times";
299 total "100 * total(%innfeed_time_time) /
300 $innfeed_time_times";
305 value "$innfeed_time_num{$key}";
313 value "$innfeed_time_min{$key}";
321 value "$innfeed_time_time{$key} /
322 ($innfeed_time_num{$key} ? $innfeed_time_num{$key} : 1)";
330 value "$innfeed_time_max{$key}";
336 section nnrpd_timer {
337 title "nnrpd timer:";
338 data "%nnrpd_time_time";
343 format_total "TOTAL: %-8.8s";
344 total "time_ms($nnrpd_time_times)";
349 value "time_ms($nnrpd_time_time{$key})";
350 total "time_ms(total(%nnrpd_time_time))";
356 value "100 * $nnrpd_time_time{$key} / $nnrpd_time_times";
357 total "100 * total(%nnrpd_time_time) /
363 value "$nnrpd_time_num{$key}";
371 value "$nnrpd_time_min{$key}";
379 value "$nnrpd_time_time{$key} /
380 ($nnrpd_time_num{$key} ? $nnrpd_time_num{$key} : 1)";
388 value "$nnrpd_time_max{$key}";
394 section innd_control {
395 title "Control commands to INND:";
396 data "%innd_control";
401 format_total "TOTAL: %-64.64s";
407 value "$innd_control{$key}";
409 total "total(%innd_control)";
413 section innd_newgroup {
414 title "Newsgroups created:";
415 data "%innd_newgroup";
420 format_total "TOTAL%-66.66s";
425 value "$innd_newgroup{$key}";
431 section innd_changegroup {
432 title "Newsgroups changed:";
433 data "%innd_changegroup";
438 format_total "TOTAL%-63.63s";
444 value "$innd_changegroup{$key}";
449 section innd_rmgroup {
450 title "Newsgroups removed:";
451 data "%innd_rmgroup";
456 format_total "TOTAL: %-71.71s";
461 section controlchan {
462 title "Control Channel:";
463 data "%controlchan_who";
468 format_total "TOTAL%-20.20s";
473 value "$controlchan_new{$key}";
475 total "total(%controlchan_new)";
479 value "$controlchan_rm{$key}";
481 total "total(%controlchan_rm)";
485 value "$controlchan_other{$key}";
487 total "total(%controlchan_other)";
491 value "$controlchan_skippgp{$key}";
493 total "total(%controlchan_skippgp)";
497 value "$controlchan_doit{$key}";
499 total "total(%controlchan_doit)";
503 value "$controlchan_ok{$key}";
505 total "total(%controlchan_ok)";
509 section innd_connect {
510 title "Incoming Feeds (INN):";
511 data "%innd_seconds";
512 sort "$innd_accepted{$b} <=> $innd_accepted{$a}";
516 format_name "%-21.21s";
519 format_total "TOTAL: %-17.17s";
526 value "$innd_connect{$key}";
527 total "total(%innd_connect)";
533 value "$innd_offered{$key}";
534 total "total(%innd_offered)";
540 value "$innd_accepted{$key}";
541 total "total(%innd_accepted)";
547 value "$innd_refused{$key}";
548 total "total(%innd_refused)";
554 value "$innd_rejected{$key}";
555 total "total(%innd_rejected)";
561 value "$innd_offered{$key} == 0 ? 0 :
562 $innd_accepted{$key} / $innd_offered{$key} * 100";
563 total "total(%innd_offered) == 0 ? 0 :
564 total(%innd_accepted) / total(%innd_offered) * 100";
570 value "time($innd_seconds{$key})";
571 total "time(total(%innd_seconds))";
574 title "Articles received by server";
576 sort "%innd_accepted";
578 name "Articles accepted";
580 value "%innd_accepted";
583 name "Articles refused";
585 value "%innd_refused";
588 name "Articles rejected";
590 value "%innd_rejected";
595 section innd_incoming_vol {
596 title "Incoming Volume (INN):";
597 data "%innd_seconds";
598 sort "$innd_stored_size{$b} <=> $innd_stored_size{$a}";
604 format_total "TOTAL: %-17.17s";
610 value "bytes($innd_stored_size{$key})";
611 total "bytes(total(%innd_stored_size))";
616 value "bytes($innd_duplicated_size{$key})";
617 total "bytes(total(%innd_duplicated_size))";
622 value "bytes($innd_stored_size{$key} +
623 $innd_duplicated_size{$key})";
624 total "bytes(total(%innd_stored_size) +
625 total(%innd_duplicated_size))";
631 value "$innd_offered_size{$key} == 0 ? 0 :
632 $innd_stored_size{$key} / $innd_offered_size{$key} * 100";
633 total "total(%innd_offered_size) == 0 ? 0 :
634 total(%innd_stored_size) / total(%innd_offered_size) * 100";
639 value "bytes(($innd_stored_size{$key} +
640 $innd_duplicated_size{$key}) /
641 ($innd_accepted{$key} +
642 $innd_rejected{$key}))";
643 total "bytes((total(%innd_stored_size) +
644 total(%innd_duplicated_size)) /
645 (total(%innd_accepted) +
646 total(%innd_rejected)))";
651 value "time($innd_seconds{$key})";
652 total "time(total(%innd_seconds))";
655 title "Incoming Volume received by server";
657 sort "%innd_stored_size";
659 name "Accepted Volume";
661 value "%innd_stored_size";
664 name "Duplicated Volume";
666 value "%innd_duplicated_size";
672 title "Incoming articles:";
679 format_total "TOTAL: %-20.20s";
680 total "time(total(%inn_flow_time))";
685 value "$inn_flow{$key}";
687 total "total(%inn_flow)";
692 value "$inn_flow{$key} / $inn_flow_total * 100";
699 value "$inn_flow{$key} / $inn_flow_time{$key}";
701 total "total(%inn_flow) / total(%inn_flow_time)";
705 value "bytes($inn_flow_size{$key})";
707 total "bytes(total(%inn_flow_size))";
712 value "$inn_flow_size{$key} /
713 total(%inn_flow_size) * 100";
720 value "$inn_flow_size{$key} /
721 $inn_flow_time{$key} / 1024";
723 total "total(%inn_flow_size) /
724 total(%inn_flow_time) / 1024";
727 title "Incoming articles";
731 value "%inn_flow_labels";
740 title "Incoming articles (size)";
744 value "%inn_flow_labels";
748 factor 3686400; # 3600 * 1024
749 value "%inn_flow_size";
755 title "CNFS buffer status:";
761 format_total "TOTAL: %-6.6s";
767 value "$cnfsstat{$key}";
768 format_total "-%12s";
774 value "bytes($cnfsstat_size{$key})";
775 total "bytes(total(%cnfsstat_size))";
780 value "bytes($cnfsstat_used{$key})";
781 total "bytes(total(%cnfsstat_used))";
786 value "$cnfsstat_used{$key} /
787 $cnfsstat_size{$key} * 100";
789 total "total(%cnfsstat_used) /
790 total(%cnfsstat_size) * 100";
796 value "$cnfsstat_cycles{$key}";
797 total "total(%cnfsstat_cycles)";
802 value "$cnfsstat_rate{$key} /
803 $cnfsstat_samples{$key} / 1024";
805 total "total(%cnfsstat_rate) /
806 total(%cnfsstat_samples) / 1024";
811 value "$cnfsstat_size{$key} /
812 ($cnfsstat_rate{$key} /
813 $cnfsstat_samples{$key}) / 86400";
820 section inn_unwanted {
821 title "Sites sending bad articles:";
823 sort "$inn_badart{$b} <=> $inn_badart{$a}";
829 format_total "TOTAL: %-16.16s";
836 value "$inn_badart{$key}";
837 total "total(%inn_badart)";
843 value "$inn_uw_ng_s{$key}";
844 total "total(%inn_uw_ng_s)";
850 value "$inn_uw_dist_s{$key}";
851 total "total(%inn_uw_dist_s)";
857 value "$inn_duplicate{$key}";
858 total "total(%inn_duplicate)";
864 value "$inn_unapproved{$key}";
865 total "total(%inn_unapproved)";
871 value "$inn_tooold{$key}";
872 total "total(%inn_tooold)";
878 value "$inn_uw_site{$key}";
879 total "total(%inn_uw_site)";
885 value "$inn_linecount{$key}";
886 total "total(%inn_linecount)";
892 value "$innd_others{$key}";
893 total "total(%innd_others)";
897 section inn_unwanted_group {
898 title "Unwanted newsgroups:";
899 top 20; # default 'top' value or use 'top_text' and 'top_html'
900 # to specify different values for text and HTML reports.
902 sort "$inn_uw_ng{$b} <=> $inn_uw_ng{$a}";
907 format_total "TOTAL: %-64.64s";
914 value "$inn_uw_ng{$key}";
915 total "total(%inn_uw_ng)";
919 section inn_unwanted_dist {
920 title "Unwanted distributions:";
923 sort "$inn_uw_dist{$b} <=> $inn_uw_dist{$a}";
928 format_total "TOTAL: %-64.64s";
935 value "$inn_uw_dist{$key}";
936 total "total(%inn_uw_dist)";
940 section inn_unwanted_unapp {
941 title "Supposedly-moderated groups with unmoderated postings:";
943 data "%inn_unapproved_g";
944 sort "$inn_unapproved_g{$b} <=> $inn_unapproved_g{$a}";
949 format_total "TOTAL: %-64.64s";
956 value "$inn_unapproved_g{$key}";
957 total "total(%inn_unapproved_g)";
961 section inn_unwanted_path {
962 title "Unwanted sites in Path:";
964 data "%inn_site_path";
965 sort "$inn_site_path{$b} <=> $inn_site_path{$a}";
970 format_total "TOTAL: %-64.64s";
977 value "$inn_site_path{$key}";
978 total "total(%inn_site_path)";
983 title "INND Perl filter:";
985 data "%innd_filter_perl";
986 sort "$innd_filter_perl{$b} <=> $innd_filter_perl{$a}";
991 format_total "TOTAL: %-64.64s";
998 value "$innd_filter_perl{$key}";
999 total "total(%innd_filter_perl)";
1003 section innd_python {
1004 title "INND Python filter:";
1006 data "%innd_filter_python";
1007 sort "$innd_filter_python{$b} <=> $innd_filter_python{$a}";
1012 format_total "TOTAL: %-64.64s";
1019 value "$innd_filter_python{$key}";
1020 total "total(%innd_filter_python)";
1025 title "NoCeM on Spool:";
1026 data "%nocem_goodsigs";
1027 sort "$nocem_goodsigs{$b} <=> $nocem_goodsigs{$a}";
1032 format_total "TOTAL: %-40.40s";
1038 value "$nocem_goodsigs{$key}";
1039 total "total(%nocem_goodsigs)";
1044 value "$nocem_badsigs{$key}";
1045 total "total(%nocem_badsigs)";
1050 value "$nocem_newids{$key}";
1051 total "total(%nocem_newids)";
1056 value "$nocem_totalids{$key}";
1057 total "total(%nocem_totalids)";
1061 section innd_no_permission {
1062 title "INND no permission servers:";
1063 data "%innd_no_permission";
1064 sort "$innd_no_permission{$b} <=> $innd_no_permission{$a}";
1069 format_total "TOTAL: %-64.64s";
1076 value "$innd_no_permission{$key}";
1077 total "total(%innd_no_permission)";
1081 section innd_max_conn {
1082 title "Too many incoming connections (innd):";
1083 data "%innd_max_conn";
1084 sort "$innd_max_conn{$b} <=> $innd_max_conn{$a}";
1089 format_total "TOTAL: %-63.63s";
1096 value "$innd_max_conn{$key}";
1097 total "total(%innd_max_conn)";
1101 section innd_too_many_connects_per_minute {
1102 title "INND too many connects per minute:";
1103 data "%innd_too_many_connects_per_minute";
1104 sort "$innd_too_many_connects_per_minute{$b} <=>
1105 $innd_too_many_connects_per_minute{$a}";
1110 format_total "TOTAL: %-64.64s";
1117 value "$innd_too_many_connects_per_minute{$key}";
1118 total "total(%innd_too_many_connects_per_minute)";
1123 title "INND misc events:";
1125 sort "$innd_misc{$b} <=> $innd_misc{$a}";
1130 format_total "TOTAL: %-64.64s";
1137 value "$innd_misc{$key}";
1138 total "total(%innd_misc)";
1142 section innd_misc_stat {
1143 title "Miscellaneous innd statistics:";
1144 data "%innd_misc_stat";
1145 sort "$innd_misc_stat{$b} <=> $innd_misc_stat{$a}";
1154 format_total "TOTAL: %-62.62s";
1162 format_total "TOTAL: %-60.60s";
1168 value "$innd_misc_stat{$key1}{$key2}";
1169 total "total(%innd_misc_stat)";
1173 section innfeed_connect {
1174 title "Outgoing Feeds (innfeed) by Articles:";
1175 data "%innfeed_offered";
1176 sort "$innfeed_accepted{$b} <=> $innfeed_accepted{$a}";
1182 format_total "TOTAL: %-11.11s";
1189 value "$innfeed_offered{$key}";
1190 total "total(%innfeed_offered)";
1196 value "$innfeed_accepted{$key}";
1197 total "total(%innfeed_accepted)";
1203 value "$innfeed_refused{$key}";
1204 total "total(%innfeed_refused)";
1210 value "$innfeed_rejected{$key}";
1211 total "total(%innfeed_rejected)";
1217 value "$innfeed_missing{$key}";
1218 total "total(%innfeed_missing)";
1224 value "$innfeed_spooled{$key}";
1225 total "total(%innfeed_spooled)";
1231 value "$innfeed_offered{$key} == 0 ? 0 :
1232 $innfeed_accepted{$key} / $innfeed_offered{$key} * 100";
1233 total "total(%innfeed_offered) == 0 ? 0 :
1234 total(%innfeed_accepted) / total(%innfeed_offered) * 100";
1240 value "time($innfeed_seconds{$key})";
1241 total "time(total(%innfeed_seconds))";
1244 title "Outgoing feeds (innfeed) by Articles";
1246 sort "%innfeed_accepted";
1250 value "%innfeed_accepted";
1255 value "%innfeed_refused";
1260 value "%innfeed_rejected";
1265 value "%innfeed_missing";
1270 value "%innfeed_spooled,";
1275 section innfeed_volume {
1276 title "Outgoing Feeds (innfeed) by Volume:";
1277 data "%innfeed_offered";
1278 sort "$innfeed_accepted_size{$b} <=> $innfeed_accepted_size{$a}";
1284 format_total "TOTAL: %-10.10s";
1290 value "bytes($innfeed_accepted_size{$key})";
1291 total "bytes(total(%innfeed_accepted_size))";
1296 value "bytes($innfeed_rejected_size{$key})";
1297 total "bytes(total(%innfeed_rejected_size))";
1302 value "bytes($innfeed_accepted_size{$key} +
1303 $innfeed_rejected_size{$key})";
1304 total "bytes(total(%innfeed_accepted_size) +
1305 total(%innfeed_rejected_size))";
1311 value "bytes(($innfeed_accepted_size{$key} +
1312 $innfeed_rejected_size{$key}) /
1313 $innfeed_seconds{$key})";
1314 total "bytes((total(%innfeed_accepted_size) +
1315 total(%innfeed_rejected_size)) /
1316 total(%innfeed_seconds))";
1321 value "bytes(($innfeed_accepted_size{$key} +
1322 $innfeed_rejected_size{$key}) /
1323 ($innfeed_accepted{$key} +
1324 $innfeed_rejected{$key}))";
1325 total "bytes((total(%innfeed_accepted_size) +
1326 total(%innfeed_rejected_size)) /
1327 (total(%innfeed_accepted) +
1328 total(%innfeed_rejected)))";
1333 value "time($innfeed_seconds{$key})";
1334 total "time(total(%innfeed_seconds))";
1337 title "Outgoing feeds (innfeed) by Volume";
1339 sort "%innfeed_accepted_size";
1343 value "%innfeed_accepted_size";
1348 value "%innfeed_rejected_size";
1353 value "%innfeed_accepted_size +
1354 %innfeed_rejected_size";
1359 section innfeed_shrunk {
1360 title "Backlog files shrunk by innfeed:";
1361 data "%innfeed_shrunk";
1362 sort "$innfeed_shrunk{$b} <=> $innfeed_shrunk{$a}";
1367 format_total "TOTAL: %-63.63s";
1373 value "bytes($innfeed_shrunk{$key})";
1374 total "bytes(total(%innfeed_shrunk))";
1378 section nntplink_connect {
1379 title "Outgoing Feeds (nntplink):";
1380 data "%nntplink_site";
1381 sort "$nntplink_accepted{$b} <=> $nntplink_accepted{$a}";
1387 format_total "TOTAL: %-18.18s";
1394 value "$nntplink_offered{$key}";
1395 total "total(%nntplink_offered)";
1401 value "$nntplink_accepted{$key}";
1402 total "total(%nntplink_accepted)";
1408 value "$nntplink_rejected{$key}";
1409 total "total(%nntplink_rejected)";
1415 value "$nntplink_failed{$key}";
1416 total "total(%nntplink_failed)";
1422 value "$nntplink_offered{$key} == 0 ? 0 :
1423 $nntplink_accepted{$key} / $nntplink_offered{$key} * 100";
1424 total "total(%nntplink_offered) == 0 ? 0 :
1425 total(%nntplink_accepted) / total(%nntplink_offered) * 100";
1430 value "time($nntplink_times{$key})";
1431 total "time(total(%nntplink_times))";
1434 title "Outgoing Feeds (nntplink)";
1436 sort "%nntplink_accepted";
1438 name "Articles accepted";
1440 value "%nntplink_accepted";
1443 name "Articles rejected";
1445 value "%nntplink_rejected";
1448 name "Articles failed";
1450 value "%nntplink_failed";
1455 section nntplink_connect2 {
1456 title "Outgoing Feeds (nntplink) - other information:";
1457 data "%nntplink_site";
1458 sort "$nntplink_accepted{$b} <=> $nntplink_accepted{$a}";
1464 format_total "TOTAL: %-13.13s";
1471 value "$nntplink_site{$key}";
1472 total "total(%nntplink_site)";
1478 value "$nntplink_site{$key} - ($nntplink_eof{$key} +
1479 $nntplink_sockerr{$key} +
1480 $nntplink_selecterr{$key} +
1481 $nntplink_hiload{$key} + $nntplink_bpipe{$key} +
1482 $nntplink_nospace{$key} + $nntplink_auth{$key} +
1483 $nntplink_expire{$key} + $nntplink_fail{$key})";
1484 total "total(%nntplink_site) - (total(%nntplink_eof) +
1485 total(%nntplink_sockerr) +
1486 total(%nntplink_selecterr) +
1487 total(%nntplink_hiload) +
1488 total(%nntplink_bpipe) +
1489 total(%nntplink_nospace) +
1490 total(%nntplink_auth) +
1491 total(%nntplink_expire) +
1492 total(%nntplink_fail))";
1498 value "$nntplink_eof{$key}";
1499 total "total(%nntplink_eof)";
1505 value "$nntplink_sockerr{$key}";
1506 total "total(%nntplink_sockerr)";
1512 value "$nntplink_selecterr{$key}";
1513 total "total(%nntplink_selecterr)";
1519 value "$nntplink_hiload{$key}";
1520 total "total(%nntplink_hiload)";
1526 value "$nntplink_bpipe{$key}";
1527 total "total(%nntplink_bpipe)";
1533 value "$nntplink_nospace{$key}";
1534 total "total(%nntplink_nospace)";
1540 value "$nntplink_expire{$key}";
1541 total "total(%nntplink_expire)";
1547 value "$nntplink_auth{$key}";
1548 total "total(%nntplink_auth)";
1554 value "$nntplink_fail{$key}";
1555 total "total(%nntplink_fail)";
1561 value "$nntplink_site{$key} ?
1562 100 * ($nntplink_site{$key} -
1563 ($nntplink_eof{$key} + $nntplink_sockerr{$key} +
1564 $nntplink_selecterr{$key} +
1565 $nntplink_hiload{$key} + $nntplink_bpipe{$key} +
1566 $nntplink_nospace{$key} + $nntplink_auth{$key} +
1567 $nntplink_expire{$key} +
1568 $nntplink_fail{$key})) / $nntplink_site{$key} : 0";
1569 total "total(%nntplink_site) ?
1570 100 * (total(%nntplink_site) -
1571 (total(%nntplink_eof) +
1572 total(%nntplink_sockerr) +
1573 total(%nntplink_selecterr) +
1574 total(%nntplink_hiload) +
1575 total(%nntplink_bpipe) +
1576 total(%nntplink_nospace) +
1577 total(%nntplink_auth) +
1578 total(%nntplink_expire) +
1579 total(%nntplink_fail))) / total(%nntplink_site) : 0";
1583 section innxmit_connect {
1584 title "Outgoing Feeds (innxmit) by Articles:";
1585 data "%innxmit_times";
1586 sort "$innxmit_accepted{$b} <=> $innxmit_accepted{$a}";
1592 format_total "TOTAL: %-20.20s";
1599 value "$innxmit_offered{$key}";
1600 total "total(%innxmit_offered)";
1606 value "$innxmit_accepted{$key}";
1607 total "total(%innxmit_accepted)";
1613 value "$innxmit_refused{$key}";
1614 total "total(%innxmit_refused)";
1620 value "$innxmit_rejected{$key}";
1621 total "total(%innxmit_rejected)";
1627 value "$innxmit_missing{$key}";
1628 total "total(%innxmit_rejected)";
1634 value "$innxmit_offered{$key} == 0 ? 0 :
1635 $innxmit_accepted{$key} / $innxmit_offered{$key} * 100";
1636 total "total(%innxmit_offered) == 0 ? 0 :
1637 total(%innxmit_accepted) / total(%innxmit_offered) * 100";
1642 value "time($innxmit_times{$key})";
1643 total "time(total(%innxmit_times))";
1646 title "Outgoing Feeds (innxmit)";
1648 sort "%innxmit_accepted";
1650 name "Art. accepted";
1652 value "%innxmit_accepted";
1655 name "Art. refused";
1657 value "%innxmit_refused";
1660 name "Art. rejected";
1662 value "%innxmit_rejected";
1665 name "Art. missing";
1667 value "%innxmit_missing";
1672 section innxmit_volume {
1673 title "Outgoing Feeds (innxmit) by Volume:";
1674 data "%innxmit_accepted_size";
1675 sort "$innxmit_accepted_size{$b} <=> $innxmit_accepted_size{$a}";
1681 format_total "TOTAL: %-17.17s";
1687 value "bytes($innxmit_accepted_size{$key})";
1688 total "bytes(total(%innxmit_accepted_size))";
1693 value "bytes($innxmit_rejected_size{$key})";
1694 total "bytes(total(%innxmit_rejected_size))";
1699 value "bytes($innxmit_accepted_size{$key} +
1700 $innxmit_rejected_size{$key} +
1701 $innxmit_bytes{$key})";
1702 total "bytes(total(%innxmit_accepted_size) +
1703 total(%innxmit_rejected_size) +
1704 total(%innxmit_bytes))";
1710 value "($innxmit_accepted_size{$key} +
1711 $innxmit_rejected_size{$key} +
1712 $innxmit_bytes{$key}) /
1713 $innxmit_times{$key} / 1024";
1714 total "(total(%innxmit_accepted_size) +
1715 total(%innxmit_rejected_size) +
1716 total(%innxmit_bytes)) /
1717 total(%innxmit_times) / 1024";
1722 value "bytes(($innxmit_accepted_size{$key} +
1723 $innxmit_rejected_size{$key} +
1724 $innxmit_bytes{$key}) /
1725 ($innxmit_accepted{$key} +
1726 $innxmit_rejected{$key}))";
1727 total "bytes((total(%innxmit_accepted_size) +
1728 total(%innxmit_rejected_size) +
1729 total(%innxmit_bytes)) /
1730 (total(%innxmit_accepted) +
1731 total(%innxmit_rejected)))";
1736 value "time($innxmit_times{$key})";
1737 total "time(total(%innxmit_times))";
1740 title "Outgoing Feeds (innxmit)";
1742 sort "%innxmit_accepted";
1744 name "Articles accepted";
1746 value "%innxmit_accepted_size";
1749 name "Articles rejected";
1751 value "%innxmit_rejected_size";
1756 value "%innxmit_missing";
1762 section innxmit_connect2 {
1763 title "Outgoing Feeds (innxmit) - other information:";
1764 data "%innxmit_site";
1765 sort "$innxmit_accepted{$b} <=> $innxmit_accepted{$a}";
1771 format_total "TOTAL: %-18.18s";
1778 value "$innxmit_site{$key}";
1779 total "total(%innxmit_site)";
1785 value "$innxmit_site{$key} -
1786 ($innxmit_afail_host{$key} +
1787 $innxmit_hiload{$key} + $innxmit_nospace{$key} +
1788 $innxmit_cfail_host{$key} +
1789 $innxmit_expire{$key} + $innxmit_crefused{$key})";
1790 total "total(%innxmit_site) -
1791 (total(%innxmit_afail_host) +
1792 total(%innxmit_hiload) +
1793 total(%innxmit_nospace) +
1794 total(%innxmit_cfail_host) +
1795 total(%innxmit_expire) +
1796 total(%innxmit_crefused))";
1802 value "$innxmit_afail_host{$key}";
1803 total "total(%innxmit_afail_host)";
1809 value "$innxmit_hiload{$key}";
1810 total "total(%innxmit_hiload)";
1816 value "$innxmit_nospace{$key}";
1817 total "total(%innxmit_nospace)";
1823 value "$innxmit_expire{$key}";
1824 total "total(%innxmit_expire)";
1830 value "$innxmit_cfail_host{$key}";
1831 total "total(%innxmit_cfail_host)";
1837 value "$innxmit_crefused{$key}";
1838 total "total(%innxmit_crefused)";
1844 value "$innxmit_site{$key} ? 100 *
1845 ($innxmit_site{$key} -
1846 ($innxmit_afail_host{$key} +
1847 $innxmit_hiload{$key} + $innxmit_nospace{$key} +
1848 $innxmit_cfail_host{$key} +
1849 $innxmit_expire{$key} +
1850 $innxmit_crefused{$key})) / $innxmit_site{$key} : 0";
1851 total "total(%innxmit_site) ?
1852 100 * (total(%innxmit_site) -
1853 (total(%innxmit_afail_host) +
1854 total(%innxmit_hiload) +
1855 total(%innxmit_nospace) +
1856 total(%innxmit_cfail_host) +
1857 total(%innxmit_expire) +
1858 total(%innxmit_crefused))) / total(%innxmit_site) : 0";
1862 section innxmit_unwanted {
1863 title "Sites fed by innxmit rejecting bad articles:";
1864 data "%innxmit_badart";
1865 sort "$innxmit_badart{$b} <=> $innxmit_badart{$a}";
1871 format_total "TOTAL: %-16.16s";
1878 value "$innxmit_badart{$key}";
1879 total "total(%innxmit_badart)";
1885 value "$innxmit_uw_ng_s{$key}";
1886 total "total(%innxmit_uw_ng_s)";
1892 value "$innxmit_uw_dist_s{$key}";
1893 total "total(%innxmit_uw_dist_s)";
1899 value "$innxmit_duplicate{$key}";
1900 total "total(%innxmit_duplicate)";
1906 value "$innxmit_unapproved{$key}";
1907 total "total(%innxmit_unapproved)";
1913 value "$innxmit_tooold{$key}";
1914 total "total(%innxmit_tooold)";
1920 value "$innxmit_uw_site{$key}";
1921 total "total(%innxmit_uw_site)";
1927 value "$innxmit_linecount{$key}";
1928 total "total(%innxmit_linecount)";
1934 value "$innxmit_others{$key}";
1935 total "total(%innxmit_others)";
1940 title "Crosspost stats:";
1946 format_total "TOTAL: %-56.56s";
1951 value "$crosspost{$key}";
1953 total "total(%crosspost)";
1957 value "$crosspost_times{$key}";
1959 total "total(%crosspost_times)";
1963 section batcher_elapsed {
1964 title "UUCP batches created:";
1965 data "%batcher_elapsed";
1970 format_total "TOTAL: %-34.34s";
1977 value "$batcher_offered{$key}";
1978 total "total(%batcher_offered)";
1984 value "$batcher_articles{$key}";
1985 total "total(%batcher_articles)";
1990 value "bytes($batcher_bytes{$key})";
1991 total "bytes(total(%batcher_bytes))";
1996 value "time($batcher_elapsed{$key})";
1997 total "time(total(%batcher_elapsed))";
2001 section rnews_host {
2002 title "Rnews articles offered from:";
2004 sort "$rnews_host{$b} <=> $rnews_host{$a}";
2009 format_total "TOTAL: %-64.64s";
2016 value "$rnews_host{$key}";
2017 total "total(%rnews_host)";
2021 section rnews_rejected {
2022 title "Rnews connections rejected:";
2023 data "%rnews_rejected";
2024 sort "$rnews_rejected{$b} <=> $rnews_rejected{$a}";
2029 format_total "TOTAL: %-64.64s";
2036 value "$rnews_rejected{$key}";
2037 total "total(%rnews_rejected)";
2041 section rnews_misc {
2042 title "Miscellaneous rnews statistics:";
2044 sort "$rnews_misc{$b} <=> $rnews_misc{$a}";
2051 format_total "TOTAL: %-62.62s";
2064 value "$rnews_misc{$key1}{$key2}";
2065 total "total(%rnews_misc)";
2069 section nnrpd_groups {
2070 title "NNRP readership statistics:";
2071 data "%nnrpd_articles";
2072 sort "$nnrpd_articles{$b} <=> $nnrpd_articles{$a}";
2078 format_total "TOTAL: %-23.23s";
2085 value "$nnrpd_connect{$key}";
2086 total "total(%nnrpd_connect)";
2092 value "$nnrpd_articles{$key}";
2093 total "total(%nnrpd_articles)";
2098 value "bytes($nnrpd_bytes{$key})";
2099 total "bytes(total(%nnrpd_bytes))";
2105 value "$nnrpd_groups{$key}";
2106 total "total(%nnrpd_groups)";
2112 value "$nnrpd_post_ok{$key}";
2113 total "total(%nnrpd_post_ok)";
2119 value "$nnrpd_post_rej{$key} +
2120 $nnrpd_post_error{$key}";
2121 total "total(%nnrpd_post_rej) +
2122 total(%nnrpd_post_error)";
2127 value "time($nnrpd_times{$key})";
2128 total "time(total(%nnrpd_times))";
2132 section nnrpd_dom_groups {
2133 title "NNRP readership statistics (by domain):";
2134 data "%nnrpd_dom_connect";
2135 sort "$nnrpd_dom_articles{$b} <=> $nnrpd_dom_articles{$a}";
2141 format_total "TOTAL: %-23.23s";
2148 value "$nnrpd_dom_connect{$key}";
2149 total "total(%nnrpd_dom_connect)";
2155 value "$nnrpd_dom_articles{$key}";
2156 total "total(%nnrpd_dom_articles)";
2161 value "bytes($nnrpd_dom_bytes{$key})";
2162 total "bytes(total(%nnrpd_dom_bytes))";
2168 value "$nnrpd_dom_groups{$key}";
2169 total "total(%nnrpd_dom_groups)";
2175 value "$nnrpd_dom_post_ok{$key}";
2176 total "total(%nnrpd_dom_post_ok)";
2182 value "$nnrpd_dom_post_rej{$key} +
2183 $nnrpd_dom_post_error{$key}";
2184 total "total(%nnrpd_dom_post_rej) +
2185 total(%nnrpd_dom_post_error)";
2190 value "time($nnrpd_dom_times{$key})";
2191 total "time(total(%nnrpd_dom_times))";
2195 section nnrpd_auth {
2196 title "NNRP auth users:";
2199 sort "$nnrpd_auth{$b} <=> $nnrpd_auth{$a}";
2204 format_total "TOTAL: %-64.64s";
2211 value "$nnrpd_auth{$key}";
2212 total "total(%nnrpd_auth)";
2216 section nnrpd_resource {
2217 title "NNRP total resource statistics:";
2218 data "%nnrpd_resource_elapsed";
2220 sort "$nnrpd_resource_elapsed{$b} <=> $nnrpd_resource_elapsed{$a}";
2224 format_total "TOTAL: %-33.33s";
2232 value "$nnrpd_resource_user{$key}";
2233 total "total(%nnrpd_resource_user)";
2239 value "$nnrpd_resource_system{$key}";
2240 total "total(%nnrpd_resource_system)";
2246 value "$nnrpd_resource_idle{$key}";
2247 total "total(%nnrpd_resource_idle)";
2253 value "time($nnrpd_resource_elapsed{$key})";
2254 total "time(total(%nnrpd_resource_elapsed))";
2258 section nnrpd_curious {
2259 title "Curious NNRP server explorers:";
2260 data "%nnrpd_curious";
2262 sort "$nnrpd_curious{$b} <=> $nnrpd_curious{$a}";
2267 format_total "TOTAL: %-64.64s";
2274 value "$nnrpd_curious{$key}";
2275 total "total(%nnrpd_curious)";
2279 section nnrpd_no_permission {
2280 title "NNRP no permission clients:";
2281 data "%nnrpd_no_permission";
2282 sort "$nnrpd_no_permission{$b} <=> $nnrpd_no_permission{$a}";
2287 format_total "TOTAL: %-64.64s";
2294 value "$nnrpd_no_permission{$key}";
2295 total "total(%nnrpd_no_permission)";
2299 section nnrpd_gethostbyaddr {
2300 title "NNRP gethostbyaddr failures:";
2301 data "%nnrpd_gethostbyaddr";
2303 sort "$nnrpd_gethostbyaddr{$b} <=> $nnrpd_gethostbyaddr{$a}";
2308 format_total "TOTAL: %-64.64s";
2315 value "$nnrpd_gethostbyaddr{$key}";
2316 total "total(%nnrpd_gethostbyaddr)";
2320 section nnrpd_unrecognized {
2321 title "NNRP unrecognized commands (by host):";
2322 data "%nnrpd_unrecognized";
2323 sort "$nnrpd_unrecognized{$b} <=> $nnrpd_unrecognized{$a}";
2328 format_total "TOTAL: %-64.64s";
2335 value "$nnrpd_unrecognized{$key}";
2336 total "total(%nnrpd_unrecognized)";
2340 section nnrpd_unrecognized2 {
2341 title "NNRP unrecognized commands (by command):";
2342 data "%nnrpd_unrecogn_cmd";
2343 sort "$nnrpd_unrecogn_cmd{$b} <=> $nnrpd_unrecogn_cmd{$a}";
2348 format_total "TOTAL: %-64.64s";
2355 value "$nnrpd_unrecogn_cmd{$key}";
2356 total "total(%nnrpd_unrecogn_cmd)";
2360 section nnrpd_timeout {
2361 title "NNRP client timeouts:";
2362 data "%nnrpd_timeout";
2364 sort "$nnrpd_timeout{$b} <=> $nnrpd_timeout{$a}";
2369 format_total "TOTAL: %-60.60s";
2376 value "$nnrpd_timeout{$key}";
2377 total "total(%nnrpd_timeout)";
2383 value "$nnrpd_reset_peer{$key}";
2384 total "total(%nnrpd_reset_peer)";
2388 section nnrpd_hierarchy {
2389 title "Newsgroup request counts (by category):";
2390 data "%nnrpd_hierarchy";
2391 sort "$nnrpd_hierarchy{$b} <=> $nnrpd_hierarchy{$a}";
2397 format_total "TOTAL: %-57.57s";
2404 value "$nnrpd_hierarchy{$key}";
2405 total "total(%nnrpd_hierarchy)";
2411 value "$nnrpd_hierarchy{$key} /
2412 total(%nnrpd_hierarchy) * 100";
2415 # graph : type piechart
2418 section nnrpd_group {
2419 title "Newsgroup request counts (by newsgroup):";
2420 data "%nnrpd_group";
2421 sort "$nnrpd_group{$b} <=> $nnrpd_group{$a}";
2428 format_total "TOTAL: %-64.64s";
2435 value "$nnrpd_group{$key}";
2436 total "total(%nnrpd_group)";
2440 section ihave_site {
2441 title "IHAVE messages offered from:";
2442 data "%controlchan_ihave_site";
2443 sort "$controlchan_ihave_site{$b} <=> $controlchan_ihave_site{$a}";
2448 format_total "TOTAL: %-64.64s";
2455 value "$controlchan_ihave_site{$key}";
2456 total "total(%controlchan_ihave_site)";
2460 section sendme_site {
2461 title "SENDME messages offered from:";
2462 data "%controlchan_sendme_site";
2463 sort "$controlchan_sendme_site{$b} <=>
2464 $controlchan_sendme_site{$a}";
2469 format_total "TOTAL: %-64.64s";
2476 value "$controlchan_sendme_site{$key}";
2477 total "total(%controlchan_sendme_site)";