Ankündigung

Einklappen
Keine Ankündigung bisher.

RRD mit mehreren Werten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MGK
    antwortet
    Du solltest in dem Script evt noch das DS durch CF ersetzen, das ist ja eigentlich die consolidation function.

    ---
    CF
    the consolidation function that is applied to the data you want to fetch (AVERAGE,MIN,MAX,LAST)
    ---

    Michael

    Einen Kommentar schreiben:


  • arteco
    antwortet
    ups, hier dann mit Leerzeichen :-)

    Code:
    #!/bin/bash
    echo Content-Type: application/json
    echo Content-Encoding: gzip
    echo
    
    #rrdtool fetch /var/www/rrd/Luftfeuchte_Bad_knx5-2-79.rrd AVERAGE -s-24h
    RRD=`echo "$QUERY_STRING" | sed -n 's/^.*rrd=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
    DS=`echo "$QUERY_STRING" | sed -n 's/^.*ds=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
    START=`echo "$QUERY_STRING" | sed -n 's/^.*start=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
    END=`echo "$QUERY_STRING" | sed -n 's/^.*end=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
    RES=`echo "$QUERY_STRING" | sed -n 's/^.*res=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
    
    rrdtool fetch /var/www/$RRD $DS -s$START -e$END -r$RES | \
    { while read line ;
    do
        if [[ "$line" == *:* ]] #matching lines with ":"
        then
            arr=(${line//: / }) #splits string with ": " in array
            timestamp=${arr[0]}
            timestamp+="000"   #add zeros
    	values=""
    	for (( i=1; i < ${#arr[@]}; i++))
    	do
    	    if ((i > 1)); then values+=","; fi
                values+="\"${arr[i]}\""
    	done
            data+="[$timestamp,[$values]],"
        fi
    done
    echo "[${data%?}]" | gzip -c #cuts last character of $data and makes [] around
    }

    Einen Kommentar schreiben:


  • arteco
    antwortet
    Hey,

    auch bei uns funktioniert "datasourceIndex" nun mit R2054 aus dem SVN - siehe Anlage (Average) - dazu haben wir die "rrdfetch" wie folgt geändert:

    ---snip---
    *** siehe nächste Nachricht ***
    ---endsnip---

    VG
    Tommy (der Tester) & Alex (der Programmierer)
    Angehängte Dateien

    Einen Kommentar schreiben:


  • MicHau
    antwortet
    Am besten mal den Auszug aus der XML-Config mitschicken.
    Mit den Attributen "legend" und "legendposition" klappt es eigentlich gut.

    Einen Kommentar schreiben:


  • MGK
    antwortet
    DANKE

    und das mit den RRD klappt super (man muss nur wissen das die Zählung mit 0 anfängt - wäre hier nicht beginnen mit 1 sinnvoller?)

    Hier mal ein Beispiel (CPU load auf dem Raspi - die Farben sind furchtbar, ich haben nur schnell eben irgendwelche genommen)
    Bildschirmfoto 2014-01-29 um 19.44.58.png

    nächste Frage: kann man die irgendwie beschriften? Es gab schon mal einen Thread dazu, aber das "Label" scheint bei mir nicht zu funktionieren

    Michael

    Einen Kommentar schreiben:


  • MicHau
    antwortet
    Zitat von MGK Beitrag anzeigen
    jetzt frage ich mich nur wie ich dioe SVN Version laden kann
    Hier gibt es eine Anleitung: CometVisu/HowTo install the development version on the WireGate - Open Automation

    Einen Kommentar schreiben:


  • MGK
    antwortet
    wow seid ihr fix

    jetzt frage ich mich nur wie ich dioe SVN Version laden kann

    (sorry, dasist echt eine blöde Frage, aber ich habe bisher nur release-versionen genutzt)

    Michael

    Einen Kommentar schreiben:


  • pawlvandik
    antwortet
    WOW das ging aber flott.

    Im Editor siehts gut aus. Testen kann ich es mangels rrd's nicht.

    Einen Kommentar schreiben:


  • MicHau
    antwortet
    Zitat von MicHau Beitrag anzeigen
    Ich hoffe, es klappt!
    Klappte nicht, ich habe noch was nachgeschoben.

    Achso: der Upgrader muss über die Config-Files laufen, um die Anpassungen automatisch vorzunehmen. Aber das passiert ja beim Start automatisch.

    Einen Kommentar schreiben:


  • MicHau
    antwortet
    Na dann holt euch mal die neueste Version aus dem SVN-Repository.

    Ich hoffe, es klappt!

    Einen Kommentar schreiben:


  • pawlvandik
    antwortet
    wäre zumindest für mich stimmig

    Einen Kommentar schreiben:


  • MicHau
    antwortet
    Dann wäre das Attribut datasource eigentlich auch falsch benamt, es sollte dann eigentlich consolidationFunction heißen und zusätzlich ein Attribut datasourceIndex geben.

    Passt das soweit?

    Einen Kommentar schreiben:


  • pawlvandik
    antwortet
    Ja rrdfetch liefert alle Datensätze für die angegebene Zeit und Consolidation Function zurück.

    Wenn also bekannt ist, in welcher Reihenfolge die unterschiedlichen Daten Sources im RRD liegen, könnte man mit einer Indexnummer das Ergebnisarray auseinander nehmen (Siehe meine Ausgabe).

    Wenn man sicher gehen will, könnte man vorher ein "rrdtool info" machen und sich dort die Reihenfolge raus holen und zur Auswahl in der Oberfläche anzeigen lassen.

    Simple .... naja ... für den, der sich im CV Code auskennt wahrscheinlich schon.

    Einen Kommentar schreiben:


  • MicHau
    antwortet
    Für mich zum Mitschreiben (sorry):

    RRDFETCH liefert alle Datensätze zurück, richtig?
    D.h. hat das Array 3 Elemente, sind es drei Datensätze. Die könnte man CV-intern einzeln aus dem Array separieren. Also müsste man dem Diagram nur sagen, welche Datensatz-Nummer es nehmen soll und liest aus der JSON-Rückgabe die Werte am entsprechenden Index aus.

    Soweit hört sich das recht simple an. Änderungen an RRDFETCH müsste man auch nicht machen.

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    Übergabe der Datasource Nummer in der CV und Änderung der rrdfetch.

    Einen Kommentar schreiben:

Lädt...
X