Grafana Beyla เป็นเครื่องมือสำหรับจัดการข้อมูล observability ของ application แบบง่าย ๆ
เช่น application metric และ distributed tracing
ด้วยการสร้าง auto-instrumentation เพื่อดึงข้อมูลจาก eBPF (Extended Berkeley Packet Filter) ได้เลย
ทำให้ในฝั่ง application ไม่ต้องเพิ่ม code ใด ๆ เข้าไป
โดยใน Grafana Beyla นั้นสนับสนุน multi-process
จึงส่งผลให้ดึงข้อมูลของแต่ละ process ที่อยู่บนเครื่องเดียวกันได้

แสดงดังรูป

ดังนั้นเพิ่มความเข้าใจ จึงลองเขียน code และใช้งานกันหน่อย

โดยตัวอย่างของ application ที่สร้างมานั้น ประกอบไปด้วย

  • พัฒนา web application ด้วยภาษา go
  • ทำการ build และ run ตัวอย่างด้วย Docker compose

มาเริ่มกันเลย

ขั้นตอนที่ 1 สร้าง web application ด้วยภาษา go แบบปกติ

ขั้นตอนที่ 2 ทำการ build และ run ด้วย Docker compose

โดยทำการ config เพื่อใช้งาน Grafana Beyla
เพื่อดึงข้อมูล metric และ trace ของระบบงาน
ผ่านด้วยการระบุชื่อ container ไปได้เลยแบบง่าย ๆ ดังนี้

ขั้นตอนที่ 3 ทำการ run และดูผล

รวมทั้งข้อมูลของ trace ที่พ่นออกมาเป็น text ใน log อีกด้วย
เป็นไปตามมาตฐานของ W3C Trace Context
ถ้า request ที่เรียกไม่มีข้อมูลการ trace ก็จะสร้างให้ใหม่นั่นเอง

เพียงเท่านี้ก็ได้ข้อมูล metric และ trace ของ web application มาแบบง่าย ๆ แล้ว
ไม่ต้องมาเขียน code เพิ่มแต่อย่างใด
ลองใช้งานกันดูครับ น่าสนใจดี

เพิ่มเติมรูปการทำงานนิดหน่อย

Reference Websites