Seiring meningkatnya penggunaan aplikasi berbasis sistem terdistribusi, sistem tracing sebagai
alat bantu debugging pada sistem terdistribusi menjadi sangat dibutuhkan. Secara khusus pada
lingkungan Kubernetes, tracing pada sistem berarsitektur microservice sulit untuk dilakukan
karena heterogenitas arsitektur microservice. Hal ini menimbulkan kebutuhan atas sistem
distributed tracing yang transparan terhadap aplikasi yang berjalan dengan protokol gRPC
sehingga tracing dapat dilakukan dengan mudah pada aplikasi yang berjalan pada lingkungan
yang heterogen. Pendekatan yang digunakan untuk mencapai transparansi adalah passive
tracing. Pendekatan ini menuntut sistem untuk melakukan tracing tanpa melakukan modifikasi
terhadap aplikasi dan jalannya aplikasi.
Riset ini mengimplementasikan passive tracing dengan melakukan packet interception setiap
paket yang dikirimkan oleh aplikasi dan mencatat data request gRPC dan menulis data tersebut
pada log. Log yang dihasilkan akan dikumpulkan pada Elasticsearch dan divisualisasikan
menggunakan Kibana. Pengimplementasian riset ini menambah overhead rata-rata penggunaan
CPU sebesar 8,8% dengan Elastic stack dan 3,5% tanpa Elastic stack serta penggunaan memori
sebesar 959 MB dengan Elastic stack dan 378 MB tanpa Elastic stack. Selain itu, trace yang
dihasilkan oleh sistem memiliki akurasi sebesar 61,9% jika dibandingkan dengan metode
tracing dengan propagasi header menggunakan OpenTracing.
Implementasi ini berhasil melakukan trace secara transparan, namun pendekatan berbasis log
membuat sistem tidak dapat melakukan trace secara rekursif. Hal ini mengakibatkan hubungan
sebab akibat antar request tidak dapat diketahui. Sehingga hasil trace hanya dapat
menghasilkan metadata setiap request tanpa mengetahui hubungan satu request dengan request
lainnya. Selanjutnya, tidak adanya informasi request causality mengakibatkan pencocokan
trace hanya dapat dilakukan dengan mencocokkan nama service dan method tanpa konteks
pemanggilannya, sehingga inklusivitas trace Inkle rendah.
Perpustakaan Digital ITB