##########################################################
# Configuration file for innreport (3.0.0 and more).
#
# Sample file for INN.
# Tested with INN 1.8current and 1.5.1
#
# (c) 1997 by Fabien Tassin <tassin@eerie.fr>
# version 2.1.9_3
##########################################################

# Default parameters
section default {
        text            true;
        html            true;
        graph           true;
	archive		true;  # use false to keep only the latest HTML report.
	index		"index.html"; # name of the HTML index file.
	cycle		none;         # use a number or 'none'.
        separator       ":";          # use a valid filename character.
	unknown		true;         # want unknown entries.
	max_unknown     50;           # max unknown entries to display.
	casesensitive   true;
        html_dir        "http/innreport";
	img_dir         "pics";       # images will go to html_dir/img_dir
	title		"Daily Usenet report";
#	title	"Daily Usenet report for <A HREF=\"/~news/\">news.domain.net</A>";
        footer		"<A HREF=http://www.nntpcache.com/>www.nntpcache.com</A>";
	module		"innreport";
	libpath         "/usr/local/news/etc";
};

section index {
	column {
		title	"Dates";
		value	"date";
	};
	column {
		title	"Incoming feeds";
		name	"Offered|Accepted|Volume";
		value	"total(%innd_offered)|total(%innd_accepted)|bytes(total(%inn_flow_size))";
	};
	column {
		title	"Outgoing feeds";
		name	"Offered|Accepted";
		value	"total(%innfeed_offered)+total(%nntplink_offered)+total(%innxmit_offered)|total(%innfeed_accepted)+total(%nntplink_accepted)+total(%innxmit_accepted)";
	};
};
		
section prog_type {
        #skip    true;                          # used to skip a section.
        title   "Log entries by:";
	data    "%prog_type";
	sort    "$prog_type{$b} <=> $prog_type{$a}";
        column {
                name          "Program name";
                format        "%-46.46s";
		value         "$key";
		format_total  "TOTAL: %-39.39s";
		total         "$num";
        };
        column {
                name          "Lines";
                format_name   "%7s";
                format        "%7d";
		value         "$prog_type{$key}";
		total         "total(%prog_type)";
        };
        column {
                name          "%Lines";
                format_name   "%7s";
                format        "%6.1f%%";
		value         "$prog_type{$key} / total(%prog_type) * 100";
		total         "100";
        };
        column {
                name          "Size";
                format        "%9s";
		value         "bytes($prog_size{$key})";
		total         "bytes(total(%prog_size))";
        };
        column {
                name          "%Size";
                format_name   "%6s";
                format        "%5.1f%%";
		value         "$prog_size{$key} / total(%prog_size) * 100";
		total         "100";
        };
};

section innd_control {
        title   "Control commands to INND:";
	data    "%innd_control";
        column {
                name          "Command";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Number";
                format_name   "%7s";
		value         "$innd_control{$key}";
		format        "%7d";
		total         "total(%innd_control)";
        };
};

section innd_newgroup {
        title   "Newsgroups created:";
	data    "%innd_newgroup";
        column {
                name          "Group";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL%-66.66s";
		total         "";
        };
        column {
                name          "Mode";
		value         "$innd_newgroup{$key}";
		format        "%7s";
		total         "$num";
        };
};

section innd_connect {
        title   "Incoming Feeds (INN):";
	data    "%innd_seconds";
	sort    "$innd_accepted{$b} <=> $innd_accepted{$a}";
        column {
                name          "Server";
		format_name   "%-22.22s";
		format        "%-25.25s";
		value         "$key";
		format_total  "TOTAL: %-18.18s";
		total         "$num";
        };
        column {
                name          "Connects";
		format_name   "%5s";
		format        "%5d";
		value         "$innd_connect{$key}";
		total         "total(%innd_connect)";
        };
        column {
                name          "Offered";
		format_name   "%7s";
		format        "%7d";
		value         "$innd_offered{$key}";
		total         "total(%innd_offered)";
        };
        column {
                name          "Taken";
		format_name   "%7s";
		format        "%7d";
		value         "$innd_accepted{$key}";
		total         "total(%innd_accepted)";
        };
        column {
                name          "Refused";
		format_name   "%7s";
		format        "%7d";
		value         "$innd_refused{$key}";
		total         "total(%innd_refused)";
        };
        column {
                name          "Reject";
		format_name   "%7s";
		format        "%7d";
		value         "$innd_rejected{$key}";
		total         "total(%innd_rejected)";
        };
        column {
                name          "%Accpt";
		format_name   "%6s";
		format        "%4d%%";
		value         "$innd_offered{$key} == 0 ? 0 : $innd_accepted{$key} / $innd_offered{$key} * 100";
		total         "total(%innd_offered) == 0 ? 0 : total(%innd_accepted) / total(%innd_offered) * 100";
        };
        column {
                name          "Elapsed";
		format_name   "%8s";
		format        "%9s";
		value         "time($innd_seconds{$key})";
		total         "time(total(%innd_seconds))";
        };
	graph {
	        title         "Articles received by server";
		type          histo3d;
		# labels	      "%prog_line"; # ????
		sort	      "%innd_accepted";
		data {
		          name    "Articles accepted";
			  color   "#0000FF";
			  value   "%innd_accepted";
                };
		data {
		          name    "Articles refused";
			  color   "#FFAF00";
			  value   "%innd_refused";
                };
		data {
		          name    "Articles rejected";
			  color   "#FF0000";
			  value   "%innd_rejected";
                };
	};
};

section inn_flow {
        title   "Incoming articles:";
	data    "%inn_flow";
	sort    "&DateCompare";
        column {
                name          "Date";
                format        "%-27.27s";
		value         "$key";
		format_total  "TOTAL: %-20.20s";
		total         "time(total(%inn_flow_time))";
        };
        column {
                name          "Articles";
		format_name   "%8s";
		value         "$inn_flow{$key}";
		format        "%8d";
		total         "total(%inn_flow)";
        };
        column {
                name          "%Arts";
		format_name   "%8s";
		value         "$inn_flow{$key} / $inn_flow_total * 100";
		format        "%7.1f%%";
		total         "100";
        };
        column {
                name          "Art/sec";
		format_name   "%7s";
		value         "$inn_flow{$key} / $inn_flow_time{$key}";
		format        "%7.2f";
		total         "total(%inn_flow) / total(%inn_flow_time)";
        };
        column {
                name          "Size";
		value         "bytes($inn_flow_size{$key})";
		format        "%8s";
		total         "bytes(total(%inn_flow_size))";
        };
        column {
                name          "%Size";
		format_name   "%8s";
		value         "$inn_flow_size{$key} / total(%inn_flow_size) * 100";
		format        "%7.1f%%";
		total         "100";
        };
        column {
                name          "kb/sec";
		format_name   "%7s";
		value         "$inn_flow_size{$key} / $inn_flow_time{$key} / 1024";
		format        "%7.2f";
		total         "total(%inn_flow_size) / total(%inn_flow_time) / 1024";
        };
	graph {
	        title         "Incoming articles";
		type          histo;
		data {
		          name    "Hours";
			  value   "%inn_flow_labels";
                };
		data {
		          name    "Art/sec";
			  factor  3600;
			  value   "%inn_flow";
                };
        };
	graph {
	        title         "Incoming articles (size)";
		type          histo;
		data {
		          name    "Hours";
			  value   "%inn_flow_labels";
                };
		data {
		          name    "Kb/sec";
			  factor  3686400;   # 3600 * 1024
			  value   "%inn_flow_size";
                };
        };
};

section inn_unwanted {
        title   "Sites sending bad articles:";
	data    "%inn_badart";
	sort    "$inn_badart{$b} <=> $inn_badart{$a}";
        column {
                name          "Server";
                format        "%-23.23s";
		value         "$key";
		format_total  "TOTAL: %-16.16s";
		total         "$num";
        };
        column {
                name          "Total";
                format_name   "%6s";
                format        "%6d";
		value         "$inn_badart{$key}";
		total         "total(%inn_badart)";
        };
        column {
                name          "Group";
                format_name   "%6s";
                format        "%6d";
		value         "$inn_uw_ng_s{$key}";
		total         "total(%inn_uw_ng_s)";
        };
        column {
                name          "Dist";
                format_name   "%5s";
                format        "%5d";
		value         "$inn_uw_dist_s{$key}";
		total         "total(%inn_uw_dist_s)";
        };
        column {
                name          "Duplic";
                format_name   "%6s";
                format        "%6d";
		value         "$inn_duplicate{$key}";
		total         "total(%inn_duplicate)";
        };
        column {
                name          "Unapp";
                format_name   "%5s";
                format        "%5d";
		value         "$inn_unapproved{$key}";
		total         "total(%inn_unapproved)";
        };
        column {
                name          "TooOld";
                format_name   "%6s";
                format        "%6d";
		value         "$inn_tooold{$key}";
		total         "total(%inn_tooold)";
        };
        column {
                name          "Site";
                format_name   "%4s";
                format        "%4d";
		value         "$inn_uw_site{$key}";
		total         "total(%inn_uw_site)";
        };
        column {
                name          "Line";
                format_name   "%4s";
                format        "%4d";
		value         "$inn_linecount{$key}";
		total         "total(%inn_linecount)";
        };
        column {
                name          "Other";
                format_name   "%5s";
                format        "%5d";
		value         "$innd_others{$key}";
		total         "total(%innd_others)";
        };
};

section inn_unwanted_group {
        title   "Unwanted newsgroups:";
	top     20; # default 'top' value or use 'top_text' and 'top_html'
                    # to specify different values for text and HTML reports.
	data    "%inn_uw_ng";
	sort    "$inn_uw_ng{$b} <=> $inn_uw_ng{$a}";
        column {
                name          "Newsgroup";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Count";
                format_name   "%7s";
                format        "%7d";
		value         "$inn_uw_ng{$key}";
		total         "total(%inn_uw_ng)";
        };
};

section inn_unwanted_dist {
        title   "Unwanted distributions:";
	top     20;
	data    "%inn_uw_dist";
	sort    "$inn_uw_dist{$b} <=> $inn_uw_dist{$a}";
        column {
                name          "Distribution";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Count";
                format_name   "%7s";
                format        "%7d";
		value         "$inn_uw_dist{$key}";
		total         "total(%inn_uw_dist)";
        };
};

section inn_unwanted_unapp {
        title   "Supposedly-moderated groups with unmoderated postings:";
	top     20;
	data    "%inn_unapproved_g";
	sort    "$inn_unapproved_g{$b} <=> $inn_unapproved_g{$a}";
        column {
                name          "Groups";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Count";
                format_name   "%7s";
                format        "%7d";
		value         "$inn_unapproved_g{$key}";
		total         "total(%inn_unapproved_g)";
        };
};

section inn_unwanted_path {
        title   "Unwanted sites in Path:";
	top     20;
	data    "%inn_site_path";
	sort    "$inn_site_path{$b} <=> $inn_site_path{$a}";
        column {
                name          "Groups";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Count";
                format_name   "%7s";
                format        "%7d";
		value         "$inn_site_path{$key}";
		total         "total(%inn_site_path)";
        };
};

section innd_perl {
        title   "INND perl filter:";
	top     20;
	data    "%innd_filter_perl";
	sort    "$innd_filter_perl{$b} <=> $innd_filter_perl{$a}";
        column {
                name          "Reason";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Count";
                format_name   "%7s";
                format        "%7d";
		value         "$innd_filter_perl{$key}";
		total         "total(%innd_filter_perl)";
        };
};

section innd_timer {
        title   "INND timer:";
	data    "%innd_time_time";
        column {
                name          "Code region";
                format        "%-23.23s";
		value         "$key";
		format_total  "TOTAL: %-16.16s";
		total         "time_ms($innd_time_times)";
        };
        column {
                name          "Time";
                format        "%13s";
		value         "time_ms($innd_time_time{$key})";
		total         "time_ms(total(%innd_time_time))";
        };
        column {
                name          "Pct";
                format_name   "%6s";
                format        "%5.1f%%";
		value         "100 * $innd_time_time{$key} / $innd_time_times";
		total         "100 * total(%innd_time_time) / $innd_time_times";
        };
        column {
                name          "Invoked";
                format        "%10s";
		value         "$innd_time_num{$key}";
                format_total  "%9s-";
		total         "";
        };
        column {
                name          "Min";
                format_name   "%7s";
                format        "%7.3f";
		value         "$innd_time_min{$key}";
                format_total  "%6s-";
		total         "";
        };
        column {
                name          "Avg";
                format_name   "%7s";
                format        "%7.3f";
		value         "$innd_time_time{$key} / ($innd_time_num{$key} ? $innd_time_num{$key} : 1) / 1000";
                format_total  "%6s-";
		total         "";
        };
        column {
                name          "Max";
                format_name   "%7s";
                format        "%7.3f";
		value         "$innd_time_max{$key}";
                format_total  "%6s-";
		total         "";
        };
};

section nocem {
        title   "NoCeM on Spool:";
	data    "%nocem_goodsigs";
	sort    "$nocem_ids{$b} <=> $nocem_ids{$a}";
	column {
		name		"Id";
               	format		"%-47.47s";
                value         	"$key";
		format_total  	"TOTAL: %-40.40s";
                total         	"$num";
	};
	column {
		name		"Good";
		format		"%7s";
		value		"$nocem_goodsigs{$key}";
                total         	"total(%nocem_goodsigs)";
	};
	column {
		name		"Bad";
		format		"%7s";
                value		"$nocem_badsigs{$key}";
		total		"total(%nocem_badsigs)";
	};
	column {
		name		"Unique";
		format		"%7s";
		value		"$nocem_newids{$key}";
		total		"total(%nocem_newids)";
	};
	column {
		name		"Total";
		format		"%7s";
		value		"$nocem_totalids{$key}";
		total		"total(%nocem_totalids)";
	};
};

section innd_misc {
        title   "INND misc events:";
	data    "%innd_misc";
	sort    "$innd_misc{$b} <=> $innd_misc{$a}";
        column {
                name          "Events";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Count";
                format_name   "%7s";
                format        "%7d";
		value         "$innd_misc{$key}";
		total         "total(%innd_misc)";
        };
};

section innd_misc_stat {
        title   "Miscellaneous innd statistics:";
	data    "%innd_misc_stat";
	sort    "$innd_misc_stat{$b} <=> $innd_misc_stat{$a}";
	double  true;
        column {
	        primary       true;
                name          "Event";
		format        "%-69.69s";
		value         "$key1";
		format_total  "TOTAL: %-62.62s";
		total         "";
        };
        column {
                name          "Server";
		format        "  %-67.67s";
		value         "$key2";
		total         "";
        };
        column {
                name          "Number";
		format_name   "%9s";
		format        "%9d";
		value         "$innd_misc_stat{$key1}{$key2}";
		total         "total(%innd_misc_stat)";
        };
};

section innfeed_connect {
        title   "Outgoing Feeds (innfeed):";
	data    "%innfeed_offered";
	sort    "$innfeed_accepted{$b} <=> $innfeed_accepted{$a}";
        column {
                name          "Server";
		format        "%-18.18s";
		value         "$key";
		format_total  "TOTAL: %-11.11s";
		total         "$num";
        };
        column {
                name          "Offered";
		format_name   "%7s";
		format        "%7d";
		value         "$innfeed_offered{$key}";
		total         "total(%innfeed_offered)";
        };
        column {
                name          "Taken";
		format_name   "%7s";
		format        "%7d";
		value         "$innfeed_accepted{$key}";
		total         "total(%innfeed_accepted)";
        };
        column {
                name          "Refused";
		format_name   "%7s";
		format        "%7d";
		value         "$innfeed_refused{$key}";
		total         "total(%innfeed_refused)";
        };
        column {
                name          "Reject";
		format_name   "%6s";
		format        "%6d";
		value         "$innfeed_rejected{$key}";
		total         "total(%innfeed_rejected)";
        };
        column {
                name          "Miss";
		format_name   "%6s";
		format        "%6d";
		value         "$innfeed_missing{$key}";
		total         "total(%innfeed_missing)";
        };
        column {
                name          "Spool";
		format_name   "%7s";
		format        "%7d";
		value         "$innfeed_spooled{$key}";
		total         "total(%innfeed_spooled)";
        };
        column {
                name          "%Took";
		format_name   "%5s";
		format        "%3d%%";
		value         "$innfeed_offered{$key} == 0 ? 0 : $innfeed_accepted{$key} / $innfeed_offered{$key} * 100";
		total         "total(%innfeed_offered) == 0 ? 0 : total(%innfeed_accepted) / total(%innfeed_offered) * 100";
        };
        column {
                name          "Elapsed";
		format_name   "%8s";
		format        "%9s";
		value         "time($innfeed_seconds{$key})";
		total         "time(total(%innfeed_seconds))";
        };
	graph {
	        title         "Outgoing feeds (innfeed)";
		type          histo3d;
		# labels	      "%prog_line"; # ????
		sort	      "%innfeed_accepted";
		data {
		          name    "Accepted";
			  color   "#0000FF";
			  value   "%innfeed_accepted";
                };
		data {
		          name    "Refused";
			  color   "#FFAF00";
			  value   "%innfeed_refused";
                };
		data {
		          name    "Rejected";
			  color   "#FF0000";
			  value   "%innfeed_rejected";
                };
		data {
		          name    "Missing";
			  color   "#00FF00";
			  value   "%innfeed_missing";
                };
		data {
		          name    "Spooled";
			  color   "#AF00FF";
			  value   "%innfeed_spooled,";
                };
	};
};

section innfeed_shrunk {
        title   "Backlog files shrunk by innfeed:";
	data    "%innfeed_shrunk";
	sort    "$innfeed_shrunk{$b} <=> $innfeed_shrunk{$a}";
        column {
                name          "Server";
                format        "%-70.70s";
		value         "$key";
		format_total  "TOTAL: %-63.63s";
		total         "$num";
        };
        column {
                name          "Size";
                format        "%8s";
		value         "bytes($innfeed_shrunk{$key})";
		total         "bytes(total(%innfeed_shrunk))";
        };
};

section nntplink_connect {
        title   "Outgoing Feeds (nntplink):";
	data    "%nntplink_site";
	sort    "$nntplink_accepted{$b} <=> $nntplink_accepted{$a}";
        column {
                name          "Server";
		format        "%-25.25s";
		value         "$key";
		format_total  "TOTAL: %-18.18s";
		total         "$num";
        };
        column {
                name          "Offered";
		format_name   "%8s";
		format        "%8d";
		value         "$nntplink_offered{$key}";
		total         "total(%nntplink_offered)";
        };
        column {
                name          "Taken";
		format_name   "%8s";
		format        "%8d";
		value         "$nntplink_accepted{$key}";
		total         "total(%nntplink_accepted)";
        };
        column {
                name          "Rejected";
		format_name   "%8s";
		format        "%8d";
		value         "$nntplink_rejected{$key}";
		total         "total(%nntplink_rejected)";
        };
        column {
                name          "Failed";
		format_name   "%8s";
		format        "%8d";
		value         "$nntplink_failed{$key}";
		total         "total(%nntplink_failed)";
        };
        column {
                name          "%Accpt";
		format_name   "%6s";
		format        "%5d%%";
		value         "$nntplink_offered{$key} == 0 ? 0 : $nntplink_accepted{$key} / $nntplink_offered{$key} * 100";
		total         "total(%nntplink_offered) == 0 ? 0 : total(%nntplink_accepted) / total(%nntplink_offered) * 100";
        };
        column {
                name          "Elapsed";
		format        "%10s";
		value         "time($nntplink_times{$key})";
		total         "time(total(%nntplink_times))";
        };
	graph {
	        title         "Outgoing Feeds (nntplink)";
		type          histo3d;
		# labels	      "%prog_line"; # ????
		sort	      "%nntplink_accepted";
		data {
		          name    "Articles accepted";
			  color   "#0000FF";
			  value   "%nntplink_accepted";
                };
		data {
		          name    "Articles rejected";
			  color   "#FFAF00";
			  value   "%nntplink_rejected";
                };
		data {
		          name    "Articles failed";
			  color   "#FF0000";
			  value   "%nntplink_failed";
                };
	};
};

section nntplink_connect2 {
        title   "Outgoing Feeds (nntplink) - other information:";
	data    "%nntplink_site";
	sort    "$nntplink_accepted{$b} <=> $nntplink_accepted{$a}";
        column {
                name          "Server";
		format        "%-20.20s";
		value         "$key";
		format_total  "TOTAL: %-13.13s";
		total         "$num";
        };
        column {
                name          "Conn";
		format_name   "%4s";
		format        "%4d";
		value         "$nntplink_site{$key}";
		total         "total(%nntplink_site)";
        };
        column {
                name          "Ok";
		format_name   "%4s";
		format        "%4d";
		value         "$nntplink_site{$key} - ($nntplink_eof{$key} + $nntplink_sockerr{$key} + $nntplink_selecterr{$key} + $nntplink_hiload{$key} + $nntplink_bpipe{$key} + $nntplink_nospace{$key} + $nntplink_auth{$key} + $nntplink_expire{$key} + $nntplink_fail{$key})";
		total         "total(%nntplink_site) - (total(%nntplink_eof) + total(%nntplink_sockerr) + total(%nntplink_selecterr) + total(%nntplink_hiload) + total(%nntplink_bpipe) + total(%nntplink_nospace) + total(%nntplink_auth) + total(%nntplink_expire) + total(%nntplink_fail))";
        };
        column {
                name          "EOF";
		format_name   "%3s";
		format        "%3d";
		value         "$nntplink_eof{$key}";
		total         "total(%nntplink_eof)";
        };
        column {
                name          "Sock";
		format_name   "%4s";
		format        "%4d";
		value         "$nntplink_sockerr{$key}";
		total         "total(%nntplink_sockerr)";
        };
        column {
                name          "Slct";
		format_name   "%4s";
		format        "%4d";
		value         "$nntplink_selecterr{$key}";
		total         "total(%nntplink_selecterr)";
        };
        column {
                name          "Load";
		format_name   "%4s";
		format        "%4d";
		value         "$nntplink_hiload{$key}";
		total         "total(%nntplink_hiload)";
        };
        column {
                name          "Bpip";
		format_name   "%4s";
		format        "%4d";
		value         "$nntplink_bpipe{$key}";
		total         "total(%nntplink_bpipe)";
        };
        column {
                name          "Spce";
		format_name   "%4s";
		format        "%4d";
		value         "$nntplink_nospace{$key}";
		total         "total(%nntplink_nospace)";
        };
        column {
                name          "Exp";
		format_name   "%4s";
		format        "%4d";
		value         "$nntplink_expire{$key}";
		total         "total(%nntplink_expire)";
        };
        column {
                name          "Auth";
		format_name   "%4s";
		format        "%4d";
		value         "$nntplink_auth{$key}";
		total         "total(%nntplink_auth)";
        };
        column {
                name          "Othr";
		format_name   "%4s";
		format        "%4d";
		value         "$nntplink_fail{$key}";
		total         "total(%nntplink_fail)";
        };
        column {
                name          "Pct";
		format_name   "%4s";
		format        "%3d%%";
		value         "$nntplink_site{$key} ? 100 * ($nntplink_site{$key} - ($nntplink_eof{$key} + $nntplink_sockerr{$key} + $nntplink_selecterr{$key} + $nntplink_hiload{$key} + $nntplink_bpipe{$key} + $nntplink_nospace{$key} + $nntplink_auth{$key} + $nntplink_expire{$key} + $nntplink_fail{$key})) / $nntplink_site{$key} : 0";
		total         "total(%nntplink_site) ? 100 * (total(%nntplink_site) - (total(%nntplink_eof) + total(%nntplink_sockerr) + total(%nntplink_selecterr) + total(%nntplink_hiload) + total(%nntplink_bpipe) + total(%nntplink_nospace) + total(%nntplink_auth) + total(%nntplink_expire) + total(%nntplink_fail))) / total(%nntplink_site) : 0";
        };
};

section innxmit_connect {
        title   "Outgoing Feeds (innxmit):";
	data    "%innxmit_times";
	sort    "$innxmit_accepted{$b} <=> $innxmit_accepted{$a}";
        column {
                name          "Server";
		format        "%-27.27s";
		value         "$key";
		format_total  "TOTAL: %-20.20s";
		total         "$num";
        };
        column {
                name          "Offered";
		format_name   "%8s";
		format        "%8d";
		value         "$innxmit_offered{$key}";
		total         "total(%innxmit_offered)";
        };
        column {
                name          "Taken";
		format_name   "%8s";
		format        "%8d";
		value         "$innxmit_accepted{$key}";
		total         "total(%innxmit_accepted)";
        };
        column {
                name          "Refused";
		format_name   "%8s";
		format        "%8d";
		value         "$innxmit_refused{$key}";
		total         "total(%innxmit_refused)";
        };
        column {
                name          "Rejected";
		format_name   "%8s";
		format        "%8d";
		value         "$innxmit_rejected{$key}";
		total         "total(%innxmit_rejected)";
        };
        column {
                name          "%Accpt";
		format_name   "%6s";
		format        "%5d%%";
		value         "$innxmit_offered{$key} == 0 ? 0 : $innxmit_accepted{$key} / $innxmit_offered{$key} * 100";
		total         "total(%innxmit_offered) == 0 ? 0 : total(%innxmit_accepted) / total(%innxmit_offered) * 100";
        };
        column {
                name          "Elapsed";
		format        "%8s";
		value         "time($innxmit_times{$key})";
		total         "time(total(%innxmit_times))";
        };
	graph {
	        title         "Outgoing Feeds (innxmit)";
		type          histo3d;
		# labels	      "%prog_line"; # ????
		sort	      "%innxmit_accepted";
		data {
		          name    "Articles accepted";
			  color   "#0000FF";
			  value   "%innxmit_accepted";
                };
		data {
		          name    "Articles refused";
			  color   "#FFAF00";
			  value   "%innxmit_refused";
                };
		data {
		          name    "Articles rejected";
			  color   "#FF0000";
			  value   "%innxmit_rejected";
                };
	};
};


section innxmit_connect2 {
        title   "Outgoing Feeds (innxmit) - other information:";
	data    "%innxmit_site";
	sort    "$innxmit_accepted{$b} <=> $innxmit_accepted{$a}";
        column {
                name          "Server";
		format        "%-25.25s";
		value         "$key";
		format_total  "TOTAL: %-18.18s";
		total         "$num";
        };
        column {
                name          "Conn";
		format_name   "%5s";
		format        "%5d";
		value         "$innxmit_site{$key}";
		total         "total(%innxmit_site)";
        };
        column {
                name          "Ok";
		format_name   "%5s";
		format        "%5d";
		value         "$innxmit_site{$key} - ($innxmit_afail_host{$key} + $innxmit_hiload{$key} + $innxmit_nospace{$key} + $innxmit_cfail_host{$key} + $innxmit_expire{$key} + $innxmit_crefused{$key})";
		total         "total(%innxmit_site) - (total(%innxmit_afail_host) + total(%innxmit_hiload) + total(%innxmit_nospace) + total(%innxmit_cfail_host) + total(%innxmit_expire) + total(%innxmit_crefused))";
        };
        column {
                name          "Auth";
		format_name   "%4s";
		format        "%4d";
		value         "$innxmit_afail_host{$key}";
		total         "total(%innxmit_afail_host)";
        };
        column {
                name          "Load";
		format_name   "%4s";
		format        "%4d";
		value         "$innxmit_hiload{$key}";
		total         "total(%innxmit_hiload)";
        };
        column {
                name          "Space";
		format_name   "%5s";
		format        "%5d";
		value         "$innxmit_nospace{$key}";
		total         "total(%innxmit_nospace)";
        };
        column {
                name          "Expire";
		format_name   "%6s";
		format        "%6d";
		value         "$innxmit_expire{$key}";
		total         "total(%innxmit_expire)";
        };
        column {
                name          "Connct";
		format_name   "%6s";
		format        "%6d";
		value         "$innxmit_cfail_host{$key}";
		total         "total(%innxmit_cfail_host)";
        };
        column {
                name          "Other";
		format_name   "%6s";
		format        "%6d";
		value         "$innxmit_crefused{$key}";
		total         "total(%innxmit_crefused)";
        };
        column {
                name          "Pct";
		format_name   "%4s";
		format        "%3d%%";
		value         "$innxmit_site{$key} ? 100 * ($innxmit_site{$key} - ($innxmit_afail_host{$key} + $innxmit_hiload{$key} + $innxmit_nospace{$key} + $innxmit_cfail_host{$key} + $innxmit_expire{$key} + $innxmit_crefused{$key})) / $innxmit_site{$key} : 0";
		total         "total(%innxmit_site) ? 100 * (total(%innxmit_site) - (total(%innxmit_afail_host) + total(%innxmit_hiload) + total(%innxmit_nospace) + total(%innxmit_cfail_host) + total(%innxmit_expire) + total(%innxmit_crefused))) / total(%innxmit_site) : 0";
        };
};

section innxmit_unwanted {
        title   "Sites rejecting bad articles:";
	data    "%innxmit_badart";
	sort    "$innxmit_badart{$b} <=> $innxmit_badart{$a}";
        column {
                name          "Server";
                format        "%-23.23s";
		value         "$key";
		format_total  "TOTAL: %-16.16s";
		total         "$num";
        };
        column {
                name          "Total";
                format_name   "%6s";
                format        "%6d";
		value         "$innxmit_badart{$key}";
		total         "total(%innxmit_badart)";
        };
        column {
                name          "Group";
                format_name   "%6s";
                format        "%6d";
		value         "$innxmit_uw_ng_s{$key}";
		total         "total(%innxmit_uw_ng_s)";
        };
        column {
                name          "Dist";
                format_name   "%5s";
                format        "%5d";
		value         "$innxmit_uw_dist_s{$key}";
		total         "total(%innxmit_uw_dist_s)";
        };
        column {
                name          "Duplic";
                format_name   "%6s";
                format        "%6d";
		value         "$innxmit_duplicate{$key}";
		total         "total(%innxmit_duplicate)";
        };
        column {
                name          "Unapp";
                format_name   "%5s";
                format        "%5d";
		value         "$innxmit_unapproved{$key}";
		total         "total(%innxmit_unapproved)";
        };
        column {
                name          "TooOld";
                format_name   "%6s";
                format        "%6d";
		value         "$innxmit_tooold{$key}";
		total         "total(%innxmit_tooold)";
        };
        column {
                name          "Site";
                format_name   "%4s";
                format        "%4d";
		value         "$innxmit_uw_site{$key}";
		total         "total(%innxmit_uw_site)";
        };
        column {
                name          "Line";
                format_name   "%4s";
                format        "%4d";
		value         "$innxmit_linecount{$key}";
		total         "total(%innxmit_linecount)";
        };
        column {
                name          "Other";
                format_name   "%5s";
                format        "%5d";
		value         "$innxmit_others{$key}";
		total         "total(%innxmit_others)";
        };
};

section crosspost {
        title   "Crosspost stats:";
	data    "%crosspost";
        column {
                name          "Events";
                format        "%-63.63s";
		value         "$key";
		format_total  "TOTAL: %-56.56s";
		total         "$num";
        };
        column {
                name          "Number";
		value         "$crosspost{$key}";
		format        "%7s";
		total         "total(%crosspost)";
        };
        column {
                name          "Num/min";
		value         "$crosspost_times{$key}";
		format        "%7s";
		total         "total(%crosspost_times)";
        };
};

section batcher_elapsed {
        title   "UUCP batches created:";
	data    "%batcher_elapsed";
        column {
                name          "Server";
                format        "%-41.41s";
		value         "$key";
		format_total  "TOTAL: %-34.34s";
		total         "$num";
        };
        column {
                name          "Offered";
                format_name   "%7s";
                format        "%7d";
		value         "$batcher_offered{$key}";
		total         "total(%batcher_offered)";
        };
        column {
                name          "Articles";
                format_name   "%8s";
                format        "%8d";
		value         "$batcher_articles{$key}";
		total         "total(%batcher_articles)";
        };
        column {
                name          "Size";
                format        "%10s";
		value         "bytes($batcher_bytes{$key})";
		total         "bytes(total(%batcher_bytes))";
        };
        column {
                name          "Elapsed";
                format        "%9s";
		value         "time($batcher_elapsed{$key})";
		total         "time(total(%batcher_elapsed))";
        };
};

section rnews_host {
        title   "Rnews articles offered from:";
	data    "%rnews_host";
	sort    "$rnews_host{$b} <=> $rnews_host{$a}";
        column {
                name          "System";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Offered";
                format_name   "%7s";
                format        "%7d";
		value         "$rnews_host{$key}";
		total         "total(%rnews_host)";
        };
};

section rnews_rejected {
        title   "Rnews connections rejected:";
	data    "%rnews_rejected";
	sort    "$rnews_rejected{$b} <=> $rnews_rejected{$a}";
        column {
                name          "Reason";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Conn";
                format_name   "%7s";
                format        "%7d";
		value         "$rnews_rejected{$key}";
		total         "total(%rnews_rejected)";
        };
};

section rnews_misc {
        title   "Miscellaneous rnews statistics:";
	data    "%rnews_misc";
	sort    "$rnews_misc{$b} <=> $rnews_misc{$a}";
	double  true;
        column {
	        primary       true;
                name          "Event";
		format        "%-69.69s";
		value         "$key1";
		format_total  "TOTAL: %-62.62s";
		total         "";
        };
        column {
                name          "Element";
		format        "  %-67.67s";
		value         "$key2";
		total         "";
        };
        column {
                name          "Number";
		format_name   "%9s";
		format        "%9d";
		value         "$rnews_misc{$key1}{$key2}";
		total         "total(%rnews_misc)";
        };
};

section nnrpd_groups {
        title   "NNRP readership statistics:";
	data    "%nnrpd_connect";
	sort    "$nnrpd_articles{$b} <=> $nnrpd_articles{$a}";
        column {
                name          "System";
                format        "%-40.40s";
		value         "$key";
		format_total  "TOTAL: %-33.33s";
		total         "$num";
        };
        column {
                name          "Conn";
                format_name   "%4s";
                format        "%4d";
		value         "$nnrpd_connect{$key}";
		total         "total(%nnrpd_connect)";
        };
        column {
                name          "Arts";
                format_name   "%6s";
                format        "%6d";
		value         "$nnrpd_articles{$key}";
		total         "total(%nnrpd_articles)";
        };
        column {
                name          "Groups";
                format_name   "%6s";
                format        "%6d";
		value         "$nnrpd_groups{$key}";
		total         "total(%nnrpd_groups)";
        };
        column {
                name          "Post";
                format_name   "%4s";
                format        "%4d";
		value         "$nnrpd_post_ok{$key}";
		total         "total(%nnrpd_post_ok)";
        };
        column {
                name          "Rej";
                format_name   "%4s";
                format        "%4d";
		value         "$nnrpd_post_rej{$key} + $nnrpd_post_error{key}";
		total         "total(%nnrpd_post_rej)+total(%nnrpd_post_error)";
        };
        column {
                name          "Elapsed";
                format        "%9s";
		value         "time($nnrpd_times{$key})";
		total         "time(total(%nnrpd_times))";
        };
};

section nnrpd_curious {
        title   "Curious NNRP server explorers:";
	data    "%nnrpd_curious";
	sort    "$nnrpd_curious{$b} <=> $nnrpd_curious{$a}";
        column {
                name          "System";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Conn";
                format_name   "%7s";
                format        "%7d";
		value         "$nnrpd_curious{$key}";
		total         "total(%nnrpd_curious)";
        };
};

section nnrpd_no_permission {
        title   "NNRP no permission clients:";
	data    "%nnrpd_no_permission";
	sort    "$nnrpd_no_permission{$b} <=> $nnrpd_no_permission{$a}";
        column {
                name          "System";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Conn";
                format_name   "%7s";
                format        "%7d";
		value         "$nnrpd_no_permission{$key}";
		total         "total(%nnrpd_no_permission)";
        };
};

section nnrpd_gethostbyaddr {
        title   "NNRP gethostbyaddr failures:";
	data    "%nnrpd_gethostbyaddr";
	sort    "$nnrpd_gethostbyaddr{$b} <=> $nnrpd_gethostbyaddr{$a}";
        column {
                name          "System";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Conn";
                format_name   "%7s";
                format        "%7d";
		value         "$nnrpd_gethostbyaddr{$key}";
		total         "total(%nnrpd_gethostbyaddr)";
        };
};

section nnrpd_unrecognized {
        title   "NNRP unrecognized commands (by host):";
	data    "%nnrpd_unrecognized";
	sort    "$nnrpd_unrecognized{$b} <=> $nnrpd_unrecognized{$a}";
        column {
                name          "System";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Conn";
                format_name   "%7s";
                format        "%7d";
		value         "$nnrpd_unrecognized{$key}";
		total         "total(%nnrpd_unrecognized)";
        };
};

section nnrpd_unrecognized2 {
        title   "NNRP unrecognized commands (by command):";
	data    "%nnrpd_unrecogn_cmd";
	sort    "$nnrpd_unrecogn_cmd{$b} <=> $nnrpd_unrecogn_cmd{$a}";
        column {
                name          "Command";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Count";
                format_name   "%7s";
                format        "%7d";
		value         "$nnrpd_unrecogn_cmd{$key}";
		total         "total(%nnrpd_unrecogn_cmd)";
        };
};

section nnrpd_timeout {
        title   "NNRP client timeouts:";
	data    "%nnrpd_timeout";
	sort    "$nnrpd_timeout{$b} <=> $nnrpd_timeout{$a}";
        column {
                name          "System";
                format        "%-67.67s";
		value         "$key";
		format_total  "TOTAL: %-60.60s";
		total         "$num";
        };
        column {
                name          "Conn";
                format_name   "%5s";
                format        "%5d";
		value         "$nnrpd_timeout{$key}";
		total         "total(%nnrpd_timeout)";
        };
        column {
                name          "Peer";
                format_name   "%5s";
                format        "%5d";
		value         "$nnrpd_reset_peer{$key}";
		total         "total(%nnrpd_reset_peer)";
        };
};

section nnrpd_hierarchy {
        title   "Newsgroup request counts (by category):";
	data    "%nnrpd_hierarchy";
	sort    "$nnrpd_hierarchy{$b} <=> $nnrpd_hierarchy{$a}";
        column {
                name          "Category";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Count";
                format_name   "%7s";
                format        "%7d";
		value         "$nnrpd_hierarchy{$key}";
		total         "total(%nnrpd_hierarchy)";
        };
	# graph : type piechart
};

section nnrpd_group {
        title   "Newsgroup request counts (by newsgroup):";
	data    "%nnrpd_group";
	sort    "$nnrpd_group{$b} <=> $nnrpd_group{$a}";
	top     20;
        column {
                name          "Newsgroup";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Count";
                format_name   "%7s";
                format        "%7d";
		value         "$nnrpd_group{$key}";
		total         "total(%nnrpd_group)";
        };
};

section nntpcache_groups {
        title   "NNTPCACHE readership statistics:";
	data    "%nntpcache_connect";
	sort    "$nntpcache_articles{$b} <=> $nntpcache_articles{$a}";
        column {
                name          "System";
                format        "%-40.40s";
		value         "$key";
		format_total  "TOTAL: %-33.33s";
		total         "$num";
        };
        column {
                name          "Conn";
                format_name   "%4s";
                format        "%4d";
		value         "$nntpcache_connect{$key}";
		total         "total(%nntpcache_connect)";
        };
        column {
                name          "Arts";
                format_name   "%6s";
                format        "%6d";
		value         "$nntpcache_articles{$key}";
		total         "total(%nntpcache_articles)";
        };
        column {
                name          "Groups";
                format_name   "%6s";
                format        "%6d";
		value         "$nntpcache_groups{$key}";
		total         "total(%nntpcache_groups)";
        };
        column {
                name          "Post";
                format_name   "%4s";
                format        "%4d";
		value         "$nntpcache_post_ok{$key}";
		total         "total(%nntpcache_post_ok)";
        };
        column {
                name          "Rej";
                format_name   "%4s";
                format        "%4d";
		value         "$nntpcache_post_rej{$key} + $nntpcache_post_error{key}";
		total         "total(%nntpcache_post_rej)+total(%nntpcache_post_error)";
        };
        column {
                name          "Elapsed";
                format        "%9s";
		value         "time($nntpcache_times{$key})";
		total         "time(total(%nntpcache_times))";
        };
};

section nntpcache_curious {
        title   "Curious NNTPCACHE server explorers:";
	data    "%nntpcache_curious";
	sort    "$nntpcache_curious{$b} <=> $nntpcache_curious{$a}";
        column {
                name          "System";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Conn";
                format_name   "%7s";
                format        "%7d";
		value         "$nntpcache_curious{$key}";
		total         "total(%nntpcache_curious)";
        };
};

section nntpcache_no_permission {
        title   "NNTPCACHE no permission clients:";
	data    "%nntpcache_no_permission";
	sort    "$nntpcache_no_permission{$b} <=> $nntpcache_no_permission{$a}";
        column {
                name          "System";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Conn";
                format_name   "%7s";
                format        "%7d";
		value         "$nntpcache_no_permission{$key}";
		total         "total(%nntpcache_no_permission)";
        };
};

section nntpcache_gethostbyaddr {
        title   "NNTPCACHE gethostbyaddr failures:";
	data    "%nntpcache_gethostbyaddr";
	sort    "$nntpcache_gethostbyaddr{$b} <=> $nntpcache_gethostbyaddr{$a}";
        column {
                name          "System";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Conn";
                format_name   "%7s";
                format        "%7d";
		value         "$nntpcache_gethostbyaddr{$key}";
		total         "total(%nntpcache_gethostbyaddr)";
        };
};

section nntpcache_unrecognized {
        title   "NNTPCACHE unrecognized commands (by host):";
	data    "%nntpcache_unrecognized";
	sort    "$nntpcache_unrecognized{$b} <=> $nntpcache_unrecognized{$a}";
        column {
                name          "System";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Conn";
                format_name   "%7s";
                format        "%7d";
		value         "$nntpcache_unrecognized{$key}";
		total         "total(%nntpcache_unrecognized)";
        };
};

section nntpcache_unrecognized2 {
        title   "NNTPCACHE unrecognized commands (by command):";
	data    "%nntpcache_unrecogn_cmd";
	sort    "$nntpcache_unrecogn_cmd{$b} <=> $nntpcache_unrecogn_cmd{$a}";
        column {
                name          "Command";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Count";
                format_name   "%7s";
                format        "%7d";
		value         "$nntpcache_unrecogn_cmd{$key}";
		total         "total(%nntpcache_unrecogn_cmd)";
        };
};

section nntpcache_timeout {
        title   "NNTPCACHE client timeouts:";
	data    "%nntpcache_timeout";
	sort    "$nntpcache_timeout{$b} <=> $nntpcache_timeout{$a}";
        column {
                name          "System";
                format        "%-67.67s";
		value         "$key";
		format_total  "TOTAL: %-60.60s";
		total         "$num";
        };
        column {
                name          "Conn";
                format_name   "%5s";
                format        "%5d";
		value         "$nntpcache_timeout{$key}";
		total         "total(%nntpcache_timeout)";
        };
        column {
                name          "Peer";
                format_name   "%5s";
                format        "%5d";
		value         "$nntpcache_reset_peer{$key}";
		total         "total(%nntpcache_reset_peer)";
        };
};

section nntpcache_hierarchy {
        title   "NNTPCACHE newsgroup request counts (by category):";
	data    "%nntpcache_hierarchy";
	sort    "$nntpcache_hierarchy{$b} <=> $nntpcache_hierarchy{$a}";
        column {
                name          "Category";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Count";
                format_name   "%7s";
                format        "%7d";
		value         "$nntpcache_hierarchy{$key}";
		total         "total(%nntpcache_hierarchy)";
        };
	# graph : type piechart
};

section nntpcache_group {
        title   "NNTPCACHE newsgroup request counts (by newsgroup):";
	data    "%nntpcache_group";
	sort    "$nntpcache_group{$b} <=> $nntpcache_group{$a}";
	top     20;
        column {
                name          "Newsgroup";
                format        "%-71.71s";
		value         "$key";
		format_total  "TOTAL: %-64.64s";
		total         "$num";
        };
        column {
                name          "Count";
                format_name   "%7s";
                format        "%7d";
		value         "$nntpcache_group{$key}";
		total         "total(%nntpcache_group)";
        };
};
