La fonctionnalité Transformers est désormais généralement disponible au sein du service Logpush de Cloudflare. Elle permet aux équipes de traiter leurs journaux avant de les exporter vers leur destination finale. Les utilisateurs peuvent écrire des requêtes SQL pour filtrer les journaux, masquer certaines parties des données sensibles, ainsi qu’ajouter, renommer, supprimer ou organiser des champs au sein d’une structure imbriquée.
La fonctionnalité cible les équipes de supervision et de sécurité qui exportent les journaux Cloudflare vers des systèmes de gestion des informations et des événements de sécurité (SIEM), des plateformes d’analyse et des stockages d’objets. Au lieu d’exécuter un service distinct pour traiter les journaux après leur arrivée, Logpush effectue la transformation directement dans le flux d’exportation.
Qu’est-ce qui change concrètement ?
L’utilisateur définit un Transformer personnalisé pour un jeu de données donné dans Logpush. Une clause WHERE est appliquée afin de supprimer les journaux indésirables, tandis que la clause SELECT détermine les champs qui apparaîtront dans le journal exporté. Les résultats sont enregistrés au format NDJSON, comme les journaux d’origine : la fonctionnalité n’est pas un outil destiné à transformer le format de sérialisation lui-même.
Il est par exemple possible d’exclure les requêtes provenant de contrôles d’intégrité et du trafic interne, de masquer la dernière partie d’une adresse IP, d’uniformiser les noms de champs entre plusieurs fournisseurs de CDN et d’ajouter des champs statiques tels que le nom du fournisseur ou un indicateur signalant les erreurs du serveur. Le filtrage avant l’exportation contribue à réduire le volume de données dont les équipes paient l’exportation, la réception et le stockage avant de les supprimer ultérieurement.
Exécution dans le flux d’exportation
Cloudflare a choisi d’exécuter les requêtes au sein du service de diffusion Bufstream plutôt que de s’appuyer sur un service réseau externe. Selon l’entreprise, l’exécution de WebAssembly via Cloudflare Workers aurait ajouté une connexion réseau au flux Logpush, ce qui aurait pu entraîner des délais d’attente et des nouvelles tentatives affectant le délai de livraison et le débit.
Transformers utilise le moteur Apache DataFusion écrit en Rust, ainsi qu’Apache Arrow pour représenter les données sous forme de colonnes typées en mémoire. Lors d’un test réalisé par Cloudflare sur un lot synthétique de 5 000 journaux http_requests, l’exécution d’un Transformer prédéfini a pris environ 3 millisecondes sur un seul thread Go, soit environ 1,6 million de journaux par seconde.
Bufstream reçoit les lots Logpush compressés, convertit les journaux admissibles en Arrow RecordBatch, puis les transmet à DataFusion via Arrow IPC et l’interface de liaison entre Go et Rust. Après l’exécution de la requête, le service reconvertit les résultats en NDJSON, puis les regroupe, les compresse et les téléverse vers la destination définie.
Contrôles des échecs et gestion
Transformers fonctionne selon un principe de défaillance sécurisée : si la transformation ne peut pas être exécutée, Bufstream n’envoie pas le lot dans son format brut et ne fournit pas le point de livraison. À la place, le service réessaie progressivement, signale l’erreur et peut désactiver les tâches qui restent longtemps en état d’échec afin qu’elles ne consomment pas les ressources des tâches saines.
Les transformations peuvent être créées, prévisualisées et gérées depuis Transformer Studio dans le tableau de bord Cloudflare ou via une API. Chaque mise à jour crée également une nouvelle version, tandis que l’écran Transformer Health fournit des indicateurs sur les transformations réussies et échouées, le volume de données avant et après traitement, ainsi que la durée d’exécution.
Pourquoi cette actualité est-elle importante ?
La valeur essentielle ne réside pas seulement dans l’ajout de SQL à un service de journaux, mais dans le déplacement des décisions concernant la réduction, l’uniformisation et le masquage des données vers un point situé en amont de l’exportation. Cela pourrait réduire la dépendance des équipes à l’égard de couches de traitement personnalisées, sans toutefois supprimer la nécessité de tester les requêtes et de vérifier les schémas de données, notamment parce que l’échec d’un Transformer empêche l’envoi du lot au lieu de transmettre une version non traitée.
Transformers est disponible avec les offres Free, Pro, Business et Enterprise. Les détails de configuration et de tarification restent soumis à la documentation actuelle de Cloudflare.