OpenTelemetry นั้นเป็น project ที่ได้รับความนิยมขึ้นมา
จากเรื่องของ Distributed tracing และยังขยายเป็นเรื่อง metric กับ log ด้วย
โดยที่ตัวมันเองประกอบไปด้วยส่วนการทำงานต่าง ๆ เช่น

  • Instrument
  • Collector
  • Exporter

ในฝั่งของ Grafana ก็มี LGTM stack
แน่นอนว่าต้องสนับสนุน OpenTelemetry อย่างแน่นอน
และเพื่อให้ง่ายต่อการใช้งาน ทาง Grafana จึงได้สร้าง Docker image ออกมา
ในชื่อ grafana/otel-lgtm
ดังนั้นมาลองใช้งานกัน

โดยเป้าหมายของ image ตัวนี้คือ
ใช้งานการ demo, development และ testing environment เท่านั้น

ใน image ตัวนี้ประกอบไปด้วย

  • OpenTelemetry collector สำหรับการรับข้อมูลเข้ามาผ่าน port 4317 คือ gRPC และ 4318 คือ HTTP
  • ทำการ forward ข้อมูลแต่ละชนิดไปยังปลายทางของ exporter ต่าง ๆ
  • Log ส่งไปยัง Loki
  • Metric ส่งไปยัง Prometheus
  • Tracing ส่งไปยัง Tempo
  • ทำการดูข้อมูลต่าง ๆ ผ่าน dashboard ของ Grafana ด้วย port 3000
  • ในการดึงข้อมูลก็ต้องเรียนรู้ PromQL, TraceQL และ LogQL กันด้วย

เป็นการ configuration พื้นฐานที่ไม่ต้องมาทำเองอีกแล้ว
ก็สบายขึ้นเยอะ

มาลองใช้งานกันดู ผ่าน docker compose ดีกว่า

ทำการ start กันหน่อย
Image ขนาด 1.4 GB กันเลย

จากนั้นก็ยิงข้อมูลเข้ามาง่าย ๆ แล้ว
ลองใช้งานกันดูครับ

Reference Websites