Dokumentation: Flowy-Konfiguration
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:
| Pfad | Verfügbarkeit | Beschreibung | Typ | Standardwert |
|---|---|---|---|---|
| spring.datasource.url | Core | URL der Datenbank, die Flowy für seine Metadaten verwendet | Pflicht | n/a |
| spring.datasource.username | Core | Zu verwendender Benutzername | Pflicht | n/a |
| spring.datasource.password | Core | Zu verwendendes Passwort | Pflicht | n/a |
| spring.datasource.hikari.maximum-pool-size | Core | Größe des Pools der Datenbankverbindungen, die der Flowy-Dienst für die interne Kommunikation verwendet | Optional | 10 |
| flowy.core.instance.dir | Core | Pfad, unter dem Flowy-bezogene Dateien und Verzeichnisse gespeichert werden | Optional | .flowy |
| flowy.core.instance-id | Core | Muss 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. | Optional | n/a |
| flowy.core.security.password | Core | Dieses 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 werden | Pflicht | n/a |
| flowy.core.security.prometheus-metrics-whitelist | Core | Standardmäßig ist nur 127.0.0.1 erlaubt; jede weitere IP-Adresse muss hier konfiguriert werden | Pflicht | n/a |
| flowy.core.system-scheduler-pool-size | Core | Anzahl der Threads, die für interne Jobs verwendet werden | Optional | 10 |
| server.port | Core | Standardport des Servers | Optional | 8080 |
| spring.liquibase.enabled | Core | Legt fest, ob Migrationen beim Start ausgeführt werden | Optional | true |
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:
| Pfad | Verfügbarkeit | Beschreibung | Typ | Standardwert |
|---|---|---|---|---|
| flowy.admin.history.ttl | Admin | Legt die maximale Aufbewahrungsdauer für History-Einträge fest | Optional | 90d |
| flowy.admin.history.clean-delay | Admin | Zeitabstand zwischen den Prüfungen für die History-Bereinigung | Optional | 1d |
| flowy.admin.history.clean-enabled | Admin | Aktiviert bzw. deaktiviert die History-Bereinigung (standardmäßig aus) | Optional | False |
| flowy.admin.module-version | Admin | Wird beim Export/Import von Modulen verglichen, um die Kompatibilität sicherzustellen | Pflicht | n/a |
| server.servlet.context-path | Admin | URL-Erweiterung für den Dienst | Optional | "/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:
| Pfad | Verfügbarkeit | Beschreibung | Typ | Standardwert |
|---|---|---|---|---|
| flowy.processing.credentials.inactive-ttl | Verarbeitung | Legt das Timeout fest, nach dem Verbindungen geschlossen werden (derzeit nur von MQTT unterstützt) | Optional | 1d |
| flowy.processing.credentials.sync-delay | Verarbeitung | Legt das Intervall zwischen den Prüfungen der Credentials fest | Optional | 5s |
| flowy.processing.plugin.sync-delay | Verarbeitung | Zeitabstand zwischen den Prüfungen auf Plugin-Updates | Optional | 25s |
| flowy.processing.plugin.dir | Verarbeitung | Legt das Verzeichnis fest, in dem Plugins zwischengespeichert werden | Optional | "plugins" |
| flowy.processing.process-execution.fetch-events-delay | Verarbeitung | Legt das Intervall zwischen den Prüfungen der Events fest | Optional | 100ms |
| flowy.processing.process-execution.clean-up-logs-delay | Verarbeitung | Legt das Intervall zwischen den Bereinigungen von Step-Logs und Events fest | Optional | 7m |
| flowy.processing.process-execution.clean-up-errors-delay | Verarbeitung | Legt das Intervall zwischen den Bereinigungen von Fehlern fest | Optional | 7m |
| flowy.processing.process-execution.heartbeat | Verarbeitung | Legt das Intervall zwischen den Heartbeat-Aktualisierungen fest | Optional | 45s |
| flowy.processing.process-execution.execute-process-step-child-event-delay | Verarbeitung | Legt die Wartezeit zwischen den Prüfungen von untergeordneten Events fest | Optional | 100ms |
| flowy.processing.trigger-cron.sync-delay | Verarbeitung | Legt die Wartezeit zwischen den Cron-Synchronisierungen fest | Optional | 25s |
| flowy.processing.groovy-script.clean-up-delay | Verarbeitung | Legt das Intervall zwischen den Bereinigungen von Storage-Werten fest | Optional | 1h |
| flowy.processing.groovy-script.inactive-ttl | Verarbeitung | Intervall, wie lange das Groovy-Skript bei Nichtverwendung im Cache verbleibt | Optional | 30d |
| flowy.processing.trigger-rest.wait-event-time | Verarbeitung | Legt die Wartezeit zwischen den Prüfungen des Event-Status fest | Optional | 100ms |
| flowy.processing.trigger-rest.sync-delay | Verarbeitung | Legt die Wartezeit zwischen den Synchronisierungen der REST-Trigger fest | Optional | 25s |
| flowy.processing.trigger-messaging.sync-delay | Verarbeitung | Legt die Wartezeit zwischen den Synchronisierungen der Messaging-Trigger fest | Optional | 25s |
| flowy.processing.storage.clean-up-delay | Verarbeitung | Legt das Intervall zwischen den Bereinigungen von Storage-Werten fest | Optional | 5m |
| flowy.processing.library.sync-delay | Verarbeitung | Zeitabstand zwischen den Prüfungen auf Bibliotheks-Updates | Optional | 30s |
| flowy.processing.library.dir | Verarbeitung | Legt das Verzeichnis fest, in dem Bibliotheken zwischengespeichert werden | Optional | .flowy/processing/libraries |
| flowy.processing.rest-templates.clean-up-delay | Verarbeitung | Intervall zwischen den Bereinigungen des REST-Template-Caches | Optional | 1h |
| flowy.processing.rest-templates.inactive-ttl | Verarbeitung | Intervall, wie lange das REST-Template bei Nichtverwendung im Cache verbleibt | Optional | 1d |
| flowy.processing.process-execution.fix-execution-state-delay | Verarbeitung | Intervall zur Prüfung auf Jobs, die nicht rechtzeitig abgeschlossen wurden | Optional | 1m |
| server.servlet.context-path | Verarbeitung | URL-Erweiterung für den Dienst | Optional | "" (= 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>

