??? Jaeger v2 akan datang! Baca posting blog dan cobalah.
grafik TD
SDK["OpenTelemetry SDK"] --> |HTTP atau gRPC| PENGUMPUL
KOLEKTOR["Kolektor Jaeger"] --> TOKO[Penyimpanan]
KOLEKTOR --> |gRPC| PLUGIN[Plugin Penyimpanan]
KOLEKTOR --> |gRPC/sampling| SDK
PLUGIN --> TOKO
QUERY[Layanan Kueri Jaeger] --> TOKO
PERTANYAAN --> |gRPC| PLUGIN
UI[Jaeger UI] --> |HTTP| PERTANYAAN
subgraf Host Aplikasi
subgraf Aplikasi Pengguna
SDK
akhir
akhir
Jaeger, terinspirasi oleh Dapper dan OpenZipkin, adalah platform penelusuran terdistribusi yang dibuat oleh Uber Technologies dan didonasikan ke Cloud Native Computing Foundation. Ini dapat digunakan untuk memantau sistem terdistribusi berbasis layanan mikro:
Lihat juga:
Jaeger dihosting oleh Cloud Native Computing Foundation (CNCF) sebagai proyek tingkat atas ke-7 (lulus pada Oktober 2019). Jika Anda adalah perusahaan yang ingin membantu membentuk evolusi teknologi yang dikemas dalam container, terjadwal secara dinamis, dan berorientasi pada layanan mikro, pertimbangkan untuk bergabung dengan CNCF. Untuk detail tentang siapa saja yang terlibat dan bagaimana Jaeger berperan, baca pengumuman inkubasi Jaeger CNCF dan pengumuman kelulusan Jaeger.
Jaeger adalah proyek sumber terbuka dengan tata kelola terbuka. Kami menyambut baik kontribusi dari komunitas, dan kami akan sangat senang dengan bantuan Anda untuk meningkatkan dan memperluas proyek ini. Berikut beberapa ide tentang cara terlibat. Banyak dari mereka bahkan tidak memerlukan pengkodean apa pun.
Backend Jaeger dirancang agar tidak memiliki satu titik kegagalan pun dan dapat disesuaikan dengan kebutuhan bisnis. Misalnya, setiap instalasi Jaeger di Uber biasanya memproses beberapa miliar rentang per hari.
Proyek Jaeger dan OpenTelemetry memiliki tujuan yang berbeda. OpenTelemetry bertujuan untuk menyediakan API dan SDK dalam berbagai bahasa untuk memungkinkan aplikasi mengekspor berbagai data telemetri dari proses, ke sejumlah metrik dan penelusuran backend. Proyek Jaeger pada dasarnya adalah backend penelusuran yang menerima data telemetri penelusuran dan menyediakan pemrosesan, agregasi, penambangan data, dan visualisasi data tersebut. Untuk informasi lebih lanjut silakan merujuk ke postingan blog Jaeger dan OpenTelemetry.
Jaeger awalnya dirancang untuk mendukung standar OpenTracing. Terminologi ini masih digunakan di Jaeger UI, namun konsepnya memiliki pemetaan langsung ke model data jejak OpenTelemetry.
Kemampuan | Konsep OpenTracing | Konsep OpenTelemetri |
---|---|---|
Mewakili jejak sebagai grafik asiklik berarah (bukan hanya pohon) | referensi rentang | tautan rentang |
Atribut span yang diketik dengan kuat | tag rentang | atribut rentang |
Peristiwa/log yang diketik dengan kuat | log rentang | rentang acara |
Proyek Jaeger merekomendasikan OpenTelemetry SDK untuk instrumentasi, bukan Jaeger SDK yang sekarang sudah tidak digunakan lagi.
Jaeger dapat digunakan dengan semakin banyak backend penyimpanan:
Jaeger Web UI diimplementasikan dalam Javascript menggunakan kerangka kerja sumber terbuka populer seperti React. Beberapa peningkatan kinerja telah dirilis di v1.0 untuk memungkinkan UI menangani data dalam jumlah besar secara efisien dan menampilkan jejak dengan puluhan ribu rentang (misalnya kami mencoba pelacakan dengan 80.000 rentang).
Backend Jaeger didistribusikan sebagai kumpulan gambar Docker. Biner mendukung berbagai metode konfigurasi, termasuk opsi baris perintah, variabel lingkungan, dan file konfigurasi dalam berbagai format (yaml, toml, dll.).
Cara yang disarankan untuk menerapkan Jaeger di kluster Kubernetes produksi adalah melalui Operator Jaeger.
Operator Jaeger menyediakan CLI untuk menghasilkan manifes Kubernetes dari Jaeger CR. Ini dapat dianggap sebagai sumber alternatif dibandingkan file manifes Kubernetes biasa.
Ekosistem Jaeger juga menyediakan diagram Helm sebagai cara alternatif untuk menerapkan Jaeger.
Semua komponen backend Jaeger mengekspos metrik Prometheus secara default (backend metrik lainnya juga didukung). Log ditulis sesuai standar menggunakan zap perpustakaan logging terstruktur.
Audit keamanan pihak ketiga terhadap Jaeger tersedia di https://github.com/jaegertracing/security-audits. Silakan lihat Edisi #1718 untuk ringkasan mekanisme keamanan yang tersedia di Jaeger.
Meskipun kami merekomendasikan instrumentasi aplikasi dengan OpenTelemetry, jika organisasi Anda telah berinvestasi dalam instrumentasi menggunakan pustaka Zipkin, Anda tidak perlu menulis ulang semua kode tersebut. Jaeger menyediakan kompatibilitas mundur dengan Zipkin dengan menerima span dalam format Zipkin (Thrift atau JSON v1/v2) melalui HTTP. Beralih dari backend Zipkin hanyalah masalah merutekan lalu lintas dari perpustakaan Zipkin ke backend Jaeger.
Terkadang, tanda CLI tidak digunakan lagi karena, misalnya, peningkatan kegunaan atau fungsionalitas baru. Dalam situasi seperti ini, pengembang yang menerapkan penghentian penggunaan harus mengikuti pedoman ini.
Singkatnya, untuk tanda CLI yang tidak digunakan lagi, Anda akan melihat pesan berikut di dokumentasi --help
:
(deprecated, will be removed after yyyy-mm-dd or in release vX.Y.Z, whichever is later)
Masa tenggang minimal 3 bulan atau dua perubahan versi minor (mana saja yang lebih lama) dari rilis pertama yang berisi pemberitahuan penghentian akan diberikan sebelum tanda CLI yang tidak digunakan lagi dapat dihapus.
Misalnya, pertimbangkan skenario ketika v1.28.0 dirilis pada 01-Jun-2021 yang berisi pemberitahuan penghentian flag CLI. Bendera ini tidak akan digunakan lagi hingga akhir 01-Sep-2021 atau v1.30.0 dan bendera ini dapat dihapus pada atau setelah salah satu peristiwa tersebut. Ini mungkin tidak digunakan lagi lebih lama dari masa tenggang yang disebutkan di atas.
Proyek Jaeger mencoba melacak versi Go yang saat ini didukung, seperti yang ditentukan oleh tim Go. Menghapus dukungan untuk versi Go yang tidak didukung tidak dianggap sebagai perubahan yang dapat menyebabkan gangguan.
Dimulai dengan rilis Go 1.21, dukungan untuk versi Go akan diperbarui sebagai berikut:
N
yang baru, pembaruan akan dilakukan pada langkah-langkah pembuatan dan pengujian untuk mengakomodasi versi Go minor terbaru.N
, dukungan untuk Go versi N-2
akan dihapus dan versi N-1
akan menjadi versi minimum yang diperlukan. Proyek Jaeger merekomendasikan OpenTelemetry SDK untuk instrumentasi, bukan SDK asli Jaeger yang sekarang tidak digunakan lagi.
Lihat KONTRIBUSI.
Lihat KONTRIBUSI.
Terima kasih kepada semua orang yang telah berkontribusi!
Aturan untuk menjadi pengelola ditetapkan dalam dokumen TATA KELOLA. Di bawah ini adalah pengelola resmi proyek Jaeger. Silakan gunakan @jaegertracing/jaeger-maintainers
untuk menandai mereka pada isu/Humas.
Beberapa repositori di bawah organisasi jaegertracing memiliki pengelola tambahan.
Kami berterima kasih kepada mantan pengelola kami atas kontribusi mereka pada proyek Jaeger.
Pengelola dan kontributor Jaeger bertemu secara rutin melalui panggilan video. Semua orang dipersilakan untuk bergabung, termasuk pengguna akhir. Untuk detail rapat, lihat https://www.jaegertracing.io/get-in-touch/.
Lihat https://www.jaegertracing.io/docs/roadmap/
Punya pertanyaan, saran, laporan bug? Jangkau komunitas proyek melalui saluran berikut:
#jaeger
(harus bergabung dengan CNCF Slack untuk pertama kalinya)jaeger-tracing
Jaeger sebagai sebuah produk terdiri dari banyak komponen. Kami ingin mendukung berbagai jenis pengguna, apakah mereka hanya menggunakan pustaka instrumentasi kami atau instalasi Jaeger menyeluruh, baik yang dijalankan dalam produksi atau Anda menggunakannya untuk memecahkan masalah dalam pengembangan.
Silakan lihat ADOPTERS.md untuk beberapa organisasi yang menggunakan Jaeger saat ini. Jika Anda ingin menambahkan organisasi Anda ke dalam daftar, silakan beri komentar pada masalah survei kami.
Hak Cipta (c) Penulis Jaeger. Lisensi Apache 2.0.