LinkedIn ได้สร้างแพลตฟอร์ม telemetry บน OpenTelemetry เพื่อเชื่อมโยงการกระทำของสมาชิกในแอปพลิเคชัน iOS, Android และเว็บ เข้ากับบริการหลังบ้านที่ประมวลผลการโต้ตอบเหล่านั้น ซึ่งช่วยให้เห็นว่าสมาชิกแตะปุ่มหรือพบข้อผิดพลาดได้อย่างไร และบริการหลังบ้านตอบสนองอย่างไร
แม้ว่าการเดินทางของผู้ใช้หนึ่งครั้งอาจประกอบด้วยหลายคำขอ แต่ LinkedIn ได้สร้าง wrapper และส่วนขยายของ OpenTelemetry SDK มาตรฐาน เพื่อให้ทีมผลิตภัณฑ์สามารถใช้การวัดค่าที่สอดคล้องกัน ในขณะที่แพลตฟอร์มจัดการเรื่องวงจรของมือถือ การส่งออก และ metadata เฉพาะของ LinkedIn
ข้อมูล telemetry ถูกส่งผ่าน Apache Kafka และจัดเก็บใน ClickHouse โดยใช้ pageForestId, traceId และ timestamp เป็นกุญแจสำคัญในการเชื่อมโยง อีกทั้งยังมีการใช้ตัวระบุสมาชิกแบบนามแฝงเพื่อรักษาความสอดคล้องตลอดการเดินทางของผู้ใช้
แพลตฟอร์มนี้ยังมีการควบคุมข้อมูลที่เข้าสู่ trace เช่น allowlists และ denylists เพื่อให้มั่นใจว่าวิศวกรสามารถเชื่อมโยงประสบการณ์ของผู้ใช้ (เช่น หน้าโหลดช้า) เข้ากับสาเหตุทางเทคนิคในระบบแบบกระจายได้อย่างตรงจุด
ศัพท์ที่ควรรู้
- OpenTelemetry – เป็นมาตรฐานที่ LinkedIn ใช้ในการเก็บรวบรวมข้อมูลการทำงานของระบบเพื่อติดตามการทำงานของแอปพลิเคชัน
- Distributed Tracing – คือเทคนิคการติดตามเส้นทางการร้องขอที่เดินทางผ่านหลายบริการในระบบหลังบ้าน
- Apache Kafka – เป็นระบบที่ LinkedIn ใช้ในการขนส่งข้อมูล telemetry ที่รวบรวมได้จากแอปพลิเคชันไปยังฐานข้อมูล
- ClickHouse – คือฐานข้อมูลที่ LinkedIn ใช้ในการจัดเก็บข้อมูล telemetry ที่เข้ามาอย่างมีโครงสร้าง
ที่มา: infoq.com