Ankündigung

Einklappen
Keine Ankündigung bisher.

Load average in rrd aufzeichnen

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] Load average in rrd aufzeichnen

    Hallo zusammen!

    Ich würde gerne das Load Average, das im WG WebIf angezeigt wird, in ein rrd schreiben (oder gibt es das schon wo?).
    Hintergrund: Wenn ich das WebIf aufrufe, zeigt das avg oft Werte über 3, die dann langsam abfallen. Wenn ich nach längere Zeit schaue, bin ich irgendwo um 0,5.

    Ich vermute, dass das zyklische neuladen der rrd-Diagramme in der CometVisu damit in Verbindung stehen. Problem hab ich kein echtes, aber interessieren würd's mich trotzdem. Wenn 30 Diagramme alle 300 sec. aktualisiert werden, gibt es Optimierungpotential. Dazu brauch ich aber einen Indikator => load_avg.

    Danke im Voraus!
    Robert

    #2
    Einfach ein Plugin schreiben, dass per Befehl "uptime" sich die drei load Werte holt und dann in ein RRD schreiben. Sollte nicht weiter schwer sein.

    Du weißt aber, dass load nichts über die Last aussagt?
    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

    Kommentar


      #3
      Danke Chris!
      Zitat von Chris M. Beitrag anzeigen
      Du weißt aber, dass load nichts über die Last aussagt?
      Nein ehrlich gesagt nicht. Aber gemäß Wiki nicht ganz falsch. Denke das WG hat eine CPU, damit sollte der die load im mittel <1 sein.
      Wikipedia:
      Der Load Average (frei übersetzt durchschnittliche Systemlast) ist per Definition die (durchschnittliche) Länge der Run Queue der CPU sowie die Anzahl der Prozesse, die auf dieser laufen oder auf IO warten (Status D). Je nach System variiert die Zusammensetzung, genauso wie die üblichen Werte. Generell jedoch gilt: Je niedriger der Load-Wert, desto unbelasteter ist ein System, d. h. es stehen mehr Ressourcen zur Verfügung. Die untere Grenze beträgt Null. Ein Load Average von 0 sagt zum Beispiel aus, dass sämtliche Betriebsmittel zur Verfügung stehen und das System die Aufgaben eines Benutzers mit maximaler Geschwindigkeit bearbeiten kann.
      Zitat von Chris M. Beitrag anzeigen
      Einfach ein Plugin schreiben, dass per Befehl "uptime" sich die drei load Werte holt und dann in ein RRD schreiben. Sollte nicht weiter schwer sein.
      Danke für den Tip. Werd das mal in 2 rrds speichern und beobachten.
      Hier die Umsetzung:
      Code:
      ...
      my $temp = `uptime`;
      my $load1min = substr $temp, 53, 4;
      my $load15min = substr $temp, 65, 4;
      
      return "1min $load1min 15min $load15min";
      lg
      Robert

      Kommentar


        #4
        Load ist schon ein guter Anhaltspunkt. Daher wird die auch immer wieder gerne genommen. Aber gerade die auf IO wartenden Prozesse können das Ergebnis schwer interpretierbar machen. Und eigentlich möchte man ja eine Zahl, anhand der man schnell sagen kann "ob's eng wird" - da ist schwer interpretierbar doof.
        TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

        Kommentar


          #5
          Danke!
          Hast du noch einen Tipp, wie ich das umspeichern des Strings machen muss, wenn die Position im string veränderlich ist?
          Hab heute folgende Meldung im Plugin-Log:
          HTML-Code:
            2016-02-28 09:34:37.055,Wiregate_Load,Warning: Argument ", 0." isn't numeric in multiplication (*) at (eval 113037) line 13.
          Obwohl ich nicht verstehe, welcher output hier variable Länge hat? Hab leider kein return "$temp" im Log, aber schon hinzugefügt.
          Edit: Nur zum Verfständnis: Hab eine Multiplikation des load-Wertes mit 100 (Umrechnung in %) im plugin.
          Code:
          root@wiregate321:~# uptime
           10:40:30 up 15 days,  1:48,  1 user,  load average: 2.40, 2.14, 1.53
          Danke und lg
          Robert
          Zuletzt geändert von Robert_Mini; 28.02.2016, 10:51.

          Kommentar


            #6
            Hallo Robert,

            das gibt es alles auf dem Wiregate schon fix und fertig als rrd's. Schau mal ins Verzeichnis

            /var/lib/collected/rrd/wiregatexxx

            dort findest Du allerhand System rrds unter anderem auch load...

            Gruß
            Andi
            Gruß
            Andi

            Kommentar


              #7
              Danke für die Info!
              Frage hinsichtlich Plugin bleibt aber aufrecht, dann ich load als GA auch auf die Visu bringen.

              2. Frage: Wie kann ich in der CV ein diagramm mit einem rrd in einem anderen Verzeichnis als var/www/rrd anzeigen?

              Danke
              Robert

              Kommentar


                #8
                mach Dir einfach nen link in das Verzeichnis

                /var/www/rrd

                rein und schon hast Du die verlinkten rrd auch in der CV als Auswahl
                Gruß
                Andi

                Kommentar


                  #9
                  Zitat von Robert_Mini Beitrag anzeigen
                  Danke!
                  Hast du noch einen Tipp, wie ich das umspeichern des Strings machen muss, wenn die Position im string veränderlich ist?
                  Dann darf man nicht nach Position gehen, sondern muss im String ein Pattern Matching machen. Ganz simpel wäre hier bei Leerzeichen zu trennen und dann den passenden Teil nehmen;
                  Code:
                  @l = split(" ", `uptime`); print $l[8];
                  Besser (und ggf. robuster) wäre ein regulärer Ausdruck:
                  Code:
                  @l = split(/.*load average: ([0-9,.]+), ([0-9,.]+), ([0-9,.]+)/, `uptime`); print "$l[1] $l[2] $l[3]\n";
                  Zitat von tger977 Beitrag anzeigen
                  das gibt es alles auf dem Wiregate schon fix und fertig als rrd's.
                  Gut möglich und wäre dann natürlich die beste Lösung.
                  TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                  Kommentar


                    #10
                    Danke! Funktioniert perfekt!!
                    Bin immer wieder beeindruckt, was Könner in einer Code-Zeile unterbringen .
                    lg Robert

                    Kommentar

                    Lädt...
                    X