Analisis jejak (trace analysis) memperoleh nilainya dari keterhubungan. Sebuah jejak membentuk graf topologi yang menghubungkan klien pengguna, gerbang (gateway), aplikasi backend, dan komponen dependen seperti database, antrian pesan, serta model bahasa besar. Semakin luas cakupannya, semakin berharga pelacakan tersebut. Pelacakan ujung-ke-ujung mencakup seluruh sistem TI terkait untuk mencatat jalur panggilan lengkap dan status permintaan pengguna di seluruh sistem tersebut.
Solusi pelacakan ujung-ke-ujung Alibaba Cloud
Alibaba Cloud ARMS, termasuk Managed Service for OpenTelemetry, mendukung pelacakan ujung-ke-ujung melalui klien pengguna (seperti Web, Android, dan iOS), gerbang cloud (seperti ALB, MSE, Ingress, dan ASM), aplikasi backend (seperti Java, Go, Python, dan .NET), serta komponen cloud (seperti database, antrian pesan, dan model bahasa besar), sebagaimana ditunjukkan pada gambar berikut.

Instrumen jejak: Agen ARMS untuk bahasa utama dan open source untuk cakupan multi-bahasa
Untuk bahasa utama seperti Java, Go, dan Python, Anda dapat menggunakan agen ARMS eksklusif yang memberikan kualitas jejak lebih tinggi, kinerja lebih baik, stabilitas lebih kuat, dan kegunaan yang lebih baik. Untuk mendukung lebih banyak bahasa, Managed Service for OpenTelemetry sepenuhnya kompatibel dengan empat kerangka kerja pelacakan utama: OpenTelemetry, SkyWalking, Zipkin, dan Jaeger. Layanan ini juga mendukung instrumen jejak dan pelaporan data untuk lebih dari 10 bahasa, sebagaimana ditunjukkan pada tabel berikut.
Data sepenuhnya interoperabel antara ARMS dan Managed Service for OpenTelemetry. Anda dapat menggunakannya bersama dalam skenario multi-bahasa.
|
Bahasa pemrograman |
Pemantauan Aplikasi ARMS (Agen eksklusif, SLA terjamin) |
Managed Service for OpenTelemetry (Klien open source, dikelola sendiri) |
Jenis koneksi yang direkomendasikan |
|
Java |
Instrumentasi Otomatis |
Instrumentasi Otomatis |
ARMS |
|
Go |
Instrumentasi Otomatis |
Instrumentasi Otomatis |
ARMS |
|
Python |
Instrumentasi Otomatis |
Instrumentasi Otomatis |
ARMS |
|
Node.js |
Tidak didukung |
Instrumen otomatis |
OpenTelemetry |
|
.NET |
Tidak didukung |
Instrumen otomatis |
OpenTelemetry |
|
PHP |
Tidak didukung |
Instrumen otomatis |
OpenTelemetry |
|
Erlang |
Tidak didukung |
Instrumen otomatis |
OpenTelemetry |
|
C++ |
Tidak didukung |
Instrumentasi Manual |
OpenTelemetry |
|
Swift |
Tidak didukung |
Instrumentasi Manual |
OpenTelemetry |
|
Ruby |
Tidak didukung |
Instrumentasi Manual |
OpenTelemetry |
|
Rust |
Tidak didukung |
Instrumentasi Manual |
SkyWalking |
ARMS merilis JavaAgent 4.0 pada tahun 2024, yang sepenuhnya mengadopsi ekosistem OpenTelemetry. Inti agen ini dibangun di atas kerangka kerja OpenTelemetry dan menyediakan data tambahan untuk pemantauan resource, diagnostik kinerja, serta keamanan aplikasi. Selain data yang lebih kaya, ARMS JavaAgent 4.0 mendukung fitur lanjutan seperti kebijakan sampling jejak yang fleksibel, manajemen agen berbasis GUI, pemantauan mandiri yang komprehensif, dan degradasi fitur dinamis, sehingga sangat ideal untuk lingkungan produksi perusahaan.
Pengumpulan dan pemrosesan jejak: Integrasi mendalam dengan ekosistem Alibaba Cloud untuk akses jejak satu klik
Salah satu tantangan umum selama migrasi ke cloud adalah menjaga ketersediaan layanan di tengah ketergantungan yang kompleks. Pelacakan ujung-ke-ujung mengatasi hal ini dengan cepat mengidentifikasi node yang menyebabkan permintaan lambat atau gagal, mempercepat pemulihan kesalahan, dan mengurangi dampak bisnis. Lalu, bagaimana cara mengirimkan data jejak dari produk cloud?
Managed Service for OpenTelemetry terintegrasi erat dengan hampir 10 produk Alibaba Cloud, memungkinkan instrumen jejak internal dan pelaporan data. Anda dapat mengaktifkan sakelar pelacakan di Konsol produk cloud yang didukung untuk melihat data jejak yang sesuai, yang sangat menyederhanakan pengumpulan data. Gambar berikut menunjukkan cara mengaktifkan pelacakan untuk ALB Gateway, MSE Gateway, dan Pemantauan Pengguna Nyata ARMS.

Karena perbedaan fitur produk, metode instrumen jejak pun bervariasi. Metode pengumpulan data yang sesuai terbagi menjadi dua kategori utama:
-
Pelaporan jejak langsung atau diteruskan: Misalnya, Pemantauan Pengguna Nyata menggunakan instrumen internal dan melaporkan data secara langsung melalui Exporter. Hal ini memungkinkan instrumen yang lebih detail dan fleksibel.
-
Konversi log ke jejak: Misalnya, ALB Gateway mengonsumsi log akses di backend dan mengubahnya menjadi data jejak. Metode ini bersifat kurang intrusif.
Kedua metode memiliki kelebihan dan kekurangan masing-masing. Pelaporan jejak langsung atau diteruskan umumnya direkomendasikan sebagai pendekatan yang lebih standar. Namun, untuk skenario berkinerja tinggi atau ketika modifikasi sistem warisan sulit dilakukan, konversi log ke jejak merupakan alternatif. Pendekatan ini memerlukan penambahan konteks jejak, seperti TraceId, ke dalam log.
Tabel berikut mencantumkan produk cloud, protokol, dan panduan koneksi yang saat ini mendukung pelacakan.
|
Kategori koneksi |
Klien |
Panduan koneksi |
Protokol yang didukung |
|
Klien pengguna |
Web/H5/Program mini |
Mengaitkan jejak antarmuka depan dan backend untuk pemantauan web |
w3c, b3, jaeger, skywalking |
|
Android/iOS |
Mengaitkan jejak antarmuka depan dan backend untuk pemantauan aplikasi |
w3c, skywalking |
|
|
Gerbang |
MSE |
w3c, b3, skywalking |
|
|
ACK Ingress |
w3c, b3, jaeger |
||
|
ALB |
Terapkan analisis bisnis ujung-ke-ujung menggunakan pelacakan ALB |
b3 |
|
|
ASM |
b3 |
||
|
API Gateway |
b3 |
||
|
Aplikasi backend |
Java/Go/Python (Eksklusif) |
w3c, b3, jaeger, skywalking, eagle eye |
|
.NET, Node.js, dan lainnya Bahasa-bahasa (Sumber Terbuka) |
w3c, b3, jaeger, skywalking |
||
|
Komponen dependen |
Dukungan untuk lebih dari 100 plugin, mencakup berbagai jenis seperti RPC, antrian pesan, database, dan penjadwalan tugas. |
||
Transmisi langsung konteks jejak: Satukan protokol dan gunakan agen ARMS untuk konversi multi-protokol
Untuk satu komponen aplikasi, instrumen yang berhasil berarti Anda dapat mengumpulkan dan melihat data jejaknya di Konsol. Namun, pelacakan ujung-ke-ujung yang sesungguhnya memerlukan penghubungan jejak hulu dan hilir dengan protokol terpadu agar rantai jejak tidak terputus, yang menimbulkan tantangan teknis maupun koordinasi.
Alibaba Cloud Observability menyediakan pelacakan ujung-ke-ujung berbasis protokol OpenTelemetry W3C dan secara bertahap akan memperluas dukungan untuk lebih banyak protokol dan komponen, membangun ekosistem pelacakan yang lebih lengkap dan fleksibel. Gambar berikut menunjukkan rantai panggilan ujung-ke-ujung yang lengkap.

Menyatukan tumpukan protokol ujung-ke-ujung untuk aplikasi yang sudah ada lebih menantang dibandingkan aplikasi baru, terutama saat mengganti tumpukan teknologi—misalnya, migrasi dari SkyWalking ke OpenTelemetry. Anda harus menjaga sistem O&M yang ada tetap berjalan sambil memvalidasi sistem baru, dan tantangan terbesarnya adalah memastikan bahwa dua sistem pelacakan yang berbeda dapat berdampingan tanpa mengganggu kelangsungan jejak.
Untuk mengatasi hal ini, agen ARMS eksklusif mencakup optimasi kompatibilitas yang memungkinkan dua agen berdampingan, memastikan kedua sistem berjalan dengan benar dan stabil hingga migrasi selesai. Gambar berikut menggambarkan skenario ini.

Agen ARMS eksklusif mendukung deteksi dan transmisi langsung multi-protokol. Ketika sistem hulu dan hilir sulit diubah, Anda dapat menggunakan agen ARMS untuk konversi protokol. Misalnya, jika aplikasi hulu A menggunakan protokol Jaeger, agen ARMS menerima konteks Jaeger dan meneruskan konteks Jaeger serta Zipkin B3 ke sistem hilir. Aplikasi hilir B kemudian dapat menggunakan protokol Zipkin B3, sehingga mencapai transmisi langsung TraceId dan menghubungkan seluruh jejak.