จากที่ได้แบ่งปันเรื่องเกี่ยวกับ Microservices มานั้น
มีคำถามที่น่าสนใจเกี่ยวกับการ tracing ข้อมูลของ message
ที่ส่งเข้าไปยัง Apache Kafka ว่าส่งไปไหม ผลการทำงานเป็นอย่างไร
รวมทั้งดูแบบ end-to-end ด้วยว่าเกิดอะไรขึ้นบ้าง
เนื่องจาก message นั้น ๆ อาจจะก่อให้เกิดการทำงาน หรือ event อื่น ๆ มากมาย
ตามแนวคิดของ Event-based Architecture
คำตอบหนึ่งที่คิดว่าน่าจะมีประโยชน์คือ การใช้งาน Distributed Tracing
ซึ่งเป็นหนึ่งในเรื่องของ observability นั่นเอง
ยกตัวอย่างของการจัดการปัญหานี้
เครื่องมือที่ใช้งานประกอบไปด้วย
- Spring Boot
- Spring Cloud Sleuth
- Zipkin
- Spring Kafka
Spring Cloud Sleuth นั้นจะสนับสนุน OpenTelemetry แล้ว
อีกอย่างสามารถทำงานร่วมกับ Spring Kafka
และ REST API ต่าง ๆ ที่พัฒนาด้วย Spring Web ได้เลยโดยไม่ต้อง config อะไร
ซึ่งเป็นอีกแนวทางในการ tracing message ได้
ในแต่ละ message จะมี tracing id ไปใน message เสมอ
ทำให้เราสามารถใช้งานได้อย่างสะดวกสบาย