# ============================================================================= # SOURCES: Woher kommen die Daten? # ============================================================================= sources: docker_logs: type: docker_logs # ============================================================================= # TRANSFORMS: Verarbeitung der Daten # ============================================================================= transforms: # Wir lassen den filter_debug-Block zwar stehen, # aber wir nehmen ihn aus der Kette raus. filter_debug: type: filter inputs: [docker_logs] condition: 'includes(["INFO", "WARN", "ERROR"], .level)' parse_logs: type: remap # ÄNDERUNG HIER: Wir nehmen die Daten DIREKT von der Source, # nicht mehr vom Filter! inputs: [docker_logs] source: | .message, err = replace(.message, "\n", "") .service = "my-cluster" # ============================================================================= # SINKS: Wohin sollen die Daten? # ============================================================================= sinks: stdout_debug: type: console inputs: [parse_logs] encoding: codec: json loki_sink: type: loki inputs: ["parse_logs"] endpoint: "http://localhost:3100" encoding: codec: json labels: host: "{{ host }}"