chiark / gitweb /
xfoo => mfoo, rename
[inn-innduct.git] / samples / innreport.conf.in
1 ##########################################################
2 # Configuration file for innreport (3.*).
3 #
4 # Sample file for INN.
5 # Tested with INN 2.3, 2.1, 1.7.2 and 1.5.1.
6 #
7 # (c) 1997, 1998, 1999 by Fabien Tassin <fta@sofaraway.org>
8 # version 3.0.2
9 ##########################################################
10
11 # Default parameters
12 section default {
13         libpath         "@LIBDIR@";
14         logpath         "@LOGDIR@";
15         unknown         true;        # want unknown entries.
16         max_unknown     50;          # max unknown entries to display.
17         casesensitive   true;
18         module          "innreport_inn";  # ${libpath}/${module}.pm
19         unwanted_log    "unwanted.log";   # ${logpath}/${unwanted_log}
20         text            true;
21         html            false;
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.
39 };
40
41 ###########################################################################
42 # Index page
43 section index {
44         column {
45                 title   "Dates";
46                 value   "date";
47         };
48         column {
49                 title   "Incoming feeds";
50                 name    "Offered|Accepted|Volume";
51                 value   "total(%innd_offered) | total(%innd_accepted) |
52                          bytes(total(%inn_flow_size))";
53         };
54         column {
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))";
65         };
66         graph {
67                 title         "Incoming feeds";
68                 value         val1;
69                 color         "#FFFFCE";
70                 unit          "art";
71                 data {
72                           name    "Offered";
73                           color   "#50A0D0";
74                           value   "val2";       # Incoming feeds: Offered
75                 };
76                 data {
77                           name    "Accepted";
78                           color   "#0000FF";
79                           value   "val3";       # Incoming feeds: Accepted
80                 };
81         };
82         graph {
83                 title         "Outgoing feeds";
84                 value         val1;
85                 color         "#FFFFCE";
86                 unit          "art";
87                 data {
88                           name    "Offered";
89                           color   "#50A0D0";
90                           value   "val5";       # Outgoing feeds: Offered
91                 };
92                 data {
93                           name    "Accepted";
94                           color   "#0000FF";
95                           value   "val6";       # Outgoing feeds: Accepted
96                 };
97         };
98         graph {
99                 title           "Bandwidth";
100                 value           val1;
101                 color           "#FFFFCE";
102                 unit            "Kb";
103                 data {
104                         name    "Incoming";
105                         color   "#50A0D0";
106                         value   "byte(val4)";   # Incoming feeds: Volume
107                 };
108                 data {
109                         name    "Outgoing";
110                         color   "#0000FF";
111                         value   "byte(val7)";   # Outgoing feeds: Volume
112                 };
113         };
114 };
115
116 ###########################################################################
117 # Report
118
119 section prog_type {
120         # skip    true;                          # used to skip a section.
121         title   "Log entries by program:";
122         data    "%prog_type";
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
126         column {
127                 name          "Program name";
128                 format        "%-46.46s";
129                 value         "$key";
130                 format_total  "TOTAL: %-39.39s";
131                 total         "$num";
132         };
133         column {
134                 name          "Lines";
135                 format_name   "%7s";
136                 format        "%7d";
137                 # text        false;  # to skip this column in the text report
138                 value         "$prog_type{$key}";
139                 total         "total(%prog_type)";
140         };
141         column {
142                 name          "%Lines";
143                 format_name   "%7s";
144                 format        "%6.1f%%";
145                 # html        false;  # to skip this column in the HTML report
146                 value         "$prog_type{$key} / total(%prog_type) * 100";
147                 total         "100";
148         };
149         column {
150                 name          "Size";
151                 format        "%9s";
152                 value         "bytes($prog_size{$key})";
153                 total         "bytes(total(%prog_size))";
154         };
155         column {
156                 name          "%Size";
157                 format_name   "%6s";
158                 format        "%5.1f%%";
159                 value         "$prog_size{$key} / total(%prog_size) * 100";
160                 total         "100";
161         };
162 };
163
164 # INN 2.*
165 section innd_his {
166         title   "History cache:";
167         data    "%innd_his";
168         sort    "$innd_his{$b} <=> $innd_his{$a}";
169         column {
170                 name          "Reason";
171                 format        "%-57.57s";
172                 value         "$key";
173                 format_total  "TOTAL: %-50.50s";
174                 total         "$num";
175         };
176         column {
177                 name          "Count";
178                 format_name   "%10s";
179                 format        "%10d";
180                 value         "$innd_his{$key}";
181                 total         "total(%innd_his)";
182         };
183         column {
184                 name          "%Count";
185                 format_name   "%10s";
186                 format        "%9.1f%%";
187                 value         "100 * $innd_his{$key} / total(%innd_his)";
188                 total         "100";
189         };
190 };
191
192 # INN 1.*
193 section innd_cache {
194         title   "History cache:";
195         data    "%innd_cache";
196         sort    "$innd_cache{$b} <=> $innd_cache{$a}";
197         column {
198                 name          "Reason";
199                 format        "%-57.57s";
200                 value         "$key";
201                 format_total  "TOTAL: %-50.50s";
202                 total         "$num";
203         };
204         column {
205                 name          "Count";
206                 format_name   "%10s";
207                 format        "%10d";
208                 value         "$innd_cache{$key}";
209                 total         "total(%innd_cache)";
210         };
211         column {
212                 name          "%Count";
213                 format_name   "%10s";
214                 format        "%9.1f%%";
215                 value         "100 * $innd_cache{$key} / total(%innd_cache)";
216                 total         "100";
217         };
218 };
219
220 section innd_timer {
221         title   "INND timer:";
222         data    "%innd_time_time";
223         column {
224                 name          "Code region";
225                 format        "%-15.15s";
226                 value         "$key";
227                 format_total  "TOTAL: %-8.8s";
228                 total         "time_ms($innd_time_times)";
229         };
230         column {
231                 name          "Time";
232                 format        "%13s";
233                 value         "time_ms($innd_time_time{$key})";
234                 total         "time_ms(total(%innd_time_time))";
235         };
236         column {
237                 name          "Pct";
238                 format_name   "%6s";
239                 format        "%5.1f%%";
240                 value         "100 * $innd_time_time{$key} / $innd_time_times";
241                 total         "100 * total(%innd_time_time) /
242                                $innd_time_times";
243         };
244         column {
245                 name          "Invoked";
246                 format        "%10s";
247                 value         "$innd_time_num{$key}";
248                 format_total  "%9s-";
249                 total         "";
250         };
251         column {
252                 name          "Min(ms)";
253                 format_name   "%9s";
254                 format        "%9.3f";
255                 value         "$innd_time_min{$key}";
256                 format_total  "%8s-";
257                 total         "";
258         };
259         column {
260                 name          "Avg(ms)";
261                 format_name   "%10s";
262                 format        "%10.3f";
263                 value         "$innd_time_time{$key} /
264                             ($innd_time_num{$key} ? $innd_time_num{$key} : 1)";
265                 format_total  "%9s-";
266                 total         "";
267         };
268         column {
269                 name          "Max(ms)";
270                 format_name   "%10s";
271                 format        "%10.3f";
272                 value         "$innd_time_max{$key}";
273                 format_total  "%9s-";
274                 total         "";
275         };
276 };
277
278 section innfeed_timer {
279         title   "INNfeed timer:";
280         data    "%innfeed_time_time";
281         column {
282                 name          "Code region";
283                 format        "%-15.15s";
284                 value         "$key";
285                 format_total  "TOTAL: %-8.8s";
286                 total         "time_ms($innfeed_time_times)";
287         };
288         column {
289                 name          "Time";
290                 format        "%13s";
291                 value         "time_ms($innfeed_time_time{$key})";
292                 total         "time_ms(total(%innfeed_time_time))";
293         };
294         column {
295                 name          "Pct";
296                 format_name   "%6s";
297                 format        "%5.1f%%";
298                 value         "100 * $innfeed_time_time{$key} / $innfeed_time_times";
299                 total         "100 * total(%innfeed_time_time) /
300                                $innfeed_time_times";
301         };
302         column {
303                 name          "Invoked";
304                 format        "%10s";
305                 value         "$innfeed_time_num{$key}";
306                 format_total  "%9s-";
307                 total         "";
308         };
309         column {
310                 name          "Min(ms)";
311                 format_name   "%9s";
312                 format        "%9.3f";
313                 value         "$innfeed_time_min{$key}";
314                 format_total  "%8s-";
315                 total         "";
316         };
317         column {
318                 name          "Avg(ms)";
319                 format_name   "%10s";
320                 format        "%10.3f";
321                 value         "$innfeed_time_time{$key} /
322                             ($innfeed_time_num{$key} ? $innfeed_time_num{$key} : 1)";
323                 format_total  "%9s-";
324                 total         "";
325         };
326         column {
327                 name          "Max(ms)";
328                 format_name   "%10s";
329                 format        "%10.3f";
330                 value         "$innfeed_time_max{$key}";
331                 format_total  "%9s-";
332                 total         "";
333         };
334 };
335
336 section nnrpd_timer {
337         title   "nnrpd timer:";
338         data    "%nnrpd_time_time";
339         column {
340                 name          "Code region";
341                 format        "%-15.15s";
342                 value         "$key";
343                 format_total  "TOTAL: %-8.8s";
344                 total         "time_ms($nnrpd_time_times)";
345         };
346         column {
347                 name          "Time";
348                 format        "%13s";
349                 value         "time_ms($nnrpd_time_time{$key})";
350                 total         "time_ms(total(%nnrpd_time_time))";
351         };
352         column {
353                 name          "Pct";
354                 format_name   "%6s";
355                 format        "%5.1f%%";
356                 value         "100 * $nnrpd_time_time{$key} / $nnrpd_time_times";
357                 total         "100 * total(%nnrpd_time_time) /
358                                $nnrpd_time_times";
359         };
360         column {
361                 name          "Invoked";
362                 format        "%10s";
363                 value         "$nnrpd_time_num{$key}";
364                 format_total  "%9s-";
365                 total         "";
366         };
367         column {
368                 name          "Min(ms)";
369                 format_name   "%9s";
370                 format        "%9.3f";
371                 value         "$nnrpd_time_min{$key}";
372                 format_total  "%8s-";
373                 total         "";
374         };
375         column {
376                 name          "Avg(ms)";
377                 format_name   "%10s";
378                 format        "%10.3f";
379                 value         "$nnrpd_time_time{$key} /
380                             ($nnrpd_time_num{$key} ? $nnrpd_time_num{$key} : 1)";
381                 format_total  "%9s-";
382                 total         "";
383         };
384         column {
385                 name          "Max(ms)";
386                 format_name   "%10s";
387                 format        "%10.3f";
388                 value         "$nnrpd_time_max{$key}";
389                 format_total  "%9s-";
390                 total         "";
391         };
392 };
393
394 section innd_control {
395         title   "Control commands to INND:";
396         data    "%innd_control";
397         column {
398                 name          "Command";
399                 format        "%-71.71s";
400                 value         "$key";
401                 format_total  "TOTAL: %-64.64s";
402                 total         "$num";
403         };
404         column {
405                 name          "Number";
406                 format_name   "%7s";
407                 value         "$innd_control{$key}";
408                 format        "%7d";
409                 total         "total(%innd_control)";
410         };
411 };
412
413 section innd_newgroup {
414         title   "Newsgroups created:";
415         data    "%innd_newgroup";
416         column {
417                 name          "Group";
418                 format        "%-71.71s";
419                 value         "$key";
420                 format_total  "TOTAL%-66.66s";
421                 total         "";
422         };
423         column {
424                 name          "Mode";
425                 value         "$innd_newgroup{$key}";
426                 format        "%7s";
427                 total         "$num";
428         };
429 };
430
431 section innd_changegroup {
432         title   "Newsgroups changed:";
433         data    "%innd_changegroup";
434         column {
435                 name          "Group";
436                 format        "%-68.68s";
437                 value         "$key";
438                 format_total  "TOTAL%-63.63s";
439                 total         "";
440         };
441         column {
442                 name          "New mode";
443                 format        "%10s";
444                 value         "$innd_changegroup{$key}";
445                 total         "$num";
446         };
447 };
448
449 section innd_rmgroup {
450         title   "Newsgroups removed:";
451         data    "%innd_rmgroup";
452         column {
453                 name          "Group";
454                 format        "%-78.78s";
455                 value         "$key";
456                 format_total  "TOTAL: %-71.71s";
457                 total         "$num";
458         };
459 };
460
461 section controlchan {
462         title   "Control Channel:";
463         data    "%controlchan_who";
464         column {
465                 name          "Sender";
466                 format        "%-25.25s";
467                 value         "$key";
468                 format_total  "TOTAL%-20.20s";
469                 total         "";
470         };
471         column {
472                 name          "newgroup";
473                 value         "$controlchan_new{$key}";
474                 format        "%8s";
475                 total         "total(%controlchan_new)";
476         };
477         column {
478                 name          "rmgroup";
479                 value         "$controlchan_rm{$key}";
480                 format        "%8s";
481                 total         "total(%controlchan_rm)";
482         };
483         column {
484                 name          "Other";
485                 value         "$controlchan_other{$key}";
486                 format        "%8s";
487                 total         "total(%controlchan_other)";
488         };
489         column {
490                 name          "Bad PGP";
491                 value         "$controlchan_skippgp{$key}";
492                 format        "%8s";
493                 total         "total(%controlchan_skippgp)";
494         };
495         column {
496                 name          "DoIt";
497                 value         "$controlchan_doit{$key}";
498                 format        "%8s";
499                 total         "total(%controlchan_doit)";
500         };
501         column {
502                 name          "OK";
503                 value         "$controlchan_ok{$key}";
504                 format        "%8s";
505                 total         "total(%controlchan_ok)";
506         };
507 };
508
509 section innd_connect {
510         title   "Incoming Feeds (INN):";
511         data    "%innd_seconds";
512         sort    "$innd_accepted{$b} <=> $innd_accepted{$a}";
513         numbering true;
514         column {
515                 name          "Server";
516                 format_name   "%-21.21s";
517                 format        "%-24.24s";
518                 value         "$key";
519                 format_total  "TOTAL: %-17.17s";
520                 total         "$num";
521         };
522         column {
523                 name          "Connects";
524                 format_name   "%5s";
525                 format        "%5d";
526                 value         "$innd_connect{$key}";
527                 total         "total(%innd_connect)";
528         };
529         column {
530                 name          "Offered";
531                 format_name   "%8s";
532                 format        "%8d";
533                 value         "$innd_offered{$key}";
534                 total         "total(%innd_offered)";
535         };
536         column {
537                 name          "Taken";
538                 format_name   "%7s";
539                 format        "%7d";
540                 value         "$innd_accepted{$key}";
541                 total         "total(%innd_accepted)";
542         };
543         column {
544                 name          "Refused";
545                 format_name   "%7s";
546                 format        "%7d";
547                 value         "$innd_refused{$key}";
548                 total         "total(%innd_refused)";
549         };
550         column {
551                 name          "Reject";
552                 format_name   "%7s";
553                 format        "%7d";
554                 value         "$innd_rejected{$key}";
555                 total         "total(%innd_rejected)";
556         };
557         column {
558                 name          "%Accpt";
559                 format_name   "%6s";
560                 format        "%4d%%";
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";
565         };
566         column {
567                 name          "Elapsed";
568                 format_name   "%8s";
569                 format        "%9s";
570                 value         "time($innd_seconds{$key})";
571                 total         "time(total(%innd_seconds))";
572         };
573         graph {
574                 title         "Articles received by server";
575                 type          histo3d;
576                 sort          "%innd_accepted";
577                 data {
578                           name    "Articles accepted";
579                           color   "#0000FF";
580                           value   "%innd_accepted";
581                 };
582                 data {
583                           name    "Articles refused";
584                           color   "#FFAF00";
585                           value   "%innd_refused";
586                 };
587                 data {
588                           name    "Articles rejected";
589                           color   "#FF0000";
590                           value   "%innd_rejected";
591                 };
592         };
593 };
594
595 section innd_incoming_vol {
596         title   "Incoming Volume (INN):";
597         data    "%innd_seconds";
598         sort    "$innd_stored_size{$b} <=> $innd_stored_size{$a}";
599         numbering true;
600         column {
601                 name          "Server";
602                 format        "%-24.24s";
603                 value         "$key";
604                 format_total  "TOTAL: %-17.17s";
605                 total         "$num";
606         };
607         column {
608                 name          "AcceptVol";
609                 format        "%9s";
610                 value         "bytes($innd_stored_size{$key})";
611                 total         "bytes(total(%innd_stored_size))";
612         };
613         column {
614                 name          "DupVol";
615                 format        "%9s";
616                 value         "bytes($innd_duplicated_size{$key})";
617                 total         "bytes(total(%innd_duplicated_size))";
618         };
619         column {
620                 name          "TotalVol";
621                 format        "%9s";
622                 value         "bytes($innd_stored_size{$key} +
623                                        $innd_duplicated_size{$key})";
624                 total         "bytes(total(%innd_stored_size) +
625                                        total(%innd_duplicated_size))";
626         };
627         column {
628                 name          "%Acc";
629                 format_name   "%4s";
630                 format        "%3d%%";
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";
635         };
636         column {
637                 name            "Vol/Art";
638                 format          "%9s";
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)))";
647         };
648         column {
649                 name          "Elapsed";
650                 format        "%9s";
651                 value         "time($innd_seconds{$key})";
652                 total         "time(total(%innd_seconds))";
653         };
654         graph {
655                 title         "Incoming Volume received by server";
656                 type          histo3d;
657                 sort          "%innd_stored_size";
658                 data {
659                           name    "Accepted Volume";
660                           color   "#0000FF";
661                           value   "%innd_stored_size";
662                 };
663                 data {
664                           name    "Duplicated Volume";
665                           color   "#FFAF00";
666                           value   "%innd_duplicated_size";
667                 };
668         };
669 };
670
671 section inn_flow {
672         title   "Incoming articles:";
673         data    "%inn_flow";
674         sort    "&DateCompare";
675         column {
676                 name          "Date";
677                 format        "%-27.27s";
678                 value         "$key";
679                 format_total  "TOTAL: %-20.20s";
680                 total         "time(total(%inn_flow_time))";
681         };
682         column {
683                 name          "Articles";
684                 format_name   "%8s";
685                 value         "$inn_flow{$key}";
686                 format        "%8d";
687                 total         "total(%inn_flow)";
688         };
689         column {
690                 name          "%Arts";
691                 format_name   "%8s";
692                 value         "$inn_flow{$key} / $inn_flow_total * 100";
693                 format        "%7.1f%%";
694                 total         "100";
695         };
696         column {
697                 name          "Art/sec";
698                 format_name   "%7s";
699                 value         "$inn_flow{$key} / $inn_flow_time{$key}";
700                 format        "%7.2f";
701                 total         "total(%inn_flow) / total(%inn_flow_time)";
702         };
703         column {
704                 name          "Size";
705                 value         "bytes($inn_flow_size{$key})";
706                 format        "%9s";
707                 total         "bytes(total(%inn_flow_size))";
708         };
709         column {
710                 name          "%Size";
711                 format_name   "%7s";
712                 value         "$inn_flow_size{$key} /
713                                           total(%inn_flow_size) * 100";
714                 format        "%6.1f%%";
715                 total         "100";
716         };
717         column {
718                 name          "KB/sec";
719                 format_name   "%7s";
720                 value         "$inn_flow_size{$key} /
721                                        $inn_flow_time{$key} / 1024";
722                 format        "%7.2f";
723                 total         "total(%inn_flow_size) /
724                                        total(%inn_flow_time) / 1024";
725         };
726         graph {
727                 title         "Incoming articles";
728                 type          histo;
729                 data {
730                           name    "Hours";
731                           value   "%inn_flow_labels";
732                 };
733                 data {
734                           name    "Art/sec";
735                           factor  3600;
736                           value   "%inn_flow";
737                 };
738         };
739         graph {
740                 title         "Incoming articles (size)";
741                 type          histo;
742                 data {
743                           name    "Hours";
744                           value   "%inn_flow_labels";
745                 };
746                 data {
747                           name    "Kb/sec";
748                           factor  3686400;   # 3600 * 1024
749                           value   "%inn_flow_size";
750                 };
751         };
752 };
753
754 section cnfsstat {
755         title   "CNFS buffer status:";
756         data    "%cnfsstat";
757         column {
758                 name          "Buffer";
759                 format        "%-13.13s";
760                 value         "$key";
761                 format_total  "TOTAL: %-6.6s";
762                 total         "$num";
763         };
764         column {
765                 name          "Class";
766                 format        "%-13.13s";
767                 value         "$cnfsstat{$key}";
768                 format_total  "-%12s";
769                 total         "";
770         };
771         column {
772                 name          "Size";
773                 format        "%9s";
774                 value         "bytes($cnfsstat_size{$key})";
775                 total         "bytes(total(%cnfsstat_size))";
776         };
777         column {
778                 name          "Used";
779                 format        "%9s";
780                 value         "bytes($cnfsstat_used{$key})";
781                 total         "bytes(total(%cnfsstat_used))";
782         };
783         column {
784                 name          "%Used";
785                 format_name   "%7s";
786                 value         "$cnfsstat_used{$key} /
787                                        $cnfsstat_size{$key} * 100";
788                 format        "%6.1f%%";
789                 total         "total(%cnfsstat_used) /
790                                        total(%cnfsstat_size) * 100";
791         };
792         column {
793                 name          "Cycles";
794                 format_name   "%6s";
795                 format        "%6d";
796                 value         "$cnfsstat_cycles{$key}";
797                 total         "total(%cnfsstat_cycles)";
798         };
799         column {
800                 name          "KB/sec";
801                 format_name   "%7s";
802                 value         "$cnfsstat_rate{$key} /
803                                        $cnfsstat_samples{$key} / 1024";
804                 format        "%7.2f";
805                 total         "total(%cnfsstat_rate) /
806                                        total(%cnfsstat_samples) / 1024";
807         };
808         column {
809                 name          "Days";
810                 format_name   "%8s";
811                 value         "$cnfsstat_size{$key} /
812                                  ($cnfsstat_rate{$key} /
813                                     $cnfsstat_samples{$key}) / 86400";
814                 format        "%8.2f";
815                 format_total  "%7s-";
816                 total         "";
817         };
818 };
819
820 section inn_unwanted {
821         title   "Sites sending bad articles:";
822         data    "%inn_badart";
823         sort    "$inn_badart{$b} <=> $inn_badart{$a}";
824         numbering true;
825         column {
826                 name          "Server";
827                 format        "%-23.23s";
828                 value         "$key";
829                 format_total  "TOTAL: %-16.16s";
830                 total         "$num";
831         };
832         column {
833                 name          "Total";
834                 format_name   "%6s";
835                 format        "%6d";
836                 value         "$inn_badart{$key}";
837                 total         "total(%inn_badart)";
838         };
839         column {
840                 name          "Group";
841                 format_name   "%6s";
842                 format        "%6d";
843                 value         "$inn_uw_ng_s{$key}";
844                 total         "total(%inn_uw_ng_s)";
845         };
846         column {
847                 name          "Dist";
848                 format_name   "%5s";
849                 format        "%5d";
850                 value         "$inn_uw_dist_s{$key}";
851                 total         "total(%inn_uw_dist_s)";
852         };
853         column {
854                 name          "Duplic";
855                 format_name   "%6s";
856                 format        "%6d";
857                 value         "$inn_duplicate{$key}";
858                 total         "total(%inn_duplicate)";
859         };
860         column {
861                 name          "Unapp";
862                 format_name   "%5s";
863                 format        "%5d";
864                 value         "$inn_unapproved{$key}";
865                 total         "total(%inn_unapproved)";
866         };
867         column {
868                 name          "TooOld";
869                 format_name   "%6s";
870                 format        "%6d";
871                 value         "$inn_tooold{$key}";
872                 total         "total(%inn_tooold)";
873         };
874         column {
875                 name          "Site";
876                 format_name   "%4s";
877                 format        "%4d";
878                 value         "$inn_uw_site{$key}";
879                 total         "total(%inn_uw_site)";
880         };
881         column {
882                 name          "Line";
883                 format_name   "%4s";
884                 format        "%4d";
885                 value         "$inn_linecount{$key}";
886                 total         "total(%inn_linecount)";
887         };
888         column {
889                 name          "Other";
890                 format_name   "%5s";
891                 format        "%5d";
892                 value         "$innd_others{$key}";
893                 total         "total(%innd_others)";
894         };
895 };
896
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.
901         data    "%inn_uw_ng";
902         sort    "$inn_uw_ng{$b} <=> $inn_uw_ng{$a}";
903         column {
904                 name          "Newsgroup";
905                 format        "%-71.71s";
906                 value         "$key";
907                 format_total  "TOTAL: %-64.64s";
908                 total         "$num";
909         };
910         column {
911                 name          "Count";
912                 format_name   "%7s";
913                 format        "%7d";
914                 value         "$inn_uw_ng{$key}";
915                 total         "total(%inn_uw_ng)";
916         };
917 };
918
919 section inn_unwanted_dist {
920         title   "Unwanted distributions:";
921         top     20;
922         data    "%inn_uw_dist";
923         sort    "$inn_uw_dist{$b} <=> $inn_uw_dist{$a}";
924         column {
925                 name          "Distribution";
926                 format        "%-71.71s";
927                 value         "$key";
928                 format_total  "TOTAL: %-64.64s";
929                 total         "$num";
930         };
931         column {
932                 name          "Count";
933                 format_name   "%7s";
934                 format        "%7d";
935                 value         "$inn_uw_dist{$key}";
936                 total         "total(%inn_uw_dist)";
937         };
938 };
939
940 section inn_unwanted_unapp {
941         title   "Supposedly-moderated groups with unmoderated postings:";
942         top     20;
943         data    "%inn_unapproved_g";
944         sort    "$inn_unapproved_g{$b} <=> $inn_unapproved_g{$a}";
945         column {
946                 name          "Groups";
947                 format        "%-71.71s";
948                 value         "$key";
949                 format_total  "TOTAL: %-64.64s";
950                 total         "$num";
951         };
952         column {
953                 name          "Count";
954                 format_name   "%7s";
955                 format        "%7d";
956                 value         "$inn_unapproved_g{$key}";
957                 total         "total(%inn_unapproved_g)";
958         };
959 };
960
961 section inn_unwanted_path {
962         title   "Unwanted sites in Path:";
963         top     20;
964         data    "%inn_site_path";
965         sort    "$inn_site_path{$b} <=> $inn_site_path{$a}";
966         column {
967                 name          "Site";
968                 format        "%-71.71s";
969                 value         "$key";
970                 format_total  "TOTAL: %-64.64s";
971                 total         "$num";
972         };
973         column {
974                 name          "Count";
975                 format_name   "%7s";
976                 format        "%7d";
977                 value         "$inn_site_path{$key}";
978                 total         "total(%inn_site_path)";
979         };
980 };
981
982 section innd_perl {
983         title   "INND Perl filter:";
984         top     20;
985         data    "%innd_filter_perl";
986         sort    "$innd_filter_perl{$b} <=> $innd_filter_perl{$a}";
987         column {
988                 name          "Reason";
989                 format        "%-71.71s";
990                 value         "$key";
991                 format_total  "TOTAL: %-64.64s";
992                 total         "$num";
993         };
994         column {
995                 name          "Count";
996                 format_name   "%7s";
997                 format        "%7d";
998                 value         "$innd_filter_perl{$key}";
999                 total         "total(%innd_filter_perl)";
1000         };
1001 };
1002
1003 section innd_python {
1004         title   "INND Python filter:";
1005         top     20;
1006         data    "%innd_filter_python";
1007         sort    "$innd_filter_python{$b} <=> $innd_filter_python{$a}";
1008         column {
1009                 name          "Reason";
1010                 format        "%-71.71s";
1011                 value         "$key";
1012                 format_total  "TOTAL: %-64.64s";
1013                 total         "$num";
1014         };
1015         column {
1016                 name          "Count";
1017                 format_name   "%7s";
1018                 format        "%7d";
1019                 value         "$innd_filter_python{$key}";
1020                 total         "total(%innd_filter_python)";
1021         };
1022 };
1023
1024 section nocem {
1025         title   "NoCeM on Spool:";
1026         data    "%nocem_goodsigs";
1027         sort    "$nocem_goodsigs{$b} <=> $nocem_goodsigs{$a}";
1028         column {
1029                 name            "Id";
1030                 format          "%-47.47s";
1031                 value           "$key";
1032                 format_total    "TOTAL: %-40.40s";
1033                 total           "$num";
1034         };
1035         column {
1036                 name            "Good";
1037                 format          "%7s";
1038                 value           "$nocem_goodsigs{$key}";
1039                 total           "total(%nocem_goodsigs)";
1040         };
1041         column {
1042                 name            "Bad";
1043                 format          "%7s";
1044                 value           "$nocem_badsigs{$key}";
1045                 total           "total(%nocem_badsigs)";
1046         };
1047         column {
1048                 name            "Unique";
1049                 format          "%7s";
1050                 value           "$nocem_newids{$key}";
1051                 total           "total(%nocem_newids)";
1052         };
1053         column {
1054                 name            "Total";
1055                 format          "%7s";
1056                 value           "$nocem_totalids{$key}";
1057                 total           "total(%nocem_totalids)";
1058         };
1059 };
1060
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}";
1065         column {
1066                 name            "System";
1067                 format          "%-71.71s";
1068                 value           "$key";
1069                 format_total    "TOTAL: %-64.64s";
1070                 total           "$num";
1071         };
1072         column {
1073                 name            "Conn";
1074                 format_name     "%7s";
1075                 format          "%7d";
1076                 value           "$innd_no_permission{$key}";
1077                 total           "total(%innd_no_permission)";
1078         };
1079 };
1080
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}";
1085         column {
1086                 name          "Server";
1087                 format        "%-70.70s";
1088                 value         "$key";
1089                 format_total  "TOTAL: %-63.63s";
1090                 total         "$num";
1091         };
1092         column {
1093                 name          "Conn";
1094                 format_name   "%8s";
1095                 format        "%8d";
1096                 value         "$innd_max_conn{$key}";
1097                 total         "total(%innd_max_conn)";
1098         };
1099 };
1100
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}";
1106         column {
1107                 name            "System";
1108                 format          "%-71.71s";
1109                 value           "$key";
1110                 format_total    "TOTAL: %-64.64s";
1111                 total           "$num";
1112         };
1113         column {
1114                 name            "Conn";
1115                 format_name     "%7s";
1116                 format          "%7d";
1117                 value           "$innd_too_many_connects_per_minute{$key}";
1118                 total           "total(%innd_too_many_connects_per_minute)";
1119         };
1120 };
1121
1122 section innd_misc {
1123         title   "INND misc events:";
1124         data    "%innd_misc";
1125         sort    "$innd_misc{$b} <=> $innd_misc{$a}";
1126         column {
1127                 name          "Events";
1128                 format        "%-71.71s";
1129                 value         "$key";
1130                 format_total  "TOTAL: %-64.64s";
1131                 total         "$num";
1132         };
1133         column {
1134                 name          "Count";
1135                 format_name   "%7s";
1136                 format        "%7d";
1137                 value         "$innd_misc{$key}";
1138                 total         "total(%innd_misc)";
1139         };
1140 };
1141
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}";
1146         double  true;
1147         top     10;
1148         #numbering true;
1149         column {
1150                 primary       true;
1151                 name          "Event";
1152                 format        "%-69.69s";
1153                 value         "$key1";
1154                 format_total  "TOTAL: %-62.62s";
1155                 total         "$num";
1156         };
1157         column {
1158                 name          "Server";
1159                 format        "  %-67.67s";
1160                 value         "$key2";
1161                 total         "$num";
1162                 format_total  "TOTAL: %-60.60s";
1163         };
1164         column {
1165                 name          "Number";
1166                 format_name   "%9s";
1167                 format        "%9d";
1168                 value         "$innd_misc_stat{$key1}{$key2}";
1169                 total         "total(%innd_misc_stat)";
1170         };
1171 };
1172
1173 section innfeed_connect {
1174         title   "Outgoing Feeds (innfeed) by Articles:";
1175         data    "%innfeed_offered";
1176         sort    "$innfeed_accepted{$b} <=> $innfeed_accepted{$a}";
1177         numbering true;
1178         column {
1179                 name          "Server";
1180                 format        "%-18.18s";
1181                 value         "$key";
1182                 format_total  "TOTAL: %-11.11s";
1183                 total         "$num";
1184         };
1185         column {
1186                 name          "Offered";
1187                 format_name   "%7s";
1188                 format        "%7d";
1189                 value         "$innfeed_offered{$key}";
1190                 total         "total(%innfeed_offered)";
1191         };
1192         column {
1193                 name          "Taken";
1194                 format_name   "%7s";
1195                 format        "%7d";
1196                 value         "$innfeed_accepted{$key}";
1197                 total         "total(%innfeed_accepted)";
1198         };
1199         column {
1200                 name          "Refused";
1201                 format_name   "%7s";
1202                 format        "%7d";
1203                 value         "$innfeed_refused{$key}";
1204                 total         "total(%innfeed_refused)";
1205         };
1206         column {
1207                 name          "Reject";
1208                 format_name   "%6s";
1209                 format        "%6d";
1210                 value         "$innfeed_rejected{$key}";
1211                 total         "total(%innfeed_rejected)";
1212         };
1213         column {
1214                 name          "Miss";
1215                 format_name   "%6s";
1216                 format        "%6d";
1217                 value         "$innfeed_missing{$key}";
1218                 total         "total(%innfeed_missing)";
1219         };
1220         column {
1221                 name          "Spool";
1222                 format_name   "%7s";
1223                 format        "%7d";
1224                 value         "$innfeed_spooled{$key}";
1225                 total         "total(%innfeed_spooled)";
1226         };
1227         column {
1228                 name          "%Took";
1229                 format_name   "%5s";
1230                 format        "%3d%%";
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";
1235         };
1236         column {
1237                 name          "Elapsed";
1238                 format_name   "%8s";
1239                 format        "%9s";
1240                 value         "time($innfeed_seconds{$key})";
1241                 total         "time(total(%innfeed_seconds))";
1242         };
1243         graph {
1244                 title         "Outgoing feeds (innfeed) by Articles";
1245                 type          histo3d;
1246                 sort          "%innfeed_accepted";
1247                 data {
1248                           name    "Accepted";
1249                           color   "#0000FF";
1250                           value   "%innfeed_accepted";
1251                 };
1252                 data {
1253                           name    "Refused";
1254                           color   "#FFAF00";
1255                           value   "%innfeed_refused";
1256                 };
1257                 data {
1258                           name    "Rejected";
1259                           color   "#FF0000";
1260                           value   "%innfeed_rejected";
1261                 };
1262                 data {
1263                           name    "Missing";
1264                           color   "#00FF00";
1265                           value   "%innfeed_missing";
1266                 };
1267                 data {
1268                           name    "Spooled";
1269                           color   "#AF00FF";
1270                           value   "%innfeed_spooled";
1271                 };
1272         };
1273 };
1274
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}";
1279         numbering true;
1280         column {
1281                 name            "Server";
1282                 format          "%-17.17s";
1283                 value           "$key";
1284                 format_total    "TOTAL: %-10.10s";
1285                 total           "$num";
1286         };
1287         column {
1288                 name            "AcceptVol";
1289                 format          "%9s";
1290                 value           "bytes($innfeed_accepted_size{$key})";
1291                 total           "bytes(total(%innfeed_accepted_size))";
1292         };
1293         column {
1294                 name            "RejectVol";
1295                 format          "%9s";
1296                 value           "bytes($innfeed_rejected_size{$key})";
1297                 total           "bytes(total(%innfeed_rejected_size))";
1298         };
1299         column {
1300                 name            "TotalVol";
1301                 format          "%9s";
1302                 value           "bytes($innfeed_accepted_size{$key} +
1303                                        $innfeed_rejected_size{$key})";
1304                 total           "bytes(total(%innfeed_accepted_size) +
1305                                        total(%innfeed_rejected_size))";
1306         };
1307         column {
1308                 name            "Volume/sec";
1309                 format_name     "%11s";
1310                 format          "%9s/s";
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))";
1317         };
1318         column {
1319                 name            "Vol/Art";
1320                 format          "%9s";
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)))";
1329         };
1330         column {
1331                 name            "Elapsed";
1332                 format          "%9s";
1333                 value           "time($innfeed_seconds{$key})";
1334                 total           "time(total(%innfeed_seconds))";
1335         };
1336         graph {
1337                 title           "Outgoing feeds (innfeed) by Volume";
1338                 type            histo3d;
1339                 sort            "%innfeed_accepted_size";
1340                 data {
1341                         name    "Accepted";
1342                         color   "#0000FF";
1343                         value   "%innfeed_accepted_size";
1344                 };
1345                 data {
1346                         name    "Rejected";
1347                         color   "#FFAF00";
1348                         value   "%innfeed_rejected_size";
1349                 };
1350         };
1351 };
1352
1353 section innfeed_shrunk {
1354         title   "Backlog files shrunk by innfeed:";
1355         data    "%innfeed_shrunk";
1356         sort    "$innfeed_shrunk{$b} <=> $innfeed_shrunk{$a}";
1357         column {
1358                 name          "Server";
1359                 format        "%-70.70s";
1360                 value         "$key";
1361                 format_total  "TOTAL: %-63.63s";
1362                 total         "$num";
1363         };
1364         column {
1365                 name          "Size";
1366                 format        "%8s";
1367                 value         "bytes($innfeed_shrunk{$key})";
1368                 total         "bytes(total(%innfeed_shrunk))";
1369         };
1370 };
1371
1372 section nntplink_connect {
1373         title   "Outgoing Feeds (nntplink):";
1374         data    "%nntplink_site";
1375         sort    "$nntplink_accepted{$b} <=> $nntplink_accepted{$a}";
1376         numbering true;
1377         column {
1378                 name          "Server";
1379                 format        "%-25.25s";
1380                 value         "$key";
1381                 format_total  "TOTAL: %-18.18s";
1382                 total         "$num";
1383         };
1384         column {
1385                 name          "Offered";
1386                 format_name   "%8s";
1387                 format        "%8d";
1388                 value         "$nntplink_offered{$key}";
1389                 total         "total(%nntplink_offered)";
1390         };
1391         column {
1392                 name          "Taken";
1393                 format_name   "%8s";
1394                 format        "%8d";
1395                 value         "$nntplink_accepted{$key}";
1396                 total         "total(%nntplink_accepted)";
1397         };
1398         column {
1399                 name          "Rejected";
1400                 format_name   "%8s";
1401                 format        "%8d";
1402                 value         "$nntplink_rejected{$key}";
1403                 total         "total(%nntplink_rejected)";
1404         };
1405         column {
1406                 name          "Failed";
1407                 format_name   "%8s";
1408                 format        "%8d";
1409                 value         "$nntplink_failed{$key}";
1410                 total         "total(%nntplink_failed)";
1411         };
1412         column {
1413                 name          "%Accpt";
1414                 format_name   "%6s";
1415                 format        "%5d%%";
1416                 value         "$nntplink_offered{$key} == 0 ? 0 :
1417                      $nntplink_accepted{$key} / $nntplink_offered{$key} * 100";
1418                 total         "total(%nntplink_offered) == 0 ? 0 :
1419                    total(%nntplink_accepted) / total(%nntplink_offered) * 100";
1420         };
1421         column {
1422                 name          "Elapsed";
1423                 format        "%10s";
1424                 value         "time($nntplink_times{$key})";
1425                 total         "time(total(%nntplink_times))";
1426         };
1427         graph {
1428                 title         "Outgoing Feeds (nntplink)";
1429                 type          histo3d;
1430                 sort          "%nntplink_accepted";
1431                 data {
1432                           name    "Articles accepted";
1433                           color   "#0000FF";
1434                           value   "%nntplink_accepted";
1435                 };
1436                 data {
1437                           name    "Articles rejected";
1438                           color   "#FFAF00";
1439                           value   "%nntplink_rejected";
1440                 };
1441                 data {
1442                           name    "Articles failed";
1443                           color   "#FF0000";
1444                           value   "%nntplink_failed";
1445                 };
1446         };
1447 };
1448
1449 section nntplink_connect2 {
1450         title   "Outgoing Feeds (nntplink) - other information:";
1451         data    "%nntplink_site";
1452         sort    "$nntplink_accepted{$b} <=> $nntplink_accepted{$a}";
1453         numbering true;
1454         column {
1455                 name          "Server";
1456                 format        "%-20.20s";
1457                 value         "$key";
1458                 format_total  "TOTAL: %-13.13s";
1459                 total         "$num";
1460         };
1461         column {
1462                 name          "Conn";
1463                 format_name   "%4s";
1464                 format        "%4d";
1465                 value         "$nntplink_site{$key}";
1466                 total         "total(%nntplink_site)";
1467         };
1468         column {
1469                 name          "Ok";
1470                 format_name   "%4s";
1471                 format        "%4d";
1472                 value         "$nntplink_site{$key} - ($nntplink_eof{$key} +
1473                                $nntplink_sockerr{$key} +
1474                                $nntplink_selecterr{$key} +
1475                                $nntplink_hiload{$key} + $nntplink_bpipe{$key} +
1476                                $nntplink_nospace{$key} + $nntplink_auth{$key} +
1477                                $nntplink_expire{$key} + $nntplink_fail{$key})";
1478                 total         "total(%nntplink_site) - (total(%nntplink_eof) +
1479                                total(%nntplink_sockerr) +
1480                                total(%nntplink_selecterr) +
1481                                total(%nntplink_hiload) +
1482                                total(%nntplink_bpipe) +
1483                                total(%nntplink_nospace) +
1484                                total(%nntplink_auth) +
1485                                total(%nntplink_expire) +
1486                                total(%nntplink_fail))";
1487         };
1488         column {
1489                 name          "EOF";
1490                 format_name   "%3s";
1491                 format        "%3d";
1492                 value         "$nntplink_eof{$key}";
1493                 total         "total(%nntplink_eof)";
1494         };
1495         column {
1496                 name          "Sock";
1497                 format_name   "%4s";
1498                 format        "%4d";
1499                 value         "$nntplink_sockerr{$key}";
1500                 total         "total(%nntplink_sockerr)";
1501         };
1502         column {
1503                 name          "Slct";
1504                 format_name   "%4s";
1505                 format        "%4d";
1506                 value         "$nntplink_selecterr{$key}";
1507                 total         "total(%nntplink_selecterr)";
1508         };
1509         column {
1510                 name          "Load";
1511                 format_name   "%4s";
1512                 format        "%4d";
1513                 value         "$nntplink_hiload{$key}";
1514                 total         "total(%nntplink_hiload)";
1515         };
1516         column {
1517                 name          "Bpip";
1518                 format_name   "%4s";
1519                 format        "%4d";
1520                 value         "$nntplink_bpipe{$key}";
1521                 total         "total(%nntplink_bpipe)";
1522         };
1523         column {
1524                 name          "Spce";
1525                 format_name   "%4s";
1526                 format        "%4d";
1527                 value         "$nntplink_nospace{$key}";
1528                 total         "total(%nntplink_nospace)";
1529         };
1530         column {
1531                 name          "Exp";
1532                 format_name   "%4s";
1533                 format        "%4d";
1534                 value         "$nntplink_expire{$key}";
1535                 total         "total(%nntplink_expire)";
1536         };
1537         column {
1538                 name          "Auth";
1539                 format_name   "%4s";
1540                 format        "%4d";
1541                 value         "$nntplink_auth{$key}";
1542                 total         "total(%nntplink_auth)";
1543         };
1544         column {
1545                 name          "Othr";
1546                 format_name   "%4s";
1547                 format        "%4d";
1548                 value         "$nntplink_fail{$key}";
1549                 total         "total(%nntplink_fail)";
1550         };
1551         column {
1552                 name          "Pct";
1553                 format_name   "%4s";
1554                 format        "%3d%%";
1555                 value         "$nntplink_site{$key} ?
1556                                100 * ($nntplink_site{$key} -
1557                                ($nntplink_eof{$key} + $nntplink_sockerr{$key} +
1558                                $nntplink_selecterr{$key} +
1559                                $nntplink_hiload{$key} + $nntplink_bpipe{$key} +
1560                                $nntplink_nospace{$key} + $nntplink_auth{$key} +
1561                                $nntplink_expire{$key} +
1562                             $nntplink_fail{$key})) / $nntplink_site{$key} : 0";
1563                 total         "total(%nntplink_site) ?
1564                                100 * (total(%nntplink_site) -
1565                                (total(%nntplink_eof) +
1566                                total(%nntplink_sockerr) +
1567                                total(%nntplink_selecterr) +
1568                                total(%nntplink_hiload) +
1569                                total(%nntplink_bpipe) +
1570                                total(%nntplink_nospace) +
1571                                total(%nntplink_auth) +
1572                                total(%nntplink_expire) +
1573                           total(%nntplink_fail))) / total(%nntplink_site) : 0";
1574         };
1575 };
1576
1577 section innxmit_connect {
1578         title   "Outgoing Feeds (innxmit) by Articles:";
1579         data    "%innxmit_times";
1580         sort    "$innxmit_accepted{$b} <=> $innxmit_accepted{$a}";
1581         numbering true;
1582         column {
1583                 name          "Server";
1584                 format        "%-27.27s";
1585                 value         "$key";
1586                 format_total  "TOTAL: %-20.20s";
1587                 total         "$num";
1588         };
1589         column {
1590                 name          "Offered";
1591                 format_name   "%7s";
1592                 format        "%7d";
1593                 value         "$innxmit_offered{$key}";
1594                 total         "total(%innxmit_offered)";
1595         };
1596         column {
1597                 name          "Taken";
1598                 format_name   "%7s";
1599                 format        "%7d";
1600                 value         "$innxmit_accepted{$key}";
1601                 total         "total(%innxmit_accepted)";
1602         };
1603         column {
1604                 name          "Refused";
1605                 format_name   "%7s";
1606                 format        "%7d";
1607                 value         "$innxmit_refused{$key}";
1608                 total         "total(%innxmit_refused)";
1609         };
1610         column {
1611                 name          "Reject";
1612                 format_name   "%7s";
1613                 format        "%7d";
1614                 value         "$innxmit_rejected{$key}";
1615                 total         "total(%innxmit_rejected)";
1616         };
1617         column {
1618                 name          "Miss";
1619                 format_name   "%5s";
1620                 format        "%5d";
1621                 value         "$innxmit_missing{$key}";
1622                 total         "total(%innxmit_rejected)";
1623         };
1624         column {
1625                 name          "%Acc";
1626                 format_name   "%4s";
1627                 format        "%3d%%";
1628                 value         "$innxmit_offered{$key} == 0 ? 0 :
1629                        $innxmit_accepted{$key} / $innxmit_offered{$key} * 100";
1630                 total         "total(%innxmit_offered) == 0 ? 0 :
1631                      total(%innxmit_accepted) / total(%innxmit_offered) * 100";
1632         };
1633         column {
1634                 name          "Elapsed";
1635                 format        "%8s";
1636                 value         "time($innxmit_times{$key})";
1637                 total         "time(total(%innxmit_times))";
1638         };
1639         graph {
1640                 title         "Outgoing Feeds (innxmit)";
1641                 type          histo3d;
1642                 sort          "%innxmit_accepted";
1643                 data {
1644                           name    "Art. accepted";
1645                           color   "#0000FF";
1646                           value   "%innxmit_accepted";
1647                 };
1648                 data {
1649                           name    "Art. refused";
1650                           color   "#FFAF00";
1651                           value   "%innxmit_refused";
1652                 };
1653                 data {
1654                           name    "Art. rejected";
1655                           color   "#FF0000";
1656                           value   "%innxmit_rejected";
1657                 };
1658                 data {
1659                           name    "Art. missing";
1660                           color   "#00FF00";
1661                           value   "%innxmit_missing";
1662                 };
1663         };
1664 };
1665
1666 section innxmit_volume {
1667         title   "Outgoing Feeds (innxmit) by Volume:";
1668         data    "%innxmit_accepted_size";
1669         sort    "$innxmit_accepted_size{$b} <=> $innxmit_accepted_size{$a}";
1670         numbering true;
1671         column {
1672                 name            "Server";
1673                 format          "%-24.24s";
1674                 value           "$key";
1675                 format_total    "TOTAL: %-17.17s";
1676                 total           "$num";
1677         };
1678         column {
1679                 name            "AcceptVol";
1680                 format          "%9s";
1681                 value           "bytes($innxmit_accepted_size{$key})";
1682                 total           "bytes(total(%innxmit_accepted_size))";
1683         };
1684         column {
1685                 name            "RejectVol";
1686                 format          "%9s";
1687                 value           "bytes($innxmit_rejected_size{$key})";
1688                 total           "bytes(total(%innxmit_rejected_size))";
1689         };
1690         column {
1691                 name            "TotalVol";
1692                 format          "%9s";
1693                 value           "bytes($innxmit_accepted_size{$key} +
1694                                        $innxmit_rejected_size{$key} +
1695                                        $innxmit_bytes{$key})";
1696                 total           "bytes(total(%innxmit_accepted_size) +
1697                                        total(%innxmit_rejected_size) +
1698                                        total(%innxmit_bytes))";
1699         };
1700         column {
1701                 name            "KB/s";
1702                 format_name     "%5s";
1703                 format          "%5.1f";
1704                 value           "($innxmit_accepted_size{$key} +
1705                                   $innxmit_rejected_size{$key} +
1706                                   $innxmit_bytes{$key}) /
1707                                     $innxmit_times{$key} / 1024";
1708                 total           "(total(%innxmit_accepted_size) +
1709                                   total(%innxmit_rejected_size) +
1710                                   total(%innxmit_bytes)) /
1711                                     total(%innxmit_times) / 1024";
1712         };
1713         column {
1714                 name            "Vol/Art";
1715                 format          "%9s";
1716                 value           "bytes(($innxmit_accepted_size{$key} +
1717                                         $innxmit_rejected_size{$key} +
1718                                         $innxmit_bytes{$key}) /
1719                                          ($innxmit_accepted{$key} +
1720                                           $innxmit_rejected{$key}))";
1721                 total           "bytes((total(%innxmit_accepted_size) +
1722                                         total(%innxmit_rejected_size) +
1723                                         total(%innxmit_bytes)) /
1724                                          (total(%innxmit_accepted) +
1725                                           total(%innxmit_rejected)))";
1726         };
1727         column {
1728                 name            "Elapsed";
1729                 format          "%8s";
1730                 value           "time($innxmit_times{$key})";
1731                 total           "time(total(%innxmit_times))";
1732         };
1733         graph {
1734                 title           "Outgoing Feeds (innxmit)";
1735                 type            histo3d;
1736                 sort            "%innxmit_accepted";
1737                 data {
1738                         name    "Articles accepted";
1739                         color   "#0000FF";
1740                         value   "%innxmit_accepted_size";
1741                 };
1742                 data {
1743                         name    "Articles rejected";
1744                         color   "#FFAF00";
1745                         value   "%innxmit_rejected_size";
1746                 };
1747                 data {
1748                         name    "Total";
1749                         color   "#FF0000";
1750                         value   "%innxmit_missing";
1751                 };
1752         };
1753 };
1754
1755
1756 section innxmit_connect2 {
1757         title   "Outgoing Feeds (innxmit) - other information:";
1758         data    "%innxmit_site";
1759         sort    "$innxmit_accepted{$b} <=> $innxmit_accepted{$a}";
1760         numbering true;
1761         column {
1762                 name          "Server";
1763                 format        "%-25.25s";
1764                 value         "$key";
1765                 format_total  "TOTAL: %-18.18s";
1766                 total         "$num";
1767         };
1768         column {
1769                 name          "Conn";
1770                 format_name   "%5s";
1771                 format        "%5d";
1772                 value         "$innxmit_site{$key}";
1773                 total         "total(%innxmit_site)";
1774         };
1775         column {
1776                 name          "Ok";
1777                 format_name   "%5s";
1778                 format        "%5d";
1779                 value         "$innxmit_site{$key} -
1780                                ($innxmit_afail_host{$key} +
1781                                $innxmit_hiload{$key} + $innxmit_nospace{$key} +
1782                                $innxmit_cfail_host{$key} +
1783                              $innxmit_expire{$key} + $innxmit_crefused{$key})";
1784                 total         "total(%innxmit_site) -
1785                                (total(%innxmit_afail_host) +
1786                                total(%innxmit_hiload) +
1787                                total(%innxmit_nospace) +
1788                                total(%innxmit_cfail_host) +
1789                                total(%innxmit_expire) +
1790                                total(%innxmit_crefused))";
1791         };
1792         column {
1793                 name          "Auth";
1794                 format_name   "%4s";
1795                 format        "%4d";
1796                 value         "$innxmit_afail_host{$key}";
1797                 total         "total(%innxmit_afail_host)";
1798         };
1799         column {
1800                 name          "Load";
1801                 format_name   "%4s";
1802                 format        "%4d";
1803                 value         "$innxmit_hiload{$key}";
1804                 total         "total(%innxmit_hiload)";
1805         };
1806         column {
1807                 name          "Space";
1808                 format_name   "%5s";
1809                 format        "%5d";
1810                 value         "$innxmit_nospace{$key}";
1811                 total         "total(%innxmit_nospace)";
1812         };
1813         column {
1814                 name          "Expire";
1815                 format_name   "%6s";
1816                 format        "%6d";
1817                 value         "$innxmit_expire{$key}";
1818                 total         "total(%innxmit_expire)";
1819         };
1820         column {
1821                 name          "Connct";
1822                 format_name   "%6s";
1823                 format        "%6d";
1824                 value         "$innxmit_cfail_host{$key}";
1825                 total         "total(%innxmit_cfail_host)";
1826         };
1827         column {
1828                 name          "Other";
1829                 format_name   "%6s";
1830                 format        "%6d";
1831                 value         "$innxmit_crefused{$key}";
1832                 total         "total(%innxmit_crefused)";
1833         };
1834         column {
1835                 name          "Pct";
1836                 format_name   "%4s";
1837                 format        "%3d%%";
1838                 value         "$innxmit_site{$key} ? 100 *
1839                                ($innxmit_site{$key} -
1840                                ($innxmit_afail_host{$key} +
1841                                $innxmit_hiload{$key} + $innxmit_nospace{$key} +
1842                                $innxmit_cfail_host{$key} +
1843                                $innxmit_expire{$key} +
1844                           $innxmit_crefused{$key})) / $innxmit_site{$key} : 0";
1845                 total         "total(%innxmit_site) ?
1846                                100 * (total(%innxmit_site) -
1847                                (total(%innxmit_afail_host) +
1848                                total(%innxmit_hiload) +
1849                                total(%innxmit_nospace) +
1850                                total(%innxmit_cfail_host) +
1851                                total(%innxmit_expire) +
1852                         total(%innxmit_crefused))) / total(%innxmit_site) : 0";
1853         };
1854 };
1855
1856 section innxmit_unwanted {
1857         title   "Sites fed by innxmit rejecting bad articles:";
1858         data    "%innxmit_badart";
1859         sort    "$innxmit_badart{$b} <=> $innxmit_badart{$a}";
1860         column {
1861         numbering true;
1862                 name          "Server";
1863                 format        "%-23.23s";
1864                 value         "$key";
1865                 format_total  "TOTAL: %-16.16s";
1866                 total         "$num";
1867         };
1868         column {
1869                 name          "Total";
1870                 format_name   "%6s";
1871                 format        "%6d";
1872                 value         "$innxmit_badart{$key}";
1873                 total         "total(%innxmit_badart)";
1874         };
1875         column {
1876                 name          "Group";
1877                 format_name   "%6s";
1878                 format        "%6d";
1879                 value         "$innxmit_uw_ng_s{$key}";
1880                 total         "total(%innxmit_uw_ng_s)";
1881         };
1882         column {
1883                 name          "Dist";
1884                 format_name   "%5s";
1885                 format        "%5d";
1886                 value         "$innxmit_uw_dist_s{$key}";
1887                 total         "total(%innxmit_uw_dist_s)";
1888         };
1889         column {
1890                 name          "Duplic";
1891                 format_name   "%6s";
1892                 format        "%6d";
1893                 value         "$innxmit_duplicate{$key}";
1894                 total         "total(%innxmit_duplicate)";
1895         };
1896         column {
1897                 name          "Unapp";
1898                 format_name   "%5s";
1899                 format        "%5d";
1900                 value         "$innxmit_unapproved{$key}";
1901                 total         "total(%innxmit_unapproved)";
1902         };
1903         column {
1904                 name          "TooOld";
1905                 format_name   "%6s";
1906                 format        "%6d";
1907                 value         "$innxmit_tooold{$key}";
1908                 total         "total(%innxmit_tooold)";
1909         };
1910         column {
1911                 name          "Site";
1912                 format_name   "%4s";
1913                 format        "%4d";
1914                 value         "$innxmit_uw_site{$key}";
1915                 total         "total(%innxmit_uw_site)";
1916         };
1917         column {
1918                 name          "Line";
1919                 format_name   "%4s";
1920                 format        "%4d";
1921                 value         "$innxmit_linecount{$key}";
1922                 total         "total(%innxmit_linecount)";
1923         };
1924         column {
1925                 name          "Other";
1926                 format_name   "%5s";
1927                 format        "%5d";
1928                 value         "$innxmit_others{$key}";
1929                 total         "total(%innxmit_others)";
1930         };
1931 };
1932
1933 section crosspost {
1934         title   "Crosspost stats:";
1935         data    "%crosspost";
1936         column {
1937                 name          "Events";
1938                 format        "%-63.63s";
1939                 value         "$key";
1940                 format_total  "TOTAL: %-56.56s";
1941                 total         "$num";
1942         };
1943         column {
1944                 name          "Number";
1945                 value         "$crosspost{$key}";
1946                 format        "%7s";
1947                 total         "total(%crosspost)";
1948         };
1949         column {
1950                 name          "Num/min";
1951                 value         "$crosspost_times{$key}";
1952                 format        "%7s";
1953                 total         "total(%crosspost_times)";
1954         };
1955 };
1956
1957 section batcher_elapsed {
1958         title   "UUCP batches created:";
1959         data    "%batcher_elapsed";
1960         column {
1961                 name          "Server";
1962                 format        "%-41.41s";
1963                 value         "$key";
1964                 format_total  "TOTAL: %-34.34s";
1965                 total         "$num";
1966         };
1967         column {
1968                 name          "Offered";
1969                 format_name   "%7s";
1970                 format        "%7d";
1971                 value         "$batcher_offered{$key}";
1972                 total         "total(%batcher_offered)";
1973         };
1974         column {
1975                 name          "Articles";
1976                 format_name   "%8s";
1977                 format        "%8d";
1978                 value         "$batcher_articles{$key}";
1979                 total         "total(%batcher_articles)";
1980         };
1981         column {
1982                 name          "Size";
1983                 format        "%10s";
1984                 value         "bytes($batcher_bytes{$key})";
1985                 total         "bytes(total(%batcher_bytes))";
1986         };
1987         column {
1988                 name          "Elapsed";
1989                 format        "%9s";
1990                 value         "time($batcher_elapsed{$key})";
1991                 total         "time(total(%batcher_elapsed))";
1992         };
1993 };
1994
1995 section rnews_host {
1996         title   "Rnews articles offered from:";
1997         data    "%rnews_host";
1998         sort    "$rnews_host{$b} <=> $rnews_host{$a}";
1999         column {
2000                 name          "System";
2001                 format        "%-71.71s";
2002                 value         "$key";
2003                 format_total  "TOTAL: %-64.64s";
2004                 total         "$num";
2005         };
2006         column {
2007                 name          "Offered";
2008                 format_name   "%7s";
2009                 format        "%7d";
2010                 value         "$rnews_host{$key}";
2011                 total         "total(%rnews_host)";
2012         };
2013 };
2014
2015 section rnews_rejected {
2016         title   "Rnews connections rejected:";
2017         data    "%rnews_rejected";
2018         sort    "$rnews_rejected{$b} <=> $rnews_rejected{$a}";
2019         column {
2020                 name          "Reason";
2021                 format        "%-71.71s";
2022                 value         "$key";
2023                 format_total  "TOTAL: %-64.64s";
2024                 total         "$num";
2025         };
2026         column {
2027                 name          "Conn";
2028                 format_name   "%7s";
2029                 format        "%7d";
2030                 value         "$rnews_rejected{$key}";
2031                 total         "total(%rnews_rejected)";
2032         };
2033 };
2034
2035 section rnews_misc {
2036         title   "Miscellaneous rnews statistics:";
2037         data    "%rnews_misc";
2038         sort    "$rnews_misc{$b} <=> $rnews_misc{$a}";
2039         double  true;
2040         column {
2041                 primary       true;
2042                 name          "Event";
2043                 format        "%-69.69s";
2044                 value         "$key1";
2045                 format_total  "TOTAL: %-62.62s";
2046                 total         "";
2047         };
2048         column {
2049                 name          "Element";
2050                 format        "  %-67.67s";
2051                 value         "$key2";
2052                 total         "";
2053         };
2054         column {
2055                 name          "Number";
2056                 format_name   "%9s";
2057                 format        "%9d";
2058                 value         "$rnews_misc{$key1}{$key2}";
2059                 total         "total(%rnews_misc)";
2060         };
2061 };
2062
2063 section nnrpd_groups {
2064         title   "NNRP readership statistics:";
2065         data    "%nnrpd_articles";
2066         sort    "$nnrpd_articles{$b} <=> $nnrpd_articles{$a}";
2067         numbering true;
2068         column {
2069                 name          "System";
2070                 format        "%-30.30s";
2071                 value         "$key";
2072                 format_total  "TOTAL: %-23.23s";
2073                 total         "$num";
2074         };
2075         column {
2076                 name          "Conn";
2077                 format_name   "%4s";
2078                 format        "%4d";
2079                 value         "$nnrpd_connect{$key}";
2080                 total         "total(%nnrpd_connect)";
2081         };
2082         column {
2083                 name          "Arts";
2084                 format_name   "%6s";
2085                 format        "%6d";
2086                 value         "$nnrpd_articles{$key}";
2087                 total         "total(%nnrpd_articles)";
2088         };
2089         column {
2090                 name          "Size";
2091                 format        "%9s";
2092                 value         "bytes($nnrpd_bytes{$key})";
2093                 total         "bytes(total(%nnrpd_bytes))";
2094         };
2095         column {
2096                 name          "Groups";
2097                 format_name   "%6s";
2098                 format        "%6d";
2099                 value         "$nnrpd_groups{$key}";
2100                 total         "total(%nnrpd_groups)";
2101         };
2102         column {
2103                 name          "Post";
2104                 format_name   "%4s";
2105                 format        "%4d";
2106                 value         "$nnrpd_post_ok{$key}";
2107                 total         "total(%nnrpd_post_ok)";
2108         };
2109         column {
2110                 name          "Rej";
2111                 format_name   "%4s";
2112                 format        "%4d";
2113                 value         "($nnrpd_post_rej{$key}||0) +
2114                                ($nnrpd_post_error{$key}||0)";
2115                 total         "total(%nnrpd_post_rej) +
2116                                total(%nnrpd_post_error)";
2117         };
2118         column {
2119                 name          "Elapsed";
2120                 format        "%9s";
2121                 value         "time($nnrpd_times{$key})";
2122                 total         "time(total(%nnrpd_times))";
2123         };
2124 };
2125
2126 section nnrpd_dom_groups {
2127         title   "NNRP readership statistics (by domain):";
2128         data    "%nnrpd_dom_connect";
2129         sort    "$nnrpd_dom_articles{$b} <=> $nnrpd_dom_articles{$a}";
2130         numbering true;
2131         column {
2132                 name          "System";
2133                 format        "%-30.30s";
2134                 value         "$key";
2135                 format_total  "TOTAL: %-23.23s";
2136                 total         "$num";
2137         };
2138         column {
2139                 name          "Conn";
2140                 format_name   "%4s";
2141                 format        "%4d";
2142                 value         "$nnrpd_dom_connect{$key}";
2143                 total         "total(%nnrpd_dom_connect)";
2144         };
2145         column {
2146                 name          "Arts";
2147                 format_name   "%6s";
2148                 format        "%6d";
2149                 value         "$nnrpd_dom_articles{$key}";
2150                 total         "total(%nnrpd_dom_articles)";
2151         };
2152         column {
2153                 name          "Size";
2154                 format        "%9s";
2155                 value         "bytes($nnrpd_dom_bytes{$key})";
2156                 total         "bytes(total(%nnrpd_dom_bytes))";
2157         };
2158         column {
2159                 name          "Groups";
2160                 format_name   "%6s";
2161                 format        "%6d";
2162                 value         "$nnrpd_dom_groups{$key}";
2163                 total         "total(%nnrpd_dom_groups)";
2164         };
2165         column {
2166                 name          "Post";
2167                 format_name   "%4s";
2168                 format        "%4d";
2169                 value         "$nnrpd_dom_post_ok{$key}";
2170                 total         "total(%nnrpd_dom_post_ok)";
2171         };
2172         column {
2173                 name          "Rej";
2174                 format_name   "%4s";
2175                 format        "%4d";
2176                 value         "($nnrpd_dom_post_rej{$key}||0) +
2177                                ($nnrpd_dom_post_error{$key}||0)";
2178                 total         "total(%nnrpd_dom_post_rej) +
2179                                total(%nnrpd_dom_post_error)";
2180         };
2181         column {
2182                 name          "Elapsed";
2183                 format        "%9s";
2184                 value         "time($nnrpd_dom_times{$key})";
2185                 total         "time(total(%nnrpd_dom_times))";
2186         };
2187 };
2188
2189 section nnrpd_auth {
2190         title   "NNRP auth users:";
2191         data    "%nnrpd_auth";
2192         top     20;
2193         sort    "$nnrpd_auth{$b} <=> $nnrpd_auth{$a}";
2194         column {
2195                 name          "User";
2196                 format        "%-71.71s";
2197                 value         "$key";
2198                 format_total  "TOTAL: %-64.64s";
2199                 total         "$num";
2200         };
2201         column {
2202                 name          "Conn";
2203                 format_name   "%7s";
2204                 format        "%7d";
2205                 value         "$nnrpd_auth{$key}";
2206                 total         "total(%nnrpd_auth)";
2207         };
2208 };
2209
2210 section nnrpd_resource {
2211         title   "NNRP total resource statistics:";
2212         data    "%nnrpd_resource_elapsed";
2213         top     20;
2214         sort    "$nnrpd_resource_elapsed{$b} <=> $nnrpd_resource_elapsed{$a}";
2215         column {
2216                 name          "System";
2217                 format        "%-40.40s";
2218                 format_total  "TOTAL: %-33.33s";
2219                 value         "$key";
2220                 total         "$num";
2221         };
2222         column {
2223                 name          "User(ms)";
2224                 format_name   "%9s";
2225                 format        "%9.3f";
2226                 value         "$nnrpd_resource_user{$key}";
2227                 total         "total(%nnrpd_resource_user)";
2228         };
2229         column {
2230                 name          "System(ms)";
2231                 format_name   "%9s";
2232                 format        "%9.3f";
2233                 value         "$nnrpd_resource_system{$key}";
2234                 total         "total(%nnrpd_resource_system)";
2235         };
2236         column {
2237                 name          "Idle(ms)";
2238                 format_name   "%9s";
2239                 format        "%9.3f";
2240                 value         "$nnrpd_resource_idle{$key}";
2241                 total         "total(%nnrpd_resource_idle)";
2242         };
2243         column {
2244                 name          "Elapsed";
2245                 format_name   "%8s";
2246                 format        "%9s";
2247                 value         "time($nnrpd_resource_elapsed{$key})";
2248                 total         "time(total(%nnrpd_resource_elapsed))";
2249         };
2250 };
2251
2252 section nnrpd_curious {
2253         title   "Curious NNRP server explorers:";
2254         data    "%nnrpd_curious";
2255         top     20;
2256         sort    "$nnrpd_curious{$b} <=> $nnrpd_curious{$a}";
2257         column {
2258                 name          "System";
2259                 format        "%-71.71s";
2260                 value         "$key";
2261                 format_total  "TOTAL: %-64.64s";
2262                 total         "$num";
2263         };
2264         column {
2265                 name          "Conn";
2266                 format_name   "%7s";
2267                 format        "%7d";
2268                 value         "$nnrpd_curious{$key}";
2269                 total         "total(%nnrpd_curious)";
2270         };
2271 };
2272
2273 section nnrpd_no_permission {
2274         title   "NNRP no permission clients:";
2275         data    "%nnrpd_no_permission";
2276         sort    "$nnrpd_no_permission{$b} <=> $nnrpd_no_permission{$a}";
2277         column {
2278                 name          "System";
2279                 format        "%-71.71s";
2280                 value         "$key";
2281                 format_total  "TOTAL: %-64.64s";
2282                 total         "$num";
2283         };
2284         column {
2285                 name          "Conn";
2286                 format_name   "%7s";
2287                 format        "%7d";
2288                 value         "$nnrpd_no_permission{$key}";
2289                 total         "total(%nnrpd_no_permission)";
2290         };
2291 };
2292
2293 section nnrpd_gethostbyaddr {
2294         title   "NNRP gethostbyaddr failures:";
2295         data    "%nnrpd_gethostbyaddr";
2296         top     20;
2297         sort    "$nnrpd_gethostbyaddr{$b} <=> $nnrpd_gethostbyaddr{$a}";
2298         column {
2299                 name          "System";
2300                 format        "%-71.71s";
2301                 value         "$key";
2302                 format_total  "TOTAL: %-64.64s";
2303                 total         "$num";
2304         };
2305         column {
2306                 name          "Conn";
2307                 format_name   "%7s";
2308                 format        "%7d";
2309                 value         "$nnrpd_gethostbyaddr{$key}";
2310                 total         "total(%nnrpd_gethostbyaddr)";
2311         };
2312 };
2313
2314 section nnrpd_unrecognized {
2315         title   "NNRP unrecognized commands (by host):";
2316         data    "%nnrpd_unrecognized";
2317         sort    "$nnrpd_unrecognized{$b} <=> $nnrpd_unrecognized{$a}";
2318         column {
2319                 name          "System";
2320                 format        "%-71.71s";
2321                 value         "$key";
2322                 format_total  "TOTAL: %-64.64s";
2323                 total         "$num";
2324         };
2325         column {
2326                 name          "Conn";
2327                 format_name   "%7s";
2328                 format        "%7d";
2329                 value         "$nnrpd_unrecognized{$key}";
2330                 total         "total(%nnrpd_unrecognized)";
2331         };
2332 };
2333
2334 section nnrpd_unrecognized2 {
2335         title   "NNRP unrecognized commands (by command):";
2336         data    "%nnrpd_unrecogn_cmd";
2337         sort    "$nnrpd_unrecogn_cmd{$b} <=> $nnrpd_unrecogn_cmd{$a}";
2338         column {
2339                 name          "Command";
2340                 format        "%-71.71s";
2341                 value         "$key";
2342                 format_total  "TOTAL: %-64.64s";
2343                 total         "$num";
2344         };
2345         column {
2346                 name          "Count";
2347                 format_name   "%7s";
2348                 format        "%7d";
2349                 value         "$nnrpd_unrecogn_cmd{$key}";
2350                 total         "total(%nnrpd_unrecogn_cmd)";
2351         };
2352 };
2353
2354 section nnrpd_timeout {
2355         title   "NNRP client timeouts:";
2356         data    "%nnrpd_timeout";
2357         top     20;
2358         sort    "$nnrpd_timeout{$b} <=> $nnrpd_timeout{$a}";
2359         column {
2360                 name          "System";
2361                 format        "%-67.67s";
2362                 value         "$key";
2363                 format_total  "TOTAL: %-60.60s";
2364                 total         "$num";
2365         };
2366         column {
2367                 name          "Conn";
2368                 format_name   "%5s";
2369                 format        "%5d";
2370                 value         "$nnrpd_timeout{$key}";
2371                 total         "total(%nnrpd_timeout)";
2372         };
2373         column {
2374                 name          "Peer";
2375                 format_name   "%5s";
2376                 format        "%5d";
2377                 value         "$nnrpd_reset_peer{$key}";
2378                 total         "total(%nnrpd_reset_peer)";
2379         };
2380 };
2381
2382 section nnrpd_hierarchy {
2383         title   "Newsgroup request counts (by category):";
2384         data    "%nnrpd_hierarchy";
2385         sort    "$nnrpd_hierarchy{$b} <=> $nnrpd_hierarchy{$a}";
2386         numbering true;
2387         column {
2388                 name          "Category";
2389                 format        "%-64.64s";
2390                 value         "$key";
2391                 format_total  "TOTAL: %-57.57s";
2392                 total         "$num";
2393         };
2394         column {
2395                 name          "Count";
2396                 format_name   "%7s";
2397                 format        "%7d";
2398                 value         "$nnrpd_hierarchy{$key}";
2399                 total         "total(%nnrpd_hierarchy)";
2400         };
2401         column {
2402                 name          "Pct";
2403                 format_name   "%6s";
2404                 format        "%5.1f%%";
2405                 value         "$nnrpd_hierarchy{$key} /
2406                                total(%nnrpd_hierarchy) * 100";
2407                 total         "100";
2408         };
2409         # graph : type piechart
2410 };
2411
2412 section nnrpd_group {
2413         title   "Newsgroup request counts (by newsgroup):";
2414         data    "%nnrpd_group";
2415         sort    "$nnrpd_group{$b} <=> $nnrpd_group{$a}";
2416         top     100;
2417         numbering true;
2418         column {
2419                 name          "Newsgroup";
2420                 format        "%-71.71s";
2421                 value         "$key";
2422                 format_total  "TOTAL: %-64.64s";
2423                 total         "$num";
2424         };
2425         column {
2426                 name          "Count";
2427                 format_name   "%7s";
2428                 format        "%7d";
2429                 value         "$nnrpd_group{$key}";
2430                 total         "total(%nnrpd_group)";
2431         };
2432 };
2433
2434 section ihave_site {
2435         title   "IHAVE messages offered from:";
2436         data    "%controlchan_ihave_site";
2437         sort    "$controlchan_ihave_site{$b} <=> $controlchan_ihave_site{$a}";
2438         column {
2439                 name            "System";
2440                 format          "%-71.71s";
2441                 value           "$key";
2442                 format_total    "TOTAL: %-64.64s";
2443                 total           "$num";
2444         };
2445         column {
2446                 name            "Offered";
2447                 format_name     "%7s";
2448                 format          "%7d";
2449                 value           "$controlchan_ihave_site{$key}";
2450                 total           "total(%controlchan_ihave_site)";
2451         };
2452 };
2453
2454 section sendme_site {
2455         title   "SENDME messages offered from:";
2456         data    "%controlchan_sendme_site";
2457         sort    "$controlchan_sendme_site{$b} <=>
2458                  $controlchan_sendme_site{$a}";
2459         column {
2460                 name            "System";
2461                 format          "%-71.71s";
2462                 value           "$key";
2463                 format_total    "TOTAL: %-64.64s";
2464                 total           "$num";
2465         };
2466         column {
2467                 name            "Offered";
2468                 format_name     "%7s";
2469                 format          "%7d";
2470                 value           "$controlchan_sendme_site{$key}";
2471                 total           "total(%controlchan_sendme_site)";
2472         };
2473 };