สำหรับใครที่จัดเก็บข้อมูล tracing ของระบบงาน
เป็นหนึ่งในข้อมูลที่สำคัญของระบบ observability
น่าจะเคยเห็นและใช้งาน Jaeger กันมาบ้าง
โดยตอนนี้ทางทีมพัฒนาใกล้ปล่อย version 2 ออกมาให้ใช้งานกันแล้ว
มาดูว่ามีอะไรที่น่าสนใจกันบ้าง ๆ ?

เรื่องของ Observability ประกอบไปด้วย 3 + 1 ส่วนหลัก คือ

  • Metric
  • Trace
  • Log
  • เพิ่มอีก หนึ่งตัวคือ profiling นั่นเอง

ในส่วนของ Jaeger สำหรับเก็บข้อมูลของ trace
Jaeger = Tracing data (Storage + User Interface)
ทำการแสดงผลสวย ๆ ดังรูป

โดยที่สนับสนุน OpenTelemery ด้วยการมี jaeger collector
เพื่อรับข้อมูลจาก Otel Collector ในรูปแบบของ OpenTelemtry
โดย jaeger จะรับข้อมูลประเภท trace เท่านั้น
และจัดเก็บไป storage ต่อไป
แสดง flow การทำงานดังรูป

จากรูปจะพบว่าทาง Jaeger collector นั้น
จะต้องทำการแปลงของมูลจาก Otel collector มาเป็นข้อมูลที่ Jaeger สนับสนุน (OTEL-to-Jaeger)
เป็นส่วนงานที่มีปัญหาเพราะว่า ต้องมี component หรือ งานเพิ่มเติม
ดังนั้นใน Jaeger 2 นั้น จะไม่มีตัวแปลงอีกต่อไป
แต่ละเป็น Native OpenTelemetry ไปเลย (สนับสนุน OpenTelemetry Protocol)
ช่วยให้ performance ดีขึ้นอีกด้วย
รวมทั้งยังสนับสนุน Jaeger 1 ด้วยเช่นกัน

และยังมีความสามารถอื่น ๆ เช่น

  • Batch processing
  • ยังคงใช้งาน code/library เดิมได้
  • ใช้งาน feature ต่าง ๆ ของ Otel collector

ลองใช้งานเล่น ๆ กันดู Jaeger 2.0 rc0

Reference websites