Pengantar alat pelacakan
- Memperkenalkan berbagai metode pelacakan berdasarkan antusiasme dan pengalaman terhadap tracing
- Termasuk 2 alat pelacakan baru dan menarik
- Inti tracing: mengumpulkan data bertimestamp yang terjadi di sistem dan memvisualisasikannya dalam UI linimasa
Memvisualisasikan data dengan mudah di UI linimasa
- Visualisasi data event dalam format JSON sederhana menggunakan Chromium Event JSON Format
- Memeriksa file tracing melalui viewer Perfetto atau Catapult dari Google
- Menggunakan utilitas Python untuk mengubah file trace menjadi tautan yang dapat diklik dan dibagikan
Format lanjutan: Fuchsia Trace Format dan Perfetto Protobuf
- Fuchsia Trace Format (FTF): format biner sederhana dan ringkas untuk file trace berukuran besar
- Perfetto Protobuf: format ringkas yang mendukung lebih banyak fitur, dapat dibuat melalui pustaka Protobuf
Beragam alat pelacakan
- Memperkenalkan berbagai alat visualisasi trace seperti Speedscope, pprof, dan Rerun
- Menyebut viewer profiler seperti Trace Compass dan Firefox Profiler
Metode pelacakan
- Memperkenalkan metode pelacakan tingkat rendah seperti hardware breakpoint, perf, dan scripting GDB
- Melacak eksekusi program dengan memanfaatkan Intel Processor Trace
- magic-trace: alat pembuat file trace untuk memvisualisasikan pemanggilan fungsi
Profiler tracing berbasis instrumentasi
- Membandingkan profiler tracing berbasis instrumentasi seperti Tracy, Optick, dan Perfetto
- Menekankan pentingnya data event yang menyertakan informasi tambahan
eBPF
- Memperkenalkan subsistem eBPF untuk pelacakan menggunakan kernel Linux
- Memperkenalkan alat pelacakan eBPF seperti BCC, bpftrace, dan ply
Contoh eBPF: pelacakan paket dan event pengguna berbasis Perfetto dari Anthropic
- Menggabungkan BCC dan visualisasi Perfetto untuk menganalisis tail latency pada kode jaringan
- Pelacakan event user-space dengan eBPF dan optimasi pemrosesan event melalui helper C
Instrumentasi biner
- Memperkenalkan metode instrumentasi biner yang digunakan saat akses ke source code tidak memungkinkan
- Menjelaskan alat seperti bpftime, E9Patch, dan Frida
Distributed tracing
- Menyebut solusi seperti OpenTelemetry, Zipkin, dan Odigos untuk pelacakan antar layanan
Sampling profiler
- Memperkenalkan profiler yang secara berkala mengambil sampel seluruh call stack program
- Menggunakan UI dengan sumbu waktu seperti Speedscope dan Samply
Instrumentasi QEMU
- Emulasi penuh dan hooking di QEMU yang digunakan saat semua alat pelacakan lain gagal
- Memperkenalkan alat seperti Cannoli, QEMU TCG Plugins, dan usercorn
Opini GN⁺
Hal terpenting dari tulisan ini adalah bahwa ia menyediakan katalog luas tentang metode pelacakan yang dapat digunakan untuk menyelesaikan berbagai jenis masalah. Tulisan ini memperkenalkan beragam alat dan metode pelacakan pada tingkat yang cukup mudah dipahami bahkan oleh software engineer pemula, sehingga sangat bermanfaat dan menarik bagi siapa pun yang tertarik pada tracing. Secara khusus, contoh yang menggabungkan pelacakan eBPF dan visualisasi Perfetto melalui kasus nyata menunjukkan kemungkinan penerapan di dunia kerja, dan dapat memberikan wawasan baru kepada para pembaca.
1 komentar
Komentar Hacker News
Pendapat pengembang Spall:
Rekomendasi ETW untuk pekerja aplikasi Windows:
Ikhtisar tentang solusi open source:
Cara perekrutan di Anthropic:
Teknik korelasi program Python dan paket:
Pengalaman tim pengembang plugin IDE:
Kebutuhan industri akan profiling biaya eksekusi JavaScript:
Penyebutan dtrace dan omelan bcantrill:
Ucapan terima kasih untuk alat-alat yang berguna: