PHP och RRD

RRDTool är en Linuxmjukvara som kan användas för att lagra data i Round-Robin Databaser för att sedan generera grafer utifrån den lagrade datan.
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
daromer
Hemautomation - det är mer än en hobby
Inlägg: 961
Blev medlem: 23 sep 2009, 09:31
Ort: Växjö

Re: PHP och RRD

Inlägg av daromer »

Jag genererar bilderna on deman om de är för gamla. Alla heter eget namn. Har även ett script som tar bort bilder över en vecka gamla. rrdtool genererar bara om bilden om den är ny. dvs jag kör med -z flaggan.
Användarvisningsbild
bertilson
Tar hemautomation på allvar
Inlägg: 133
Blev medlem: 21 dec 2009, 11:41
Ort: Borås

Re: PHP och RRD

Inlägg av bertilson »

Vad menar du att -z flaggan gör?


Kör du ett shell-script i cron som raderar gamla bilder då?? Vill du dela med dig av det?


//Per
daromer
Hemautomation - det är mer än en hobby
Inlägg: 961
Blev medlem: 23 sep 2009, 09:31
Ort: Växjö

Re: PHP och RRD

Inlägg av daromer »

Om man kollar i manualen för rrdtool så ser man detta:
Only generate the graph if the current graph is out of date or not existent. Note, that all the calculations will happen regardless so that the output of PRINT and graphv will be complete regardless. Note that the behavior of lazy in this regard has seen several changes over time. The only thing you can really rely on before RRDtool 1.3.7 is that lazy will not generate the graph when it is already there and up to date, and also that it will output the size of the graph.
Hämtat från: http://oss.oetiker.ch/rrdtool/doc/rrdgraph.en.html

Jag raderar bara gamla bilder dvs bilder som inte existerar för att jag ändrat i scritpet. Alla andra låter jag ligga. Ingen ide att radera en bild som ev används om en vecka igen. Om man nu inte genererar bilder baserade på datum och annat. dvs bilder som chansen är att de inte används på flera år igen.

Ivf denna kör jag t ex på bilder som max håller i 30 minuter och sedan inte existerar längre:
*/30 * * * * /usr/bin/find /homeauto/web/png3/ -mmin +30 -exec rm -v {} \; >/dev/null 2>&1

Den kör igenom katalogen: /homeauto/web/png3/ 2 gånger i timmen och raderar filder som är äldre än 30 minuter.
Användarvisningsbild
bertilson
Tar hemautomation på allvar
Inlägg: 133
Blev medlem: 21 dec 2009, 11:41
Ort: Borås

Re: PHP och RRD

Inlägg av bertilson »

Funkar fint nu! Tack för tipsen.

Jag kör

Kod: Markera allt

$filnamn = "graph/" . $_GET["rrd"] . time() . ".png";


filnamnet blir då outside1333485860.png alltså ett specifikt tidsnummer för varje bild.

En fråga bara, varför har du verbose flaggan på rm??

Men nu så funkar scriptet ganska bra i alla fall

Kod: Markera allt

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset="utf-8" />
  <title><?php echo $_GET["r"] ?> </title>
</head>

<body>

<?php

$filnamn = "graph/" . $_GET["rrd"] . time() . ".png";

// variabler:    start      title       width     height         rrd         Color
create_graph($_GET["t"], $_GET["r"], $_GET["w"], $_GET["h"], $_GET["rrd"], $_GET["c"], $filnamn);



echo "<img src='" . $filnamn . "' alt='Generated RRD image'>";
exit;

function create_graph($start, $title, $width, $height, $rrd, $color, $output) {
$path = "/var/rrddata/temp_"; // Sökvägen till rrd-databasen.
  $options = array(
    "--slope-mode",
    "--start", $start,
    "--title=$title",
    "--width=$width",
    "--height=$height",
    "--vertical-label=Temperatur",
    "DEF:temp=$path$rrd.rrd:temp_value:AVERAGE",
    "LINE1:temp#$color:$rrd",
    "GPRINT:temp:LAST:Temperatur %0.2lf\\n",
    "GPRINT:temp:MIN:Min\: %0.2lf%s",
    "GPRINT:temp:AVERAGE:Medel\: %0.2lf%s",
    "GPRINT:temp:MAX:Max\: %0.2lf%s\\n",
    "COMMENT:Tid\: $now"

  );

  $ret = rrd_graph($output, $options, count($options));
  if (! $ret) {
    echo "<b>Graph error: </b>".rrd_error()."\n";
  }
}

?>


</body>
</html>


daromer
Hemautomation - det är mer än en hobby
Inlägg: 961
Blev medlem: 23 sep 2009, 09:31
Ort: Växjö

Re: PHP och RRD

Inlägg av daromer »

Verbose har bara följt med sedan jag testade. dvs innan jag lade trunkning på loggarna. så du kan ta bort -v
Användarvisningsbild
bertilson
Tar hemautomation på allvar
Inlägg: 133
Blev medlem: 21 dec 2009, 11:41
Ort: Borås

Re: PHP och RRD

Inlägg av bertilson »

Redan plockad bort, jag var däremot tvungen att lägga till -f då alla mina bilder av någon anledning blir skrivskyddade.

Nästa grej att införa nu är att automatiskt anpassa storleken på grafen efter skärmen.

Eller i alla fall om det är från mobilen eller inte.
Skriv svar