หลังจากที่ใช้งาน OpenTracing มานาน
ซึ่งตอนนี้ OpenTracing ได้รวมเข้ากับ OpenCensus แล้ว
มีชื่อว่า OpenTelemetry
จึงมาลองศึกษาและใช้งานดูกันหน่อย

ปล. พบว่า library มีการเปลี่ยนเยอะมาก ๆ
ก็พอจะนำไปใช้งานได้
แต่ต้องเรียนรู้เพิ่มกันหน่อย

OpenTelemetry คืออะไร

https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/overview.md

คือกลุ่มของ API, SDK, เครื่องมือ
รวมทั้งแนวทางการ integrate เข้ากับระบบงานต่าง ๆ
สำหรับการสร้างและดูแลรูปแบบข้อมูล telemetry ให้เป็นมาตรฐาน
นั่นก็คือรูปแบบข้อมูลของทั้ง trace, metric และ log
จะต่างกับ OpenTracing ที่เน้นเฉพาะเรื่องของ trace เท่านั้น
ซึ่งจะเรียกว่า Data Source

โครงสร้างของการทำงานดังรูป

โดยเป้าหมายหลัก ๆ คือ เรื่องของความยืดหยุ่นในการใช้งาน

เพื่อให้ทำงานได้ระบบที่เป็น opensource และ commercial
รวมทั้งสามารถนำข้อมูลที่ได้ ไปเก็บยังที่จัดเก็บต่าง ๆ ได้อีกด้วย
ซึ่งเป็นงานในส่วนของ Data Collection
ยกตัวอย่างเช่น Jaeger, Zipkin, Prometheus และ Fluent Bit เป็นต้น
แน่นอนว่า อาจจะเป็นระบบอื่น ๆ ก็ได้ ซึ่งไม่ผูกมัดแน่นอน

โครงสร้างของการทำงานดังรูป

มีตัวอย่างของการจัดเก็บข้อมูลให้ด้วย

ยกตัวอย่างเช่น การพัฒนาด้วยภาษา Go

  • Jaeger
  • Prometheus
  • Zipkin

เดี๋ยวมาเขียน code เพื่อสร้างและจัดเก็บข้อมูล Metric ใน service ด้วยภาษา Go กันต่อไป