Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: RRDTool - prośba o sprawdzenie  (Przeczytany 3158 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?