Changeset 522 for trunk/admin/xcache.php


Ignore:
Timestamp:
2008-02-17T17:49:46+01:00 (7 years ago)
Author:
moo
Message:

slide hits per second and hour

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/admin/xcache.php

    r521 r522  
    110110        $b = $c;
    111111        $html[] = '<div style="background: rgb(' . "$r,$g,$b" . ')"></div>';
     112    }
     113    return implode('', $html);
     114}
     115
     116function calc_total(&$total, $data)
     117{
     118    foreach ($data as $k => $v) {
     119        switch ($k) {
     120        case 'type':
     121        case 'cache_name':
     122        case 'cacheid':
     123        case 'free_blocks':
     124            continue 2;
     125        }
     126        if (!isset($total[$k])) {
     127            $total[$k] = $v;
     128        }
     129        else {
     130            switch ($k) {
     131            case 'his_by_hour':
     132            case 'his_by_second':
     133                foreach ($data[$k] as $kk => $vv) {
     134                    $total[$k][$kk] += $vv;
     135                }
     136                break;
     137
     138            default:
     139                $total[$k] += $v;
     140            }
     141        }
     142    }
     143}
     144
     145function array_avg($a)
     146{
     147    if (count($a) == 0) {
     148        return '';
     149    }
     150    return array_sum($a) / count($a);
     151}
     152
     153function bar_percent($percent)
     154{
     155    $r = 220 + (int) ($percent * 25);
     156    $g = $b = 220 - (int) ($percent * 220);
     157    $percent = (int) ($percent * 100);
     158    return '<div>'
     159        . '<div style="height: ' . (100 - $percent) . '%"></div>'
     160        . '<div style="background: rgb(' . "$r,$g,$b" . '); height: ' . $percent . '%"></div>'
     161        . '</div>';
     162}
     163
     164function hits_to_graph($hits)
     165{
     166    $max = 0;
     167    foreach ($hits as $v) {
     168        if ($max < $v) {
     169            $max = $v;
     170        }
     171    }
     172    if (!$max) {
     173        return '';
     174    }
     175    $html = array();
     176    foreach ($hits as $v) {
     177        $html[] = bar_percent($v / $max);
    112178    }
    113179    return implode('', $html);
     
    196262    $cacheinfos[] = $data;
    197263    if ($pcnt >= 2) {
    198         foreach ($data as $k => $v) {
    199             switch ($k) {
    200             case 'type':
    201             case 'cache_name':
    202             case 'cacheid':
    203             case 'free_blocks':
    204                 continue 2;
    205             }
    206             if (!isset($total[$k])) {
    207                 $total[$k] = $v;
    208             }
    209             else {
    210                 $total[$k] += $v;
    211             }
    212         }
     264        calc_total($total, $data);
    213265    }
    214266}
     
    234286    $cacheinfos[] = $data;
    235287    if ($pcnt >= 2) {
    236         foreach ($data as $k => $v) {
    237             switch ($k) {
    238             case 'type':
    239             case 'cache_name':
    240             case 'cacheid':
    241             case 'free_blocks':
    242             case 'gc':
    243                 continue 2;
    244             }
    245             if (!isset($total[$k])) {
    246                 $total[$k] = $v;
    247             }
    248             else {
    249                 $total[$k] += $v;
    250             }
    251         }
     288        calc_total($total, $data);
    252289    }
    253290}
Note: See TracChangeset for help on using the changeset viewer.