Ankündigung

Einklappen
Keine Ankündigung bisher.

Heartbeat-Logintervall konfigurieren

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

    [Featurewunsch] Heartbeat-Logintervall konfigurieren

    Hallo und gesundes neues Jahr euch allen!

    gaert: In den letzten Tagen habe ich mich wieder Docker-Edomi gewidmet und die erste CentOS7-Variante für amd64 sowie arm32v7 auf DockerHub gepushed. Dabei bin ich auch einem speziellen Problem der Kombination Docker-Edomi nachgegangen und zwar dem Heartbeat auf der Konsole.

    In proc_main.php gibt es die Funktion consoleInfo($n, $color), welche im Edomi-Lebenszyklus sekündlich aufgerufen wird und mit verschiedenen Escape-Sequenzen die letzte Zeile der Konsolenausgabe modifiziert resp. überschreibt. Auf der normalen Linux-Konsole ist das kein Problem. Bei Docker und insbesondere bei der Verwendung von Management-Tools wie Portainer funktionieren aber die Escape-Sequenzen nicht, weshalb im Sekundentakt eine neue Zeile geschrieben und damit auch geloggt wird. Damit schreibt man sich überraschend schnell die Platte mit sinnlosen Logs voll.

    Ich habe nun testweise den Funktionsaufruf
    Code:
    $this->consoleInfo($this->edomiStartDateTime, '42');
    aus dem jede Sekunde aufgerufenen Codeblock in den stündlichen Codeblock verschoben, was das Fluten des Logs um den Faktor 3600 reduziert. In der Docker-Umgebung ist es m.M.n. völlig ausreichend, das Heartbeat-Logging soweit zu reduzieren, zumal alle anderen Log-Ausgaben davon nicht betroffen sind.

    Nun wäre es schön, wenn das irgendwie konfigurierbar wäre. Lösungsvarianten gibt es natürlich viele, wobei es wohl am einfachsten (aber auch unschönsten) wäre, den sekündlichen Log-Aufruf zu entfernen. Mein Vorschlag wäre ein zusätzlicher Konfig-Schalter dieser Art:
    Code:
    global_longHeartbeatLogInterval=[true|false]
    Default auf false. Damit bleibt der Heartbeat wie er ist. Wird der Parameter auf true gesetzt, wird der Heartbeat nur stündlich auf der Konsole geloggt.

    Was meinst Du?
    Kind regards,
    Yves

    #2
    Hallo gaert,

    da Du bisher noch nichts dazu geschrieben hast und auch wenn sich ARMv7 erstmal erledigt hat: Hast Du diesen Feature-Request noch auf dem Schirm? Da das die Docker-Version grundsätzlich betrifft wäre es schön, wenn das in einer geeigneten Art und Weise realisiert werden könnte. Danke!
    Kind regards,
    Yves

    Kommentar


      #3
      Hi Yves, ich hab's noch garnicht bemerkt... Aber jetzt

      Kommt (unten) uff die Liste...
      EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

      Kommentar


        #4
        Getan!

        Sieht dann so aus (INI):

        Code:
        # Konsole: Statusausgabe
        # Auf der physischen Konsole (Bildschirm) wird sekündlich die aktuelle Uhrzeit ausgegeben. Dies führt bei manchen Systemen zu einem erhöhten Log-File-Volumen (z.B. Docker) und kann daher limitiert werden.
        # true = die Ausgabe der Uhrzeit erfolgt jede Sekunde
        # false = die Ausgabe der Uhrzeit erfolgt alle 60 Minuten (und beim Start)
        global_serverConsoleInterval=true
        EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

        Kommentar


          #5
          Moinmoin miteinander

          Zitat von gaert Beitrag anzeigen
          Getan!
          Perfekt, danke!
          Kind regards,
          Yves

          Kommentar

          Lädt...
          X