- เยเกอร์ v2 กำลังมา! อ่านบล็อกโพสต์แล้วลองทำดูครับ
กราฟ TD
SDK["OpenTelemetry SDK"] --> |HTTP หรือ gRPC| นักสะสม
นักสะสม["นักสะสม Jaeger"] --> ร้านค้า [ที่เก็บข้อมูล]
นักสะสม --> |gRPC| ปลั๊กอิน[ปลั๊กอินการจัดเก็บ]
ตัวรวบรวม --> |gRPC/การสุ่มตัวอย่าง| SDK
ปลั๊กอิน -> ร้านค้า
QUERY[บริการสอบถาม Jaeger] --> ร้านค้า
แบบสอบถาม --> |gRPC| ปลั๊กอิน
UI[Jaeger UI] --> |HTTP| แบบสอบถาม
โฮสต์แอปพลิเคชันกราฟย่อย
แอปพลิเคชันผู้ใช้กราฟย่อย
SDK
จบ
จบ
Jaeger ซึ่งได้รับแรงบันดาลใจจาก Dapper และ OpenZipkin เป็นแพลตฟอร์มการติดตามแบบกระจายที่สร้างโดย Uber Technologies และบริจาคให้กับ Cloud Native Computing Foundation สามารถใช้สำหรับการตรวจสอบระบบแบบกระจายที่ใช้ไมโครเซอร์วิส:
ดูเพิ่มเติมที่:
Jaeger เป็นเจ้าภาพโดย Cloud Native Computing Foundation (CNCF) ในฐานะโครงการระดับบนสุดลำดับที่ 7 (สำเร็จการศึกษาในเดือนตุลาคม 2019) หากคุณเป็นบริษัทที่ต้องการช่วยกำหนดทิศทางวิวัฒนาการของเทคโนโลยีที่บรรจุในคอนเทนเนอร์ จัดกำหนดการแบบไดนามิก และเน้นไมโครเซอร์วิส ลองพิจารณาเข้าร่วม CNCF หากต้องการรายละเอียดเกี่ยวกับผู้ที่เกี่ยวข้องและวิธีที่ Jaeger มีบทบาท โปรดอ่านประกาศศูนย์บ่มเพาะ CNCF Jaeger และประกาศสำเร็จการศึกษาของ Jaeger
Jaeger เป็นโครงการโอเพ่นซอร์สที่มีการกำกับดูแลแบบเปิด เรายินดีรับการสนับสนุนจากชุมชน และเรายินดีที่คุณช่วยปรับปรุงและขยายโครงการ ต่อไปนี้เป็นแนวคิดบางประการเกี่ยวกับวิธีการมีส่วนร่วม หลายคนไม่ต้องการการเข้ารหัสใดๆ ด้วยซ้ำ
แบ็กเอนด์ของ Jaeger ได้รับการออกแบบมาให้ไม่มีจุดล้มเหลวเพียงจุดเดียวและปรับขนาดได้ตามความต้องการทางธุรกิจ ตัวอย่างเช่น การติดตั้ง Jaeger ที่ Uber มักจะประมวลผลหลายพันล้านช่วงต่อวัน
โปรเจ็กต์ Jaeger และ OpenTelemetry มีเป้าหมายที่แตกต่างกัน OpenTelemetry มุ่งหวังที่จะให้บริการ API และ SDK ในหลายภาษาเพื่อให้แอปพลิเคชันสามารถส่งออกข้อมูลการวัดและส่งข้อมูลทางไกลต่างๆ ออกจากกระบวนการ ไปยังตัววัดจำนวนเท่าใดก็ได้และการติดตามแบ็กเอนด์ โปรเจ็กต์ Jaeger ส่วนใหญ่เป็นแบ็คเอนด์การติดตามที่รับข้อมูลการตรวจวัดระยะไกลและจัดเตรียมการประมวลผล การรวม การทำเหมืองข้อมูล และการแสดงภาพข้อมูลนั้น สำหรับข้อมูลเพิ่มเติม โปรดดูบล็อกโพสต์ Jaeger และ OpenTelemetry
Jaeger เดิมทีได้รับการออกแบบเพื่อรองรับมาตรฐาน OpenTracing คำศัพท์เฉพาะทางยังคงใช้ใน Jaeger UI แต่แนวคิดมีการแมปโดยตรงกับแบบจำลองข้อมูล OpenTelemetry ของการติดตาม
ความสามารถ | แนวคิด OpenTracing | แนวคิด OpenTelemetry |
---|---|---|
แสดงร่องรอยเป็นกราฟอะไซคลิกโดยตรง (ไม่ใช่แค่ต้นไม้) | การอ้างอิงช่วง | ลิงก์ขยาย |
พิมพ์แอตทริบิวต์ span อย่างแน่นหนา | แท็กช่วง | คุณลักษณะช่วง |
เหตุการณ์/บันทึกที่พิมพ์ชัดเจน | บันทึกช่วง | เหตุการณ์ช่วง |
โปรเจ็กต์ Jaeger แนะนำ OpenTelemetry SDK สำหรับการอินสตรูเมนต์ แทนที่จะเป็น Jaeger SDK ที่เลิกใช้งานแล้ว
Jaeger สามารถใช้ได้กับแบ็กเอนด์พื้นที่จัดเก็บข้อมูลที่เพิ่มขึ้นเรื่อยๆ:
Jaeger Web UI ได้รับการปรับใช้ใน Javascript โดยใช้เฟรมเวิร์กโอเพ่นซอร์สยอดนิยมเช่น React การปรับปรุงประสิทธิภาพหลายประการได้รับการเผยแพร่ในเวอร์ชัน 1.0 เพื่อให้ UI สามารถจัดการกับข้อมูลปริมาณมากได้อย่างมีประสิทธิภาพ และเพื่อแสดงการติดตามที่มีช่วงนับหมื่น (เช่น เราลองใช้การติดตามด้วยช่วง 80,000)
แบ็กเอนด์ของ Jaeger ได้รับการแจกจ่ายเป็นชุดของอิมเมจ Docker ไบนารีสนับสนุนวิธีการกำหนดค่าต่างๆ รวมถึงตัวเลือกบรรทัดคำสั่ง ตัวแปรสภาพแวดล้อม และไฟล์การกำหนดค่าในหลายรูปแบบ (yaml, toml ฯลฯ)
วิธีที่แนะนำในการปรับใช้ Jaeger ในคลัสเตอร์ Kubernetes ที่ใช้งานจริงคือผ่าน Jaeger Operator
ผู้ดำเนินการ Jaeger จัดเตรียม CLI เพื่อสร้างรายการ Kubernetes จาก Jaeger CR ซึ่งถือได้ว่าเป็นแหล่งทางเลือกแทนไฟล์ Manifest ของ Kubernetes ธรรมดา
ระบบนิเวศของ Jaeger ยังมีแผนภูมิ Helm เพื่อเป็นอีกทางเลือกหนึ่งในการปรับใช้ Jaeger
ส่วนประกอบแบ็กเอนด์ของ Jaeger ทั้งหมดเปิดเผยตัววัด Prometheus ตามค่าเริ่มต้น (รองรับแบ็กเอนด์ตัววัดอื่นๆ ด้วย) บันทึกถูกเขียนให้เป็นมาตรฐานโดยใช้ zap ไลบรารีการบันทึกที่มีโครงสร้าง
การตรวจสอบความปลอดภัยของ Jaeger โดยบุคคลที่สามมีอยู่ใน https://github.com/jaegertracing/security-audits โปรดดูฉบับที่ #1718 สำหรับการสรุปกลไกความปลอดภัยที่มีอยู่ใน Jaeger
แม้ว่าเราจะแนะนำให้ติดตั้งแอปพลิเคชันด้วย OpenTelemetry แต่หากองค์กรของคุณลงทุนในเครื่องมือวัดโดยใช้ไลบรารี Zipkin แล้ว คุณไม่จำเป็นต้องเขียนโค้ดนั้นใหม่ทั้งหมด Jaeger ให้ความเข้ากันได้แบบย้อนหลังกับ Zipkin โดยยอมรับการขยายในรูปแบบ Zipkin (Thrift หรือ JSON v1/v2) ผ่าน HTTP การเปลี่ยนจากแบ็กเอนด์ Zipkin เป็นเพียงเรื่องของการกำหนดเส้นทางการรับส่งข้อมูลจากไลบรารี Zipkin ไปยังแบ็กเอนด์ Jaeger
ในบางครั้ง ค่าสถานะ CLI อาจเลิกใช้ได้เนื่องจาก เช่น การปรับปรุงการใช้งานหรือฟังก์ชันการทำงานใหม่ ในสถานการณ์เช่นนี้ นักพัฒนาที่แนะนำให้เลิกใช้งานจะต้องปฏิบัติตามหลักเกณฑ์เหล่านี้
กล่าวโดยย่อ สำหรับการตั้งค่าสถานะ CLI ที่เลิกใช้แล้ว คุณควรคาดหวังที่จะเห็นข้อความต่อไปนี้ในเอกสารประกอบ --help
:
(deprecated, will be removed after yyyy-mm-dd or in release vX.Y.Z, whichever is later)
ระยะเวลาผ่อนผันอย่างน้อย 3 เดือน หรือ สองเวอร์ชันย่อย (แล้วแต่ว่าอย่างใดจะเกิดภายหลัง) จากรุ่นแรกที่มีการแจ้งเตือนการเลิกใช้งานจะถูกจัดเตรียมไว้ก่อนที่ จะสามารถ ลบแฟล็ก CLI ที่เลิกใช้แล้วได้
ตัวอย่างเช่น พิจารณาสถานการณ์ที่เวอร์ชัน 1.28.0 เปิดตัวในวันที่ 1 มิถุนายน 2021 ซึ่งมีประกาศการเลิกใช้งานสำหรับแฟล็ก CLI แฟล็กนี้จะยังคงอยู่ในสถานะเลิกใช้งานจนถึงช่วงหลังของวันที่ 1 ก.ย. 2021 หรือเวอร์ชัน 1.30.0 ซึ่ง สามารถ นำออกได้ในหรือหลังเหตุการณ์ใดเหตุการณ์หนึ่งเหล่านั้น อาจยังคงเลิกใช้งานนานกว่าระยะเวลาผ่อนผันที่กล่าวมาข้างต้น
โครงการ Jaeger พยายามติดตาม Go เวอร์ชันที่รองรับในปัจจุบัน ตามที่กำหนดโดยทีมงาน Go การลบการรองรับสำหรับเวอร์ชัน Go ที่ไม่รองรับไม่ถือเป็นการเปลี่ยนแปลงครั้งใหญ่
ตั้งแต่การเปิดตัว Go 1.21 การสนับสนุนเวอร์ชัน Go จะได้รับการอัปเดตดังนี้:
N
ใหม่ จะมีการอัปเดตขั้นตอนการสร้างและทดสอบเพื่อรองรับ Go minor เวอร์ชันล่าสุดN
ใหม่ การสนับสนุน Go เวอร์ชัน N-2
จะถูกลบออก และเวอร์ชัน N-1
จะกลายเป็นเวอร์ชันขั้นต่ำที่จำเป็น โปรเจ็กต์ Jaeger แนะนำ OpenTelemetry SDK สำหรับการอินสตรูเมนต์ แทนที่จะเป็น SDK ดั้งเดิมของ Jaeger ที่เลิกใช้งานแล้ว
ดูการมีส่วนร่วม
ดูการมีส่วนร่วม
ขอบคุณทุกคนที่มีส่วนร่วมแล้ว!
กฎสำหรับการเป็นผู้ดูแลถูกกำหนดไว้ในเอกสาร GOVERNANCE ด้านล่างนี้คือผู้ดูแลโครงการ Jaeger อย่างเป็นทางการ โปรดใช้ @jaegertracing/jaeger-maintainers
เพื่อแท็กพวกเขาในประเด็น/ประชาสัมพันธ์
ที่เก็บข้อมูลบางแห่งภายใต้ jaegertracing org มีผู้ดูแลเพิ่มเติม
เราขอขอบคุณอดีตผู้ดูแลของเราที่มีส่วนร่วมในโครงการ Jaeger
ผู้ดูแลและผู้มีส่วนร่วมของ Jaeger จะพบกันเป็นประจำผ่านวิดีโอคอล ยินดีต้อนรับทุกคนให้เข้าร่วม รวมถึงผู้ใช้ปลายทางด้วย สำหรับรายละเอียดการประชุม โปรดดู https://www.jaegertracing.io/get-in-touch/
ดู https://www.jaegertracing.io/docs/roadmap/
มีคำถาม ข้อเสนอแนะ รายงานข้อผิดพลาด? เข้าถึงชุมชนโครงการผ่านช่องทางเหล่านี้:
#jaeger
(ต้องเข้า CNCF Slack ครั้งแรก)jaeger-tracing
Jaeger เป็นผลิตภัณฑ์ประกอบด้วยส่วนประกอบหลายส่วน เราต้องการสนับสนุนผู้ใช้ประเภทต่างๆ ไม่ว่าพวกเขาจะใช้เฉพาะไลบรารีเครื่องมือวัดของเราหรือการติดตั้ง Jaeger แบบครบวงจร ไม่ว่าจะใช้งานจริงหรือคุณใช้เพื่อแก้ไขปัญหาในการพัฒนา
โปรดดู ADOPTERS.md สำหรับบางองค์กรที่ใช้ Jaeger ในปัจจุบัน หากคุณต้องการเพิ่มองค์กรของคุณลงในรายการ โปรดแสดงความคิดเห็นเกี่ยวกับปัญหาแบบสำรวจของเรา
ลิขสิทธิ์ (c) ผู้เขียน Jaeger ใบอนุญาต Apache 2.0