Korrekturen

URLs angepasst
Statistik Einheit automatisch ändern (MB -> GB)
This commit is contained in:
Gregor Schulte
2022-04-16 20:56:12 +02:00
parent 1e60371abe
commit 57608f3b2f
10 changed files with 230 additions and 245 deletions

View File

@@ -282,6 +282,17 @@ class StatisticBuilder
$this->suffix = isset($suffix) ? $suffix : NULL;
$this->label = _t($statistic['label']);
$this->unit = $statistic['unit'];
if ($statistic['unit'] == 'MB') {
$log = new LogStatistic();
$log->setFile(LOG_PATH . $this->raw . '.csv');
$lastValue = $log->getLast();
$log->close();
if ($lastValue && $lastValue[1] > 999999999) {
$this->unit = 'GB';
$this->label = 'GB';
}
}
$this->cycle = $statistic['cycle'];
$this->limits = $statistic['limits'];

View File

@@ -25,31 +25,27 @@ function calculateEmptyRows(&$arr, $columns, $firstTime, $lastTime, $cycle)
{
$buffer = array();
if ($lastTime < (time() - ($cycle * 60)))
{
for ($i = 0; $i < ceil(((time() - ($cycle * 60)) - $lastTime) / ($cycle * 60)); $i++)
{
if ($lastTime < (time() - ($cycle * 60))) {
for ($i = 0; $i < ceil(((time() - ($cycle * 60)) - $lastTime) / ($cycle * 60)); $i++) {
$dummy = array($lastTime + (($i + 1) * ($cycle * 60)));
for ($j = 1; $j < count($columns); $j++)
$dummy[] = 0;
$buffer[] = $dummy;
}
$arr['rows'] = array_merge($arr['rows'], $buffer);
}
$buffer = array();
if (isset($arr['rows']) && count($arr['rows']) < (604800 / ($cycle * 60)))
{
for ($i = 0; $i < ((604800 / ($cycle * 60)) - count($arr['rows'])); $i++)
{
if (isset($arr['rows']) && count($arr['rows']) < (604800 / ($cycle * 60))) {
for ($i = 0; $i < ((604800 / ($cycle * 60)) - count($arr['rows'])); $i++) {
$dummy = array($firstTime - (($i + 1) * ($cycle * 60)));
for ($j = 1; $j < count($columns); $j++)
$dummy[] = 0;
$buffer[] = $dummy;
}
$arr['rows'] = array_merge(array_reverse($buffer), $arr['rows']);
@@ -62,89 +58,84 @@ function getRowsFromLog(&$arr, &$info, $log, $columns, $cycle)
$firstTime = 0;
$leapyear = -1;
$leapyearSkip = 0;
foreach ($log as $row)
{
foreach ($log as $row) {
foreach ($row as &$data)
$data = trim($data);
if ($leapyearSkip != 0)
{
if ($leapyearSkip != 0) {
$leapyearSkip--;
continue;
}
if ($leapyear != -1 && $leapyear > date('I', $row[0]))
{
if ($leapyear != -1 && $leapyear > date('I', $row[0])) {
$leapyear = 0;
$leapyearSkip = (60/$cycle)-1;
$leapyearSkip = (60 / $cycle) - 1;
continue;
}
$leapyear = date('I', $row[0]);
if ($lastTime !== NULL && ($lastTime + ($cycle * 60) + 100) < $row[0])
{
if ($lastTime !== NULL && ($lastTime + ($cycle * 60) + 100) < $row[0]) {
$skipped = round(($row[0] - ($lastTime + ($cycle * 60))) / ($cycle * 60));
for ($i = 0; $i < $skipped; $i++)
{
for ($i = 0; $i < $skipped; $i++) {
$dummy = array($lastTime + (($i + 1) * ($cycle * 60)));
for ($j = 1; $j < count($columns); $j++)
$dummy[] = 0;
$arr['rows'][] = $dummy;
}
}
$dummy = array((int) $row[0]);
for ($i = 1; $i < count($columns); $i++)
{
for ($i = 1; $i < count($columns); $i++) {
$rowFloat = 0;
if (isset($columns[$i]['division']))
$rowFloat = (float) round(str_replace(array("\n", ','), array('', '.'), $row[$i]) / $columns[$i]['division'], 2);
elseif (isset($columns[$i]['multiplication']))
if (isset($columns[$i]['division'])) {
if ((float)$log[count($log) - 1][1] > 999999999)
$rowFloat = (float) round(str_replace(array("\n", ','), array('', '.'), $row[$i]) / $columns[$i]['division'] / 1024, 2);
else
$rowFloat = (float) round(str_replace(array("\n", ','), array('', '.'), $row[$i]) / $columns[$i]['division'], 2);
} elseif (isset($columns[$i]['multiplication']))
$rowFloat = (float) round(str_replace(array("\n", ','), array('', '.'), $row[$i]) * $columns[$i]['multiplication'], 2);
else
$rowFloat = (float) $row[$i];
if (!isset($info['min']) || $rowFloat < $info['min'])
$info['min'] = $rowFloat;
if (!isset($info['max']) || $rowFloat > $info['max'])
$info['max'] = $rowFloat;
$dummy[] = $rowFloat;
}
$arr['rows'][] = $dummy;
if ($firstTime == 0)
$firstTime = $row[0];
$lastTime = $row[0];
}
calculateEmptyRows($arr, $columns, $firstTime, $lastTime, $cycle);
calculatePeriods($info, $lastTime);
}
function convertForGoogleChart($rows)
{
foreach ($rows as $index => $row)
{
$dummy = array('c' => array(array('v' => 'Date('.date('Y,'.(date('m', $row[0])-1).',d,H,i', $row[0]).')')));
foreach ($rows as $index => $row) {
$dummy = array('c' => array(array('v' => 'Date(' . date('Y,' . (date('m', $row[0]) - 1) . ',d,H,i', $row[0]) . ')')));
unset($row[0]);
foreach ($row as $inde2 => $row2)
$dummy['c'][] = array('v' => $row2);
$rows[$index] = $dummy;
}
return $rows;
}
?>