# ============================================================================= # SOURCES: Woher kommen die Daten? # ============================================================================= [sources.docker_logs] type = "docker_logs" # ============================================================================= # TRANSFORMS: Was soll mit den Daten passieren? (Optional) # ============================================================================= [transforms.filter_debug] type = "filter" inputs = ["docker_logs"] condition = 'includes(["INFO", "WARN", "ERROR"], .level)' # Hinweis: Das funktioniert nur, wenn die App strukturierte Logs liefert. # Für einfache Texte lassen wir den Transform hier weg oder nutzen VRL. # Beispiel für eine einfache Formatierung mit VRL (Vector Remap Language) [transforms.parse_logs] type = "remap" inputs = ["docker_logs"] source = ''' .message = replace(.message, "\n", "") .service = "my-cluster" ''' # ============================================================================= # SINKS: Wohin sollen die Daten? # ============================================================================= # Sink 1: Ausgabe in die Konsole (Perfekt zum Debuggen) [sinks.stdout_debug] type = "console" inputs = ["parse_logs"] encoding.codec = "json" # Sink 2: Hier könntest du z.B. Loki oder Elasticsearch hinzufügen # [sinks.loki] # type = "loki" # inputs = ["parse_logs"] # endpoint = "http://loki:3100"