Die Transformers-Funktion ist nun allgemein im Logpush-Dienst von Cloudflare verfügbar. Sie ermöglicht es Teams, ihre Protokolle zu verarbeiten, bevor sie an das endgültige Ziel exportiert werden. Nutzer können SQL-Abfragen schreiben, um Protokolle zu filtern, Teile sensibler Daten auszublenden sowie Felder hinzuzufügen, umzubenennen, zu löschen oder innerhalb einer verschachtelten Struktur zu organisieren.
Die Funktion richtet sich an Monitoring- und Sicherheitsteams, die Cloudflare-Protokolle an Sicherheitsinformations- und Ereignismanagementsysteme (SIEM), Analyseplattformen und Objektspeicher exportieren. Statt einen separaten Dienst zur Verarbeitung der Protokolle nach deren Eingang zu betreiben, führt Logpush die Transformation innerhalb des Exportpfads selbst aus.
Was ändert sich in der Praxis?
Der Nutzer definiert einen benutzerdefinierten Transformer für einen bestimmten Datensatz in Logpush. Eine WHERE-Klausel wird angewendet, um nicht benötigte Protokolle zu entfernen, während eine SELECT-Klausel die Felder festlegt, die im exportierten Protokoll erscheinen. Die Ergebnisse werden wie die ursprünglichen Protokolle im NDJSON-Format gespeichert. Die Funktion dient nicht dazu, das Serialisierungsformat selbst umzuwandeln.
So können beispielsweise Anfragen von Zustandsprüfungen und interner Datenübertragung ausgeschlossen, der letzte Teil einer IP-Adresse ausgeblendet, Feldnamen mehrerer CDN-Anbieter vereinheitlicht und konstante Felder wie der Name des Anbieters oder ein Indikator für Serverfehler hinzugefügt werden. Die Filterung vor dem Export trägt dazu bei, das Datenvolumen zu reduzieren, für dessen Export, Empfang und Speicherung Teams bezahlen, bevor sie es später verwerfen.
Ausführung innerhalb des Exportpfads
Cloudflare hat sich dafür entschieden, die Abfragen innerhalb des Zustelldienstes Bufstream auszuführen, statt auf einen externen Netzwerkdienst zurückzugreifen. Nach Angaben des Unternehmens hätte die Ausführung von WebAssembly über Cloudflare Workers eine Netzwerkverbindung in den Logpush-Pfad eingeführt, was zu Zeitüberschreitungen und Wiederholungsversuchen hätte führen können, die sich auf Zustellungszeit und Übertragungsrate auswirken.
Transformers verwenden die in Rust geschriebene Apache-DataFusion-Engine zusammen mit Apache Arrow, um Daten im Arbeitsspeicher in typisierten Spalten darzustellen. In einem von Cloudflare durchgeführten Test mit einem künstlichen Stapel aus 5.000 http_requests-Protokollen dauerte die Ausführung eines vorbereiteten Transformers auf einem einzelnen Go-Thread etwa 3 Millisekunden. Das entspricht ungefähr 1,6 Millionen Protokollen pro Sekunde.
Bufstream empfängt komprimierte Logpush-Stapel, wandelt die qualifizierten Protokolle in einen Arrow RecordBatch um und übergibt sie über Arrow IPC und die Schnittstelle zwischen Go und Rust an DataFusion. Nach der Ausführung der Abfrage gibt der Dienst die Ergebnisse als NDJSON zurück, bündelt und komprimiert sie anschließend und lädt sie an das festgelegte Ziel hoch.
Fehlerkontrollen und Verwaltung
Transformers folgen dem Prinzip des sicheren Ausfalls: Kann die Transformation nicht ausgeführt werden, sendet Bufstream den Stapel weder in seiner Rohform noch stellt es die Zustellung bereit. Stattdessen wiederholt der Dienst den Vorgang schrittweise, meldet den Fehler und kann Funktionen deaktivieren, die über einen längeren Zeitraum fehlschlagen, damit sie keine Ressourcen fehlerfreier Funktionen verbrauchen.
Transformationen können über das Transformer Studio im Cloudflare-Dashboard oder über eine API erstellt, in der Vorschau angezeigt und verwaltet werden. Jede Aktualisierung erzeugt außerdem eine neue Version. Der Bildschirm Transformer Health stellt Kennzahlen zu erfolgreichen und fehlgeschlagenen Transformationen, zum Datenvolumen vor und nach der Verarbeitung sowie zur Ausführungsdauer bereit.
Warum ist diese Nachricht wichtig?
Der wesentliche Wert liegt nicht lediglich darin, SQL zu einem Protokolldienst hinzuzufügen, sondern darin, Entscheidungen zur Datenreduzierung, Vereinheitlichung und Ausblendung an einen Punkt vor dem Export zu verlagern. Dies kann die Abhängigkeit der Teams von eigens entwickelten Verarbeitungsschichten verringern. Es macht jedoch weder das Testen der Abfragen noch die Überprüfung der Datenschemata überflüssig, insbesondere weil ein fehlgeschlagener Transformer den Versand des Stapels verhindert, anstatt eine unverarbeitete Version weiterzuleiten.
Transformers sind in den Tarifen Free, Pro, Business und Enterprise verfügbar. Die Einzelheiten zu Konfiguration und Preisen unterliegen weiterhin der aktuellen Cloudflare-Dokumentation.