חזרה
Cloudflare הוסיפה SQL Transformers לצינור הייצוא של Logpush
SiTech AI Team2 דק׳ קריאה

Cloudflare הוסיפה SQL Transformers לצינור הייצוא של Logpush

Logpush של Cloudflare מסנן לוגים עם SQL Transformers לפני הייצוא, מכסה נתונים רגישים ומשנה שדות. צוותים כותבים שאילתות לאוסף הנתונים ומצמדים גרסה שמורה למשימת Logpush מתאימה בפורמט NDJSON.

מה Transformers עושים

Cloudflare הפכה את Logpush לזמין בכל תוכניות השירות ושחררה גם Transformers כלליים לתהליך העבודה של אותו ייצוא. צוותי ניטור יכולים עכשיו לסנן רשומות, לכסות ערכים רגישים ולשנות שדות לפני שהלוגים עוזבים את Logpush לטובת SIEM, פלטפורמות אנליטיקה או אחסון אובייקטים. סינון לפני האספקה עשוי להקטין את נפח הנתונים והעלויות הבאים, כי צוותים כבר לא צריכים לייצא, לקבל ולאחסן רשומות שאחר כך נזרקות.

Transformer הוא שאילתת SQL שנכתבה עבור אוסף נתונים אחד של Logpush. Logpush מריץ את השאילתה הזו על כל מקטה לפני הייצוא, מוחק רשומות שלא עומדות בתנאי WHERE ומשתמש בתוצאת SELECT כרשומת NDJSON שמיוצאת. צוותים יכולים להוסיף, לשנות שם, למחוק או להטמיע שדות, כולל הוספת שדה סטטי בשם provider, כדי לנרמל רשומות שמגיעות ממספר CDN-ים.

איך הביצוע עובד

משתמשים יוצרים, מציגים בתצוגה מקדימה ומנהלים Transformers בTransformer Studio או באמצעות API, ואז מצמדים גרסה שמורה למשימת Logpush תואמת NDJSON שמשתמשת באותו אוסף נתונים. כל עדכון יוצר גרסה חדשה. Cloudflare שומר את שאילתת SQL ב-R2, ו-Bufstream מוריד אותה בעזרת מטמון רב-שכבתי, מכין פעם אחת תוכנית לוגית של DataFusion לטווח הזמן של המשימה ומשתמש שוב באותה התוכנית בכל מקטה Arrow של הטווח.

Bufstream מקבל מ-Buftee מקטות Cap'n Proto מכווצות, פוענח את הכיווץ, מפרס את הלוגים המתאימים ולפני הביצוע בונה Apache Arrow RecordBatch מסוג. Apache DataFusion ו-Arrow נבחרו כי DataFusion כבר מעבד את Cloudflare Basin. שירות Go מחליף מאגרי Arrow IPC עם מנוע Rust דרך גבול FFI, שמוגדר באמצעות C ABI ונקרא עם cgo. Go מעביר את מצביע מאגר הקלט רק לקריאות cgo; מאגר הפלט שייך ל-Rust, ו-Go מעתיק את התוצאה לזיכרון המנוהל של Go לפני ש-Rust משחרר את ההקצאה.

אספקה, בריאות ופתרון בעיות

Transformers תוכננו לעבוד לפי עקרון fail closed. אם הטרנספורמציה לא מצליחה, Bufstream לא מקדם את היעף של אספקת המשימה ולא שולח מקטה שלא הותמרה, אלא מנסה שוב את הטרנספורמציות הכושלות. הוא מגביל בהדרגה את הניסיונות החוזרים, מתעד שגיאות למשימה ומשבית משימות שנשארות במצב כושל לאורך זמן. תצוגת Transformer Health מציגה טרנספורמציות מוצלחות וכושלות, את נפח הנתונים לפני הטרנספורמציה ואחריה, וכן את משך הטרנספורמציה.

לאחר הביצוע Bufstream ממיר את תוצאת Arrow ל-NDJSON, מקבץ לוגים לאסופות ומכווץ ב-gzip, ואז טוען אותם ליעוד המוגדר ומווסת את goroutine-ים של ההעלאה במסגרת מגבלות הביצוע המקביל של מיקום היעוד. החברה אמרה כי צינור נתונים רחב יותר מטפל ביותר ממיליארד אירועים בשנייה, ו-Bufstream מספק יותר מ-110 מיליון רשומות Logpush בשנייה. Transformers זמינים בתוכניות Free, Pro, Business ו-Enterprise.

מקורות: The Cloudflare Blog

SSiTech

SiTech — פיתוח אתרים בכוח ה-AI

אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.