Nilai inti dari pelacakan terletak pada "koneksi." Terminal pengguna, gateway, aplikasi backend, dan layanan dependen (seperti basis data, sistem pesan, dan model besar) secara kolektif membentuk peta topologi pelacakan. Semakin luas cakupan topologi ini, semakin besar nilai yang dapat diberikan oleh pelacakan. Pelacakan ujung-ke-ujung adalah praktik terbaik yang mencakup semua sistem TI terkait, memberikan catatan lengkap perilaku pengguna di seluruh panggilan sistem dan status.
Alur Kerja
Application Real-Time Monitoring Service (ARMS) dan Managed Service for OpenTelemetry mendukung pelacakan ujung-ke-ujung di antara terminal pengguna (seperti browser, Android, dan iOS), gateway cloud (seperti Application Load Balancer, Microservice Engine, NGINX Ingress Controller, dan Service Mesh), aplikasi backend (seperti Java, Go, Python, dan .NET), serta layanan dependen (seperti basis data, antrian pesan, dan model besar), seperti yang ditunjukkan pada gambar berikut.

Instrumen pelacakan: menyediakan ARMS agent untuk Java, Go, dan Python, meningkatkan cakupan multi-bahasa dengan kompatibilitas open-source
Untuk bahasa utama seperti Java, Go, dan Python, kami merekomendasikan penggunaan ARMS agent yang dikembangkan sendiri untuk meningkatkan kualitas, kinerja, stabilitas, dan kemudahan penggunaan instrumen pelacakan. Managed Service for OpenTelemetry kompatibel dengan empat alat pelacakan utama: OpenTelemetry, SkyWalking, Zipkin, dan Jaeger. Layanan ini juga mendukung implementasi pelacakan dan pelaporan data dalam lebih dari 10 bahasa, seperti yang ditunjukkan dalam tabel berikut.
ARMS sepenuhnya interoperabel dengan Managed Service for OpenTelemetry. Kami merekomendasikan penggunaannya bersama dalam skenario multi-bahasa.
Bahasa | Pemantauan Aplikasi ARMS (agen mandiri dengan SLA terjamin) | Managed Service for OpenTelemetry (klien sumber terbuka dan swa-manajemen) | Opsi yang direkomendasikan |
Java | Instrumentasi otomatis | Instrumentasi otomatis | ARMS |
Go | Instrumentasi otomatis | Instrumentasi otomatis | ARMS |
Python | Instrumentasi otomatis | Instrumentasi otomatis | ARMS |
Node.js | Tidak didukung | Instrumentasi otomatis | OpenTelemetry |
.NET | Tidak didukung | Instrumentasi otomatis | OpenTelemetry |
PHP | Tidak didukung | Instrumentasi otomatis | OpenTelemetry |
Erlang | Tidak didukung | Instrumentasi 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 agent untuk Java v4.0, dirilis pada tahun 2024, sepenuhnya merangkul ekosistem OpenTelemetry. Fondasi agen telah ditingkatkan sepenuhnya berdasarkan kerangka OpenTelemetry dan menyediakan pemantauan tambahan untuk berbagai sumber daya, diagnostik kinerja, serta data keamanan aplikasi. Selain data yang lebih kaya, ARMS agent untuk Java v4.0 mendukung fitur-fitur canggih, seperti kebijakan sampling jejak yang lebih fleksibel, manajemen agen yang ramah pengguna, pemantauan diri yang komprehensif, dan degradasi fitur dinamis, menjadikannya lebih cocok untuk lingkungan produksi tingkat perusahaan.
Pengumpulan dan pemrosesan jejak: terintegrasi mendalam dengan Alibaba Cloud, memungkinkan konfigurasi jejak yang mudah untuk layanan cloud
Tantangan besar bagi perusahaan yang beralih ke cloud adalah ketergantungan berat mereka pada ketersediaan layanan cloud. Pelacakan ujung-ke-ujung dapat dengan cepat menemukan node permintaan lambat atau gagal, meningkatkan pemulihan kesalahan, dan mengurangi kerugian bisnis.
Managed Service for OpenTelemetry bekerja sama dengan hampir 10 layanan Alibaba Cloud, menerapkan pelacakan internal dan pelaporan data. Pengguna perusahaan cukup mengaktifkan opsi pelacakan di konsol layanan cloud untuk melihat jejak, sangat mengurangi biaya pengumpulan. Integrasi pelacakan untuk Application Load Balancer (ALB), Microservice Engine (MSE), dan ARMS User Experience Monitoring (RUM) diilustrasikan di bawah ini.

Karena karakteristik layanan, layanan cloud yang berbeda menggunakan skema instrumen pelacakan yang berbeda. Pengumpulan data jejak umumnya dibagi menjadi dua jenis:
Pelaporan jejak langsung atau diteruskan: Seperti yang terlihat di RUM, instrumen pelacakan internal melaporkan langsung melalui Exporter, memberikan instrumen yang lebih rinci dan fleksibel.
Konversi data log menjadi jejak: Di ALB, sistem backend mengonversi log akses menjadi data jejak, menawarkan instrumen yang kurang invasif.
Kedua skema tersebut memiliki kelebihan dan kekurangannya masing-masing. Pelaporan jejak langsung atau diteruskan biasanya direkomendasikan karena lebih standar. Namun, jika persyaratan kinerja tinggi atau sulit untuk mengaktifkan pelacakan pada sistem, Anda dapat mengonversi log menjadi jejak asalkan konteks jejak seperti TraceId telah ditambahkan ke log.
Tabel berikut mencantumkan layanan cloud yang didukung dan protokol pelacakan, serta menyediakan referensi terkait.
Kategori | Sumber | Referensi | Protokol pelacakan |
Terminal pengguna | Aplikasi web, aplikasi HTML5, dan mini program | Aktifkan pelacakan ujung-ke-ujung untuk aplikasi web atau mini program | W3C, B3, Jaeger, dan SkyWalking |
Aplikasi Android dan iOS | W3C dan SkyWalking | ||
Gateway | MSE | W3C, B3, dan SkyWalking | |
NGINX Ingress Controller | W3C, B3, dan Jaeger | ||
ALB | B3 | ||
Service Mesh | B3 | ||
API Gateway | B3 | ||
Aplikasi backend | Aplikasi Java, Go, dan Python yang dipantau oleh ARMS agent | W3C, B3, Jaeger, SkyWalking, dan EagleEye | |
Aplikasi dalam bahasa lain seperti .NET dan Node.js
| W3C, B3, Jaeger, dan SkyWalking | ||
Layanan dependen | Lebih dari 100 didukung sebagai komponen untuk pemantauan, mencakup berbagai jenis termasuk panggilan prosedur jarak jauh (RPC), antrian pesan, basis data, dan penjadwalan tugas. | ||
Propagasi konteks jejak: menstandarkan protokol pelacakan ujung-ke-ujung Alibaba Cloud, mendukung konversi protokol ganda dengan ARMS agent
Menyelesaikan instrumen dan pengumpulan data dari satu aplikasi dianggap berhasil ketika data jejak yang sesuai muncul di konsol. Namun, pelacakan ujung-ke-ujung memerlukan penghubungan jejak hulu dan hilir dengan protokol terpadu untuk memastikan kontinuitas, menimbulkan tantangan teknis dan koordinasi.
Managed Service for OpenTelemetry telah mencapai konektivitas jejak ujung-ke-ujung berdasarkan protokol W3C OpenTelemetry dan akan secara bertahap mencakup lebih banyak protokol dan layanan untuk ekosistem pelacakan yang komprehensif dan fleksibel, seperti yang ditunjukkan pada diagram berikut.

Dibandingkan dengan aplikasi baru, aplikasi yang sudah ada menghadapi tantangan yang lebih besar dalam menyatukan protokol ujung-ke-ujung, terutama selama transisi tumpukan teknologi (misalnya, migrasi dari SkyWalking ke OpenTelemetry). Memastikan operasi berkelanjutan dari sistem pemantauan yang ada sambil memvalidasi yang baru dan memungkinkan koeksistensi dua sistem pelacakan yang berbeda merupakan hambatan utama untuk meningkatkan atau menghubungkan aplikasi yang ada.
Untuk mengatasi hal ini, ARMS agent yang dikembangkan sendiri telah menjalani optimasi kompatibilitas yang luas, mencapai koeksistensi dual-agent untuk memastikan kedua sistem beroperasi dengan benar dan stabil hingga migrasi selesai, seperti yang diilustrasikan di bawah ini.

ARMS agent mendukung pengenalan dan transmisi multi-protokol. Dalam skenario di mana sistem hulu dan hilir tidak dapat dengan mudah berubah, agen dapat bertindak sebagai mediator protokol. Misalnya, aplikasi hulu A menggunakan protokol Jaeger, ARMS agent menerima data Jaeger dan meneruskannya sambil mengonversinya ke format Jaeger dan Zipkin B3, dan aplikasi hilir B menggunakan protokol Zipkin B3. Ini memastikan transmisi data jejak yang mulus antara sistem yang menggunakan protokol berbeda, serta kontinuitas dan konektivitas jejak.