Changeset 633


Ignore:
Timestamp:
Oct 19, 2011, 12:12:28 PM (9 years ago)
Author:
ben
Message:

big update, see #28

File:
1 edited

Legend:

Unmodified
Added
Removed
  • postfix-logtools/poststat/html/index.html

    r244 r633  
    1919   
    2020    <div id="wrapper">
    21       <h1>Incoming SMTP connections</h1>
     21      <h1>SMTP connections</h1>
    2222      <div id="g_connect" style="width:700px; height:250px;"></div>
    2323    </div>
     
    2929      <h1>Message counters</h1>
    3030      <div id="g_message" style="width:700px; height:250px;"></div>
     31    </div>
     32    <div id="wrapper">
     33      <h1>Delivred Messages</h1>
     34      <div id="g_messagec" style="width:700px; height:250px;"></div>
     35    </div>
     36    <div id="wrapper">
     37      <h1>Greylist</h1>
     38      <div id="g_greylist" style="width:700px; height:250px;"></div>
     39    </div>
     40    <div id="wrapper">
     41      <h1>Anti spam/virus</h1>
     42      <div id="g_spamvir" style="width:700px; height:250px;"></div>
    3143    </div>
    3244   
     
    3446document.observe('dom:loaded', function(){
    3547
     48/* Gather all counters, they are in counter/<name>.txt as (mostly) JSON arrays */
    3649var counter = new Array();
    37 new Ajax.Request('data.js', {
    38   method: 'get',
    39   asynchronous: false,
    40   onSuccess: function(transport) {
    41     var data = transport.responseText.evalJSON();
    42     counter = data.counter;
    43   }
     50var cnames  = new Array('grey_spf', 'grey_delayed', 'grey_autowl', 'grey_hard_wl', 'ce_blacklist', 'ce_hangup', 'ce_helo_no_dns', 'ce_helo_not_fqdn', 'ce_proto_error', 'ce_psbl', 'ce_sorbs', 'ce_spamhaus', 'ce_ssl_error', 'ce_timeout', 'ci_connect_tot', 'ci_connect_ext_tot', 'ci_connect_int_tot', 'ci_connect_lan', 'ci_connect_mx', 'ci_connect_auth', 'ci_connect_wm', 'ci_connect_local', 'ci_connect_lan', 'ci_brute_force', 'me_no_relay', 'me_no_target', 'me_sender_no_dns', 'me_sender_not_fqdn', 'mi_count', 'mi_size', 'mo_sent', 'mo_bounced', 'mo_deferred', 'mi_tot', 'mi_inbox', 'mi_bounced', 'mi_robot', 'mi_ham', 'mi_spam', 'mi_unsure', 'mi_virus');
     51cnames.each(function(cname) {
     52  new Ajax.Request('counter/' + cname + '.txt', {
     53    method: 'get',
     54    asynchronous: false,
     55    onSuccess: function(r) { eval( "counter['" + cname + "'] = [ " + r.responseText + " ]" ); },
     56  });
    4457});
    4558
     
    5366var xticks = counter['mi_count'].collect(function(e) { return [e[0], hdate(e[0])]; });
    5467
    55 /* Have ci_connect = ci_connect_ext + ci_connect_mx : all SMTP connections */
     68
     69/* Have ci_connect = ci_connect_ext + ci_connect_bt : all SMTP connections */
     70
    5671var ci_max = 0;
    57 counter['ci_connect'] = counter['ci_connect_ext'].collect(
    58   function(e, n) {
    59     var c = e[1] + counter['ci_connect_mx'][n][1];
    60     ci_max = ci_max > c ? ci_max : c;
    61     return [e[0], c];
    62   }
    63 );
     72counter['ci_connect_tot'].collect( function(e, n) { ci_max = ci_max > e[1] ? ci_max : e[1]; } );
    6473ci_max = String(Number(String(ci_max)[0]) + 1) + Array(String(ci_max).length).join('0');
    6574
    6675Flotr.draw(
    6776  $('g_connect'),[
    68     { data:counter['ci_connect'],    label:'All connections' },
    69     { data:counter['ci_connect_mx'], label:'From MX backup' },
     77    { data:counter['ci_connect_tot'],     label:'all' },
     78    { data:counter['ci_connect_ext_tot'], label:'external' },
     79    { data:counter['ci_connect_int_tot'], label:'internal' },
     80    { data:counter['ci_connect_lan'],     label:'LAN' },
     81    { data:counter['ci_connect_wm'],      label:'WebMail' },
     82    { data:counter['ci_connect_mx'],      label:'MX' },
    7083  ],{
    7184    xaxis:{
     
    7487    yaxis:{
    7588      min: 0,
    76       max: ci_max,
    7789    },
    7890    lines: {
     
    8496    },
    8597    legend: {
    86       position: 'nw'
    87     },
    88     mouse: {
    89       track: true,
     98      position: 'nw',
     99      noColumns: 1,
     100    },
     101    mouse: {
     102      track: true,
     103      position: 'sw',
    90104      sensibility: 400,
    91105      radius: 4,
    92106      trackFormatter: function(p){ return '[' + hdate(p.x) + '] ' + p.series.label + ': ' + Math.round(p.y); },
    93     }
    94 });
    95 
    96 var ce_max = 0;
    97 counter['ce_hangup'].collect( function(e, n) { ce_max = ce_max > e[1] ? ce_max : e[1]; } );
    98 ce_max = String(Number(String(ce_max)[0]) + 1) + Array(String(ce_max).length).join('0');
     107    },
     108});
    99109
    100110Flotr.draw(
     
    110120      { data:counter['ce_ssl_error'],       label :'ce_ssl_error' },
    111121      { data:counter['ce_timeout'],         label :'ce_timeout' },
    112     ],{
    113     xaxis:{
    114       ticks: xticks,
    115     },
    116     yaxis:{
    117       min: 0,
    118       max: ce_max,
     122      { data:counter['ci_brute_force'],     label :'brute force' },
     123    ],{
     124    xaxis:{
     125      ticks: xticks,
     126    },
     127    yaxis:{
     128      min: 0,
    119129    },
    120130    legend: {
    121131      position: 'nw',
    122       noColumns: 2,
    123       backgroundOpacity: 0,
    124     },
    125     lines: {
    126       show: true,
    127     },
    128     points: {
    129       show: true,
    130       radius: 2,
    131     },
    132     mouse: {
    133       track: true,
    134       sensibility: 400,
    135       radius: 3,
    136       trackFormatter: function(p){ return '[' + hdate(p.x) + '] ' + p.series.label + ': ' + Math.round(p.y); },
    137     },
    138     colors: [ '#00e', '#d00', '#0c0', '#ee0', '#000', '#c8f', '#f0f', '#a0a', '#888' ],
    139 });
    140 
    141 var mi_max = 0;
    142 counter['mi_count'].collect( function(e, n) { mi_max = mi_max > e[1] ? mi_max : e[1]; } );
    143 mi_max = String(Number(String(mi_max)[0]) + 1) + Array(String(mi_max).length).join('0');
     132      noColumns: 1,
     133    },
     134    lines: {
     135      show: true,
     136    },
     137    points: {
     138      show: true,
     139      radius: 2,
     140    },
     141    mouse: {
     142      track: true,
     143      position: 'sw',
     144      sensibility: 400,
     145      radius: 3,
     146      trackFormatter: function(p){ return '[' + hdate(p.x) + '] ' + p.series.label + ': ' + Math.round(p.y); },
     147    },
     148    colors: [ '#00e', '#d00', '#0c0', '#ee0', '#000', '#c8f', '#f0f', '#a0a', '#888' ],
     149});
    144150
    145151Flotr.draw(
    146152  $('g_message'),[
    147153      { data:counter['mi_count'],           label :'mi_count' },
    148       { data:counter['mo_delivered'],       label :'mo_delivered' },
    149154      { data:counter['me_no_relay'],        label :'me_no_relay' },
    150155      { data:counter['me_no_target'],       label :'me_no_target' },
     
    157162    yaxis:{
    158163      min: 0,
    159       max: mi_max,
    160164    },
    161165    legend: {
    162166      position: 'nw',
    163       noColumns: 2,
    164       backgroundOpacity: 0,
    165     },
    166     lines: {
    167       show: true,
    168     },
    169     points: {
    170       show: true,
    171       radius: 2,
    172     },
    173     mouse: {
    174       track: true,
    175       sensibility: 400,
    176       radius: 3,
    177       trackFormatter: function(p){ return '[' + hdate(p.x) + '] ' + p.series.label + ': ' + Math.round(p.y); },
    178     },
    179     colors: [ '#00e', '#d00', '#0c0', '#ee0', '#000', '#c8f', '#f0f', '#a0a', '#888' ],
    180 });
     167      noColumns: 1,
     168    },
     169    lines: {
     170      show: true,
     171    },
     172    points: {
     173      show: true,
     174      radius: 2,
     175    },
     176    mouse: {
     177      track: true,
     178      position: 'sw',
     179      sensibility: 400,
     180      radius: 3,
     181      trackFormatter: function(p){ return '[' + hdate(p.x) + '] ' + p.series.label + ': ' + Math.round(p.y); },
     182    },
     183    colors: [ '#00e', '#d00', '#0c0', '#ee0', '#000', '#c8f', '#f0f', '#a0a', '#888' ],
     184});
     185
     186Flotr.draw(
     187  $('g_messagec'),[
     188      { data:counter['mi_tot'],        label :'total' },
     189      { data:counter['mo_sent'],       label :'external' },
     190      { data:counter['mi_inbox'],      label :'internal' },
     191      { data:counter['mi_robot'],      label :'int robot' },
     192      { data:counter['mo_bounced'],    label :'ext bounce' },
     193      { data:counter['mo_deferred'],   label :'ext deferred' },
     194      { data:counter['mi_bounced'],    label :'int bounce' },
     195],{
     196    xaxis:{
     197      ticks: xticks,
     198    },
     199    yaxis:{
     200      min: 0,
     201    },
     202    legend: {                                                                                                                                               
     203      position: 'nw',
     204      noColumns: 1,
     205    },
     206    lines: {
     207      show: true,
     208    },
     209    points: {
     210      show: true,
     211      radius: 2,
     212    },
     213    mouse: {
     214      track: true,
     215      position: 'sw',
     216      sensibility: 400,
     217      radius: 3,
     218      trackFormatter: function(p){ return '[' + hdate(p.x) + '] ' + p.series.label + ': ' + Math.round(p.y); },
     219    },
     220    colors: [ '#00e', '#d00', '#0c0', '#ee0', '#000', '#c8f', '#f0f', '#a0a', '#888' ],
     221});
     222
     223Flotr.draw(
     224  $('g_greylist'),[
     225      { data:counter['grey_spf'],      label :'whitelist spf' },
     226      { data:counter['grey_delayed'],  label :'greylisted' },
     227      { data:counter['grey_autowl'],   label :'whitelisted' },
     228      { data:counter['grey_hard_wl'],  label :'hard whitelisted' },
     229
     230    ],{
     231    xaxis:{
     232      ticks: xticks,
     233    },
     234    yaxis:{
     235      min: 0,
     236    },
     237    legend: {                                                                                                                                               
     238      position: 'nw',
     239      noColumns: 1,
     240    },
     241    lines: {
     242      show: true,
     243    },
     244    points: {
     245      show: true,
     246      radius: 2,
     247    },
     248    mouse: {
     249      track: true,
     250      position: 'sw',
     251      sensibility: 400,
     252      radius: 3,
     253      trackFormatter: function(p){ return '[' + hdate(p.x) + '] ' + p.series.label + ': ' + Math.round(p.y); },
     254    },
     255    colors: [ '#00e', '#d00', '#0c0', '#ee0', '#000', '#c8f', '#f0f', '#a0a', '#888' ],
     256});
     257
     258Flotr.draw(
     259  $('g_spamvir'),[
     260      { data:counter['mi_ham'],        label :'Ham' },
     261      { data:counter['mi_unsure'],     label :'Unsure' },
     262      { data:counter['mi_spam'],       label :'Spam' },
     263      { data:counter['mi_virus'],      label :'Virus' },
     264    ],{
     265    xaxis:{
     266      ticks: xticks,
     267    },
     268    yaxis:{
     269      min: 0,
     270    },
     271    legend: {                                                                                                                                               
     272      position: 'nw',
     273      noColumns: 1,
     274    },
     275    lines: {
     276      show: true,
     277    },
     278    points: {
     279      show: true,
     280      radius: 2,
     281    },
     282    mouse: {
     283      track: true,
     284      position: 'sw',
     285      sensibility: 400,
     286      radius: 3,
     287      trackFormatter: function(p){ return '[' + hdate(p.x) + '] ' + p.series.label + ': ' + Math.round(p.y); },
     288    },
     289    colors: [ '#00e', '#d00', '#0c0', '#ee0', '#000', '#c8f', '#f0f', '#a0a', '#888' ],
     290});
     291
    181292
    182293});
Note: See TracChangeset for help on using the changeset viewer.