Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

ลองใช้งาน Grafana Beyla กันหน่อย

$
0
0

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 แบบปกติ

[gist id="e03aa89268366320f6295a2d2a443cab" file="main.go"]

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

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

[gist id="e03aa89268366320f6295a2d2a443cab" file="docker-compose.yml"]

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

[gist id="e03aa89268366320f6295a2d2a443cab" file="1.txt"]

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

[gist id="e03aa89268366320f6295a2d2a443cab" file="2.txt"]

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

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

Reference Websites


Viewing all articles
Browse latest Browse all 1997

Trending Articles