Nowe posty

xx Dystrybucja pod HP Omen (6)
2024-03-27, 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
lamp Problem z Linux Lite po instalacji (0)
2024-03-27, 19:50:30
xx Ile pingwinów? (1)
2024-03-27, 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

Autor Wątek: RRDTool - prośba o sprawdzenie  (Przeczytany 3154 razy)

Syster

  • Gość
RRDTool - prośba o sprawdzenie
« dnia: 2013-05-28, 14:09:42 »
Witajcie!

Uczę się aktualnie obsługi RRDTool'a.
Napisałem sobie taki skrypt w PHP:
function create_graph2($output, $start, $end, $title, $rrd) {
$options = array(
"--start", $start,
"--end", $end,
"--title","\\"".$title."\\"",
"DEF:success=Test.rrd:success:AVERAGE",
"DEF:failure=Test.rrd:failure:AVERAGE",
"CDEF:tsuccess=success,300,*",
"CDEF:tfailure=failure,300,*",
"LINE2:tsuccess#FF0000",
"LINE2:tfailure#00FF00",
);
$rrd->rrdgraph($output,$options);
}

$rrd = new rrd_exec_access();
$arr = array(
"--step" => "300",
//"-b" => "now-6m",
"DS:success:ABSOLUTE:600:0:U",
"DS:failure:ABSOLUTE:600:0:U",
"RRA:LAST:0.5:1:3258720",
"RRA:AVERAGE:0.5:1:12",
"RRA:AVERAGE:0.5:12:24",
"RRA:AVERAGE:0.5:288:31",
"RRA:AVERAGE:0.5:8928:12",
"RRA:AVERAGE:0.5:107136:1",
);
$rrd->rrdcreate("Test.rrd",$arr);

$now = time();
$end = $now+(3600*24*31);
for ($t=$now; $t<=$end; $t+=300) {
$success = rand(0, 100);
$failure = rand(0, 100);
//$precent = ($t/($end/100))*100;
$rrd->rrdupdate("Test.rrd","$t:$success:$failure");
//echo $precent."%\\n";
}
create_graph2("login-day.gif", "now", "+12h", "Daily login attempts",$rrd);
create_graph2("login-week.gif", "now", "+1w", "Weekly login attempts",$rrd);
create_graph2("login-month.gif", "now", "+1m", "Monthly login attempts",$rrd);
create_graph2("login-year.gif", "now", "+1y", "Yearly login attempts",$rrd);
Kod ten symuluje wypełnienie bazy RRD wartościami losowymi od 0 do 100 co 5 minut (symulowane) dla obu zmiennych success i failure.
Baza RRD ma ustawiony krok co 5 minut. Wszystkie wykresy generują się poprawnie, poza day - tym, co ma pokazać średnie wartości co godzinę.
Nie wiem czemu, to nie chce zadziałać. Może przedstawię logikę, przy pisaniu RRA:
Próbki są co 5 minut czyli 12 próbek na godzinę, czyli 288 próbek na dzień.
RRA:AVERAGE:0.5:12:24 - Średnia z 12 próbek, zapisujemy 24 średnie wartości (24 godziny).
RRA:AVERAGE:0.5:288:31 - Średnia z 288 próbek (24 godziny), zapisujemy 31 średnich wartości (pełen miesiąc).
RRA:AVERAGE:0.5:8928:12 - Średnia z 8928 próbek (1 miesiąc), zapisujemy 12 średnich wartości (pełen rok).

Czy dobrze kombinuje?
W tym momencie wykresy wyglądają na oko ok, ale wykres dzienny to jedna krecha?