X-Git-Url: http://git.harvie.cz/?p=svn%2FPrometheus-QoS%2F.git;a=blobdiff_plain;f=prometheus.c;h=5420588d352e8d6550e0c430305926ea2e33bfc2;hp=4c63dfeede3422f118a06167c41c673dfdfc869c;hb=b014f18189d582cd408e0c488ef734a070500e5b;hpb=0eb8bc04db3f6ed6d2df52d9d8b41a91ec9556a3 diff --git a/prometheus.c b/prometheus.c index 4c63dfe..5420588 100644 --- a/prometheus.c +++ b/prometheus.c @@ -620,7 +620,7 @@ void save_line(char *line) void run_restore(void) { - char *restor, *str; + char *restor; string(restor,STRLEN); /*-----------------------------------------------------------------*/ @@ -867,7 +867,7 @@ void parse_ip_log(int argc, char **argv) if(i>10) { - fputs("

\n",f); + fputs("

Enterprise Research and Planning (ERP)
\n",f); fputs("\n",f); fputs("\n",f); @@ -947,6 +947,7 @@ program int just_preview=FALSE; /* preview - generate just stats */ int just_logs=FALSE; /* just parse logs */ int run=FALSE; + int total=0; char *chain_forward, *chain_postrouting; char *althosts=NULL; @@ -1502,7 +1503,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version); if(f) { - int total=0; + int count=1; i=0; @@ -1551,7 +1552,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version); i=1; if(f) { - unsigned long long total=0, total_direct=0, total_proxy=0, total_upload=0, tmp_sum=0; + unsigned long long total_traffic=0, total_direct=0, total_proxy=0, total_upload=0, tmp_sum=0; int active_classes=0; int colspan; FILE *iplog; @@ -1631,7 +1632,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version); fprintf(f,"\n", ip->upload); fprintf(f,"\n", ip->min,ip->desired,f1,ip->max,f2,f1,ip->prio,f2); - total+=ip->traffic; + total_traffic+=ip->traffic; total_direct+=ip->direct; total_proxy+=ip->proxy; total_upload+=ip->upload; @@ -1658,11 +1659,10 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version); fclose(iplog); } } - } fprintf(f,"\ - \n", total, total_direct); + \n", total_traffic, total_direct); if(qos_proxy) { fprintf(f,"\n", total_proxy); @@ -1672,62 +1672,84 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version); if(active_classes>10) { - fputs("

Enterprise Resource Planning (ERP)
Analytic categoryActive ClassesData transfers
%Lu M%d k%d k%s%d k%s%s%d%s
SUMMARY:",colspan-7); fprintf(f,"%Lu M%Lu M%Lu M%Lu M
\n",f); + int top20_count=0,top20_perc1=0; + long long top20_perc2=0; + unsigned long long top20_sum=0l; + + fputs("

Enterprise Research and Planning (ERP)
\n",f); fputs("\n",f); fputs("\n",f); - if_exists(sum,sums,sum->l>=total/4) + if_exists(sum,sums,sum->l>=total_traffic/4) { fprintf(f,"\n"); - fprintf(f,"\n",sum->i,(100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total); + fprintf(f,"\n",sum->i,(100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total_traffic); } if_exists(sum,sums,sum->i==10) { fprintf(f,"\n"); - fprintf(f,"\n",(100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total); + fprintf(f,"\n",(100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total_traffic); } - if_exists(sum,sums,sum->l>=total/2) + if_exists(sum,sums,sum->l>=total_traffic/2) { fprintf(f,"\n"); - fprintf(f,"\n",sum->i,(100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total); + fprintf(f,"\n",sum->i,(100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total_traffic); } - if_exists(sum,sums,sum->l>=4*total/5) + if_exists(sum,sums,sum->l>=4*total_traffic/5) { fprintf(f,"\n"); - fprintf(f,"\n",sum->i,(100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total); + fprintf(f,"\n",sum->i,(100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total_traffic); } - if_exists (sum,sums,sum->i>=(active_classes+1)/5) + if_exists(sum,sums,sum->i>=(active_classes+1)/5) { fprintf(f,"\n"); - fprintf(f,"\n",sum->i,(100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total); + top20_count=sum->i; + top20_perc1=(100*sum->i+50)/active_classes; + top20_sum=sum->l; + top20_perc2=(100*sum->l+50)/total_traffic; + fprintf(f,"\n",top20_count,top20_perc1,top20_sum,top20_perc2); } if_exists(sum,sums,sum->i>=(active_classes+1)/4) { fprintf(f,"\n"); - fprintf(f,"\n",sum->i,(100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total); + fprintf(f,"\n",sum->i,(100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total_traffic); } if_exists(sum,sums,sum->i>=(active_classes+1)/2) { fprintf(f,"\n"); - fprintf(f,"\n",sum->i,(100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total); + fprintf(f,"\n",sum->i,(100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total_traffic); } if_exists(sum,sums,sum->i>=4*(active_classes+1)/5) { fprintf(f,"\n"); - fprintf(f,"\n",sum->i,(100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total); + fprintf(f,"\n",sum->i,(100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total_traffic); } - fprintf(f,"\n"); - fprintf(f,"\n",active_classes,total); + fprintf(f,"\n", log_url); + fprintf(f,"\n",active_classes,total_traffic); fputs("
Enterprise Resource Planning (ERP)
Analytic categoryActive ClassesData transfers
Top 25%% of traffic%d%d %%%Lu M%Ld %%
%d%d %%%Lu M%Ld %%
Top 10 downloaders10%d %%%Lu M%Ld %%
10%d %%%Lu M%Ld %%
Top 50%% of traffic%d%d %%%Lu M%Ld %%
%d%d %%%Lu M%Ld %%
Top 80%% of traffic%d%d %%%Lu M%Ld %%
%d%d %%%Lu M%Ld %%
Top 20%% downloaders%d%d %%%Lu M%Ld %%
%d%d %%%Lu M%Ld %%
Top 25%% downloaders%d%d %%%Lu M%Ld %%
%d%d %%%Lu M%Ld %%
Top 50%% downloaders%d%d %%%Lu M%Ld %%
%d%d %%%Lu M%Ld %%
Top 80%% downloaders%d%d %%%Lu M%Ld %%
%d%d %%%Lu M%Ld %%
All users, all traffic%d100 %%%Lu M100 %%
All users, all traffic%d100 %%%Lu M100 %%
\n", f); + + /* write basic ERP data to log directory */ + if(!just_preview) + { + sprintf(str,"%s/ERP.log",log_dir); + iplog=fopen(str,"a"); + if(iplog) + { + fprintf(iplog,"%ld\t%d\t%d %%\t%Lu M\t%Ld %%\t%d\t%Lu M\t%d\t%s", + time(NULL), top20_count, top20_perc1, top20_sum, top20_perc2, active_classes, total_traffic, total, d); /* d = date*/ + fclose(iplog); + } + } } + fprintf(f, stats_html_signature, version); fclose(f); }