Dokumentation: Flowy-Konfiguration


Please support us to improve our service. We would like to use statistics anonymously.

We do not pass on your data! You can find more information in our privacy policy.

Decline

< Zurück zur Dokumentation

Flowy-Konfiguration

Die Konfigurationsdateien haben viele Einstellungen gemeinsam. Flowy verwendet für seine Metadaten eine relationale Datenbank. Daher sollten für den Admin-Dienst und den Verarbeitungsdienst exakt dieselben Einstellungen für spring / datasource verwendet werden.

Die folgende Tabelle beschreibt die Details:

PfadVerfügbarkeitBeschreibungTypStandardwert
spring.datasource.urlCoreURL der Datenbank, die Flowy für seine Metadaten verwendetPflichtn/a
spring.datasource.usernameCoreZu verwendender BenutzernamePflichtn/a
spring.datasource.passwordCoreZu verwendendes PasswortPflichtn/a
spring.datasource.hikari.maximum-pool-sizeCoreGröße des Pools der Datenbankverbindungen, die der Flowy-Dienst für die interne Kommunikation verwendetOptional10
flowy.core.instance.dirCorePfad, unter dem Flowy-bezogene Dateien und Verzeichnisse gespeichert werdenOptional.flowy
flowy.core.instance-idCoreMuss für jeden Admin- sowie Verarbeitungsdienst individuell sein. Diese Werte müssen mit der entsprechenden Einstellung bzw. dem entsprechenden Instanz-Eintrag übereinstimmen. Wenn nicht gesetzt, werden neue Werte generiert und in der Datei instance-id gespeichert.Optionaln/a
flowy.core.security.passwordCoreDieses Passwort wird zum Ver- und Entschlüsseln der Werte verwendet, wie sie in der Datenbank gespeichert werden; daher muss in jeder Umgebung derselbe Wert verwendet werdenPflichtn/a
flowy.core.security.prometheus-metrics-whitelistCoreStandardmäßig ist nur 127.0.0.1 erlaubt; jede weitere IP-Adresse muss hier konfiguriert werdenPflichtn/a
flowy.core.system-scheduler-pool-sizeCoreAnzahl der Threads, die für interne Jobs verwendet werdenOptional10
server.portCoreStandardport des ServersOptional8080
spring.liquibase.enabledCoreLegt fest, ob Migrationen beim Start ausgeführt werdenOptionaltrue

Admin-Konfiguration

Für den Admin-Dienst kann die folgende Konfiguration verwendet werden:

spring:
  datasource:
    url: jdbc:postgresql://<dbServer>:<dbPort>/<dbName>
    username: <dbUser>
    password: <dbPassword>
  liquibase.enabled: false
    
flowy.core:
  security:
    password: <flowySharedSecret>
    prometheus-metrics-whitelist:
      - 127.0.0.1
      - 127.0.0.2
      - 127.0.0.3

flowy.admin.module-version: 2021.09

Die folgende Tabelle beschreibt die Details:

PfadVerfügbarkeitBeschreibungTypStandardwert
flowy.admin.history.ttlAdminLegt die maximale Aufbewahrungsdauer für History-Einträge festOptional90d
flowy.admin.history.clean-delayAdminZeitabstand zwischen den Prüfungen für die History-BereinigungOptional1d
flowy.admin.history.clean-enabledAdminAktiviert bzw. deaktiviert die History-Bereinigung (standardmäßig aus)OptionalFalse
flowy.admin.module-versionAdminWird beim Export/Import von Modulen verglichen, um die Kompatibilität sicherzustellenPflichtn/a
server.servlet.context-pathAdminURL-Erweiterung für den DienstOptional"/api"

Verarbeitungs-Konfiguration

Für den Verarbeitungsdienst kann die folgende Konfiguration verwendet werden:

spring:
  datasource:
    url: jdbc:postgresql://<dbServer>:<dbPort>/<dbName>
    username: <dbUser>
    password: <dbPassword>
server.port: 8081
flowy.core:
  security:
    password: <flowySharedSecret>
    prometheus-metrics-whitelist:
      - 127.0.0.1
      - 127.0.0.2
      - 127.0.0.3

Die folgende Tabelle beschreibt die Details:

PfadVerfügbarkeitBeschreibungTypStandardwert
flowy.processing.credentials.inactive-ttlVerarbeitungLegt das Timeout fest, nach dem Verbindungen geschlossen werden (derzeit nur von MQTT unterstützt)Optional1d
flowy.processing.credentials.sync-delayVerarbeitungLegt das Intervall zwischen den Prüfungen der Credentials festOptional5s
flowy.processing.plugin.sync-delayVerarbeitungZeitabstand zwischen den Prüfungen auf Plugin-UpdatesOptional25s
flowy.processing.plugin.dirVerarbeitungLegt das Verzeichnis fest, in dem Plugins zwischengespeichert werdenOptional"plugins"
flowy.processing.process-execution.fetch-events-delayVerarbeitungLegt das Intervall zwischen den Prüfungen der Events festOptional100ms
flowy.processing.process-execution.clean-up-logs-delayVerarbeitungLegt das Intervall zwischen den Bereinigungen von Step-Logs und Events festOptional7m
flowy.processing.process-execution.clean-up-errors-delayVerarbeitungLegt das Intervall zwischen den Bereinigungen von Fehlern festOptional7m
flowy.processing.process-execution.heartbeatVerarbeitungLegt das Intervall zwischen den Heartbeat-Aktualisierungen festOptional45s
flowy.processing.process-execution.execute-process-step-child-event-delayVerarbeitungLegt die Wartezeit zwischen den Prüfungen von untergeordneten Events festOptional100ms
flowy.processing.trigger-cron.sync-delayVerarbeitungLegt die Wartezeit zwischen den Cron-Synchronisierungen festOptional25s
flowy.processing.groovy-script.clean-up-delayVerarbeitungLegt das Intervall zwischen den Bereinigungen von Storage-Werten festOptional1h
flowy.processing.groovy-script.inactive-ttlVerarbeitungIntervall, wie lange das Groovy-Skript bei Nichtverwendung im Cache verbleibtOptional30d
flowy.processing.trigger-rest.wait-event-timeVerarbeitungLegt die Wartezeit zwischen den Prüfungen des Event-Status festOptional100ms
flowy.processing.trigger-rest.sync-delayVerarbeitungLegt die Wartezeit zwischen den Synchronisierungen der REST-Trigger festOptional25s
flowy.processing.trigger-messaging.sync-delayVerarbeitungLegt die Wartezeit zwischen den Synchronisierungen der Messaging-Trigger festOptional25s
flowy.processing.storage.clean-up-delayVerarbeitungLegt das Intervall zwischen den Bereinigungen von Storage-Werten festOptional5m
flowy.processing.library.sync-delayVerarbeitungZeitabstand zwischen den Prüfungen auf Bibliotheks-UpdatesOptional30s
flowy.processing.library.dirVerarbeitungLegt das Verzeichnis fest, in dem Bibliotheken zwischengespeichert werdenOptional.flowy/processing/libraries
flowy.processing.rest-templates.clean-up-delayVerarbeitungIntervall zwischen den Bereinigungen des REST-Template-CachesOptional1h
flowy.processing.rest-templates.inactive-ttlVerarbeitungIntervall, wie lange das REST-Template bei Nichtverwendung im Cache verbleibtOptional1d
flowy.processing.process-execution.fix-execution-state-delayVerarbeitungIntervall zur Prüfung auf Jobs, die nicht rechtzeitig abgeschlossen wurdenOptional1m
server.servlet.context-pathVerarbeitungURL-Erweiterung für den DienstOptional"" (= leerer String)

Weitere Informationen zur History-Bereinigung finden Sie auf der Seite Interne Jobs.

Log-Konfiguration

Die Logging-Einstellungen müssen Flowy über die Datei logback.xml bereitgestellt werden. Die standardmäßig im Jar enthaltene Logback-Konfiguration kann überschrieben werden:

java -Dlogging.config=/path/to/logback.xml -jar flowy.jar

Nachfolgend finden Sie mehrere nützliche Beispiele.

Log-Rotation

Eine logback.xml-Konfiguration mit lokalen Log-Dateien und Rotation:

<configuration>
    <springProperty scope="context" name="application" source="spring.application.name"/>
    <springProperty scope="context" name="instance-id" source="flowy.core.instance-id"/>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%green(%date) %highlight(%-5level) %yellow([%-4relative]) %magenta([%thread]) %cyan(%logger{10}) %yellow([%file:%line]) %blue(: %msg%n)</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!-- RollingFileAppender configuration -->
    <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>log/flowy.log</file>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{10} [%file:%line] - %msg%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- daily rollover and max 16MB -->
            <fileNamePattern>log/flowy.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxFileSize>16MB</maxFileSize>
            <maxHistory>10</maxHistory>
            <totalSizeCap>320MB</totalSizeCap>
        </rollingPolicy>
    </appender>

    <root level="WARN">
        <appender-ref ref="ROLLING"/>
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

Graylog-Konfiguration

Nachfolgend ein Beispiel für eine logback.xml, das die Verwendung von Graylog zeigt:

<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%green(%date) %highlight(%-5level) %yellow([%-4relative]) %magenta([%thread]) %cyan(%logger{10}) %yellow([%file:%line]) %blue(: %msg%n)</pattern>
      <charset>UTF-8</charset>
    </encoder>
  </appender>
  <appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">
    <graylogHost>192.168.1.2</graylogHost>
    <graylogPort>10240</graylogPort>
  </appender>
  <root level="INFO">
    <appender-ref ref="GELF"/>
    <appender-ref ref="STDOUT"/>
  </root>
</configuration>