# ============================================================================= # SOURCES: Woher kommen die Daten? # ============================================================================= sources: docker_logs: type: docker_logs # ============================================================================= # TRANSFORMS: Verarbeitung der Daten # ============================================================================= transforms: parse_logs: type: remap inputs: [docker_logs] source: | # FIX: Prüfung, ob .message existiert und ein String ist (verhindert Error E103) if is_string(.message) { .message = replace(.message, "\n", " ") } # Das Feld 'service' setzen. .service = "my-cluster" # Optional: Zusätzliche Metadaten bereinigen # .container_name = .container_name || "unknown" # ============================================================================= # SINKS: Wohin sollen die Daten? # ============================================================================= sinks: # Debug-Ausgabe in der Konsole stdout_debug: type: console inputs: [parse_logs] encoding: codec: json loki_sink: type: loki inputs: [parse_logs] endpoint: "http://docker1.lan:3100" encoding: codec: json labels: host: "{{ host }}" service: "{{ service }}" container_name: "{{ container_name }}"