Ignore:
Timestamp:
Jan 8, 2010, 8:11:29 PM (14 years ago)
Author:
george
Message:
  • Přidáno: Zobrazení posledních 10 period v tabulce dostupnosti zařízení.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/network/dostupnost.php

    r268 r269  
    1313    array('Column' => 'Month', 'Title' => 'Měsíc', 'Period' => 720), // 24 * 30
    1414    array('Column' => 'Year', 'Title' => 'Rok', 'Period' => 8760), // 365 * 24
    15     array('Column' => 'TenYear', 'Title' => 'Desetiletí', 'Period' => 87600), // 365 * 24 * 10
     15    //array('Column' => 'TenYear', 'Title' => 'Desetiletí', 'Period' => 87600), // 365 * 24 * 10
    1616  );
    1717
     
    1919  {
    2020    $Output = '<div style="font-size: small;">Dostupnost zařízení se kontroluje jednou za minutu. Hodnoty u delších intervalů nemusí odpovídat skutečnosti, protože záznam byl spuštěn až v průběhu těchto intervalu.
    21 Všechny prvky sítě jsou kontrolovány z směrovačů, tj. pokud vypadne některé blízké zařízení, všechny další zařízení propojené přes něj jsou také nedostupné.</div>';
     21Všechny prvky sítě jsou kontrolovány ze směrovačů, tj. pokud vypadne některé blízké zařízení, všechny další zařízení propojené přes něj jsou také nedostupné.</div>';
    2222    $Output .= '<div align="center">';
     23    if(array_key_exists('Period', $_GET)) $Output .= 'Perioda: <a href="?">Smíšená</a> ';
     24      else $Output .= 'Perioda: <a href="?"><strong>Smíšená</strong></a> ';
     25    foreach($this->Period as $Index => $Period)
     26    {
     27      if(array_key_exists('Period', $_GET) and ($_GET['Period'] == $Index))
     28      $Output .= ' <a href="?Period='.$Index.'"><strong>'.$Period['Title'].'</strong></a>';
     29      else $Output .= ' <a href="?Period='.$Index.'">'.$Period['Title'].'</a>';
     30    }
     31    $Output .= '<br/>';
    2332
    2433    $HostTypeList = array();
     
    3039    $Output .= '<br /><table class="WideTable" style="font-size: small;">';
    3140    $Output .= '<tr><th>Jméno</th>';
    32     foreach($this->Period as $Period)
    33       $Output .= '<th>'.$Period['Title'].' [%]</th>';
    34     $Output .= '</tr>';
    3541   
    3642    $Join = '';
    3743    $Columns = '';
    38     foreach($this->Period as $Period)
     44    if(!array_key_exists('Period', $_GET))
    3945    {
    40       $Join .= ' LEFT JOIN (SELECT NetworkInterfaceStat.NetworkInterface, (SUM(NetworkInterfaceStat. PingCount) / '.$Period['Period'].' / 60 * 100) AS Percent FROM NetworkInterfaceStat WHERE (Time > DATE_SUB(DATE_SUB(NOW(), INTERVAL 1 HOUR), INTERVAL '.$Period['Period'].' HOUR)) AND (Time < DATE_SUB(NOW(), INTERVAL 1 HOUR)) GROUP BY NetworkInterface) AS Period'.$Period['Column'].' ON Period'.$Period['Column'].'.NetworkInterface = NetworkInterface.Id';
    41       $Columns .= ', Period'.$Period['Column'].'.Percent AS '.$Period['Column'];
     46      foreach($this->Period as $Period)
     47      {
     48        $Output .= '<th>'.$Period['Title'].' [%]</th>';
     49        $Join .= ' LEFT JOIN (SELECT NetworkInterfaceStat.NetworkInterface, (SUM(NetworkInterfaceStat. PingCount) / '.$Period['Period'].' / 60 * 100) AS Percent FROM NetworkInterfaceStat WHERE (Time > DATE_SUB(DATE_SUB(NOW(), INTERVAL 1 HOUR), INTERVAL '.$Period['Period'].' HOUR)) AND (Time < DATE_SUB(NOW(), INTERVAL 1 HOUR)) GROUP BY NetworkInterface) AS Period'.$Period['Column'].' ON Period'.$Period['Column'].'.NetworkInterface = NetworkInterface.Id';
     50        $Columns .= ', Period'.$Period['Column'].'.Percent AS '.$Period['Column'];
     51      }
     52    } else
     53    {
     54      if(array_key_exists($_GET['Period'], $this->Period))
     55      {
     56        for($I = 0; $I < 10; $I++)
     57        {
     58          $Period = $this->Period[$_GET['Period']];
     59          $Output .= '<th>-'.$I.' [%]</th>';
     60          $Join .= ' LEFT JOIN (SELECT NetworkInterfaceStat.NetworkInterface, (SUM(NetworkInterfaceStat. PingCount) / '.$Period['Period'].' / 60 * 100) AS Percent FROM NetworkInterfaceStat WHERE (Time > DATE_SUB(DATE_SUB(NOW(), INTERVAL 1 HOUR), INTERVAL '.($Period['Period'] * ($I + 1)).' HOUR)) AND (Time < DATE_SUB(DATE_SUB(NOW(), INTERVAL 1 HOUR), INTERVAL '.($Period['Period'] * $I + 1).' HOUR)) GROUP BY NetworkInterface) AS Period'.$I.' ON Period'.$I.'.NetworkInterface = NetworkInterface.Id';
     61          $Columns .= ', Period'.$I.'.Percent AS Period'.$I.'Column';
     62        }
     63      } else die('Neznámé id');
    4264    }
     65
     66    $Output .= '</tr>';
    4367     
    44     $DbResult2 = $this->Database->query('SELECT NetworkInterface.Name'.$Columns.', NetworkDevice.Name AS DeviceName FROM NetworkInterface '.$Join.' JOIN NetworkDevice ON NetworkInterface.Device = NetworkDevice.Id WHERE NetworkDevice.Used = 1 AND NetworkDevice.Type IN (1, 4, 5) ORDER BY Name');
     68    $DbResult2 = $this->Database->query('SELECT NetworkInterface.Name'.$Columns.', NetworkDevice.Name AS DeviceName FROM NetworkInterface '.$Join.' JOIN NetworkDevice ON NetworkInterface.Device = NetworkDevice.Id WHERE NetworkDevice.Used = 1 AND NetworkDevice.Type IN (1, 4, 5) ORDER BY DeviceName, Name');
    4569    while($Interface = $DbResult2->fetch_assoc())
    4670    {
     
    4872      if($Interface['Name'] != '') $Name .= '-'.$Interface['Name'];
    4973      $Output .= '<tr><td>'.$Name.'</td>';
    50       foreach($this->Period as $Period)
    51         $Output .= '<td style="text-align: right;">'.sprintf('%01.2f', $Interface[$Period['Column']]).'</td>';
     74      if(!array_key_exists('Period', $_GET))
     75      {
     76        foreach($this->Period as $Period)
     77          $Output .= '<td style="text-align: right;">'.sprintf('%01.2f', $Interface[$Period['Column']]).'</td>';
     78      } else
     79      {
     80        if(array_key_exists($_GET['Period'], $this->Period))
     81        {
     82          for($I = 0; $I < 10; $I++)
     83          {
     84            $Output .= '<td style="text-align: center;">'.sprintf('%01.2f', $Interface['Period'.$I.'Column']).'</td>';
     85          }
     86        } else die('Neznámé id');
     87      }
    5288      $Output .= '</tr>';
    5389    }
Note: See TracChangeset for help on using the changeset viewer.