Sebelum Anda dapat melihat data jejak aplikasi Anda, Anda harus menggunakan klien untuk melaporkan data aplikasi ke Managed Service for OpenTelemetry. Topik ini menjelaskan cara menggunakan agen Rust dari SkyWalking untuk melaporkan data aplikasi Rust.
Prasyarat
Protobuf sudah terpasang.
macOS
brew install protobufOS berbasis Debian
sudo apt install protobuf-compiler
Informasi latar belakang
SkyWalking adalah layanan pemantauan kinerja aplikasi (APM) populer yang dikembangkan di Tiongkok. SkyWalking dirancang untuk aplikasi layanan mikro, aplikasi cloud-native, dan aplikasi yang dikontainerisasi di Docker, Kubernetes, dan Mesos. SkyWalking juga merupakan sistem pelacakan terdistribusi.
skywalking-rust adalah repositori agen Rust resmi dari SkyWalking. Anda dapat menggunakan skywalking-rust untuk memantau aplikasi Rust. Anda harus menggunakan skywalking-rust untuk secara manual menginstrumen aplikasi Rust.
Kode contoh
Untuk informasi lebih lanjut tentang repositori kode contoh, lihat skywalking-demo di GitHub.
Kode contoh mengimplementasikan permintaan HTTP sederhana berdasarkan kerangka kerja hyper untuk Rust, dan menggunakan skywalking-rust untuk secara manual menginstrumen aplikasi agar melaporkan data ke Managed Service for OpenTelemetry.
Gunakan SkyWalking untuk secara manual menginstrumen aplikasi Rust
Tambahkan dependensi SkyWalking ke proyek Rust.
CatatanDalam contoh ini, SkyWalking 0.8.0 digunakan.
Metode 1: Tambahkan dependensi ke file Cargo.toml
# Tambahkan dependensi ke [dependency]. skywalking = { version = "0.8.0", features = ["vendored"] }Metode 2: Jalankan perintah di terminal
cargo add skywalking --features vendoredImpor modul SkyWalking ke kode sumber.
# Impor modul SkyWalking ke kode sumber yang akan diinstrumen. use skywalking::{reporter::grpc::GrpcReporter, trace::tracer::Tracer};Secara manual instrumen aplikasi.
// Gunakan EntrySpan, LocalSpan, dan ExitSpan untuk secara manual menambahkan instrumen. Anda dapat menggunakan ketiga jenis rentang ini untuk mengimplementasikan analisis pelacakan ujung-ke-ujung. // EntrySpan: rentang entri. Server menggunakan rentang entri untuk mendapatkan konteks analisis pelacakan dari permintaan HTTP. // LocalSpan: rentang lokal. Anda dapat menggunakan rentang lokal untuk menginstrumen aplikasi dalam proses yang sama. // ExitSpan: rentang keluar. Klien menggunakan rentang keluar untuk menyuntikkan konteks analisis pelacakan ke permintaan HTTP. // Kode contoh berikut memberikan contoh cara menambahkan instrumen untuk jejak lintas-proses: // client.rs: let mut ctx = tracer.create_trace_context(); { lakukan sesuatu... let span = ctx.create_exit_span("operation1", "remote_peer"); } // server.rs: let mut ctx = tracer.create_trace_context(); { let span = ctx.create_entry_span("operation1"); lakukan sesuatu... }Konfigurasikan titik akhir dan token.
Untuk informasi lebih lanjut tentang cara mendapatkan titik akhir dan token otentikasi, lihat Prasyarat.
// <endpoint> menentukan titik akhir kolektor. <token> menentukan token otentikasi kolektor. <service_name> menentukan nama aplikasi Anda. let endpoint = "<endpoint>"; let token = "<token>"; let service_name = "<service_name>"; let instance_name = "<instance_name>"; let reporter = GrpcReporter::connect(endpoint).await?; let reporter = reporter.with_authentication(token); let tracer = Tracer::new(service_name, instance_name, reporter.clone());Mulai ulang aplikasi.
FAQ
Deskripsi masalah: Pesan kesalahan ditampilkan saat Anda membangun proyek Rush, seperti yang ditunjukkan pada gambar berikut.
Penyebab: Ini mungkin disebabkan oleh kurangnya Protobuf. Untuk informasi lebih lanjut tentang cara memasang Protobuf, lihat Prasyarat.
