All Products
Search
Document Center

Application Real-Time Monitoring Service:Instrumen aplikasi Rust dengan SkyWalking

Last Updated:Mar 12, 2026

Gunakan SDK skywalking-rust untuk menginstrumen aplikasi Rust Anda secara manual dan melaporkan data jejak ke Managed Service for OpenTelemetry. Anda perlu menambahkan rentang (spans) secara manual ke kode menggunakan skywalking-rust guna menangkap pelacakan terdistribusi.

Cara kerja

SDK skywalking-rust merupakan agen Rust resmi untuk Apache SkyWalking, layanan Application Performance Monitoring (APM) populer yang dikembangkan di Tiongkok. SkyWalking dirancang untuk aplikasi microservice, cloud-native, dan berbasis kontainer di Docker, Kubernetes, dan Mesos, serta berfungsi sebagai sistem pelacakan terdistribusi. SDK ini terhubung ke Managed Service for OpenTelemetry melalui protokol gRPC dan melaporkan data jejak dari aplikasi Anda.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Rust toolchain (rustc dan Cargo)

  • Protobuf compiler:

    macOS

    brew install protobuf

    Debian/Ubuntu

    sudo apt install protobuf-compiler
  • Titik akhir SkyWalking dan token otentikasi dari Managed Service for OpenTelemetry (lihat Dapatkan titik akhir SkyWalking Anda)

Dapatkan titik akhir SkyWalking Anda

  1. Masuk ke Konsol Managed Service for OpenTelemetry.

  2. Pada panel navigasi sebelah kiri, klik Cluster Configurations. Lalu, klik tab Access point information.

  3. Pada bilah navigasi atas, pilih wilayah. Di bagian Cluster Information, aktifkan Show Token.

  4. Di bagian Client, klik SkyWalking.

  5. Salin titik akhir dari kolom Related Information.

    SkyWalking endpoint information

Catatan

Jika aplikasi Anda berjalan di lingkungan produksi Alibaba Cloud, gunakan titik akhir VPC. Jika tidak, gunakan titik akhir publik.

Instrumen aplikasi Rust

Langkah-langkah berikut menggunakan skywalking-rust versi 0.8.0.

Langkah 1: Tambahkan dependensi SkyWalking

Tambahkan dependensi berikut ke file Cargo.toml Anda:

[dependencies]
skywalking = { version = "0.8.0", features = ["vendored"] }

Atau, jalankan perintah berikut:

cargo add skywalking --features vendored

Langkah 2: Impor modul SkyWalking

Tambahkan impor berikut ke file sumber yang ingin Anda instrumenkan:

use skywalking::{reporter::grpc::GrpcReporter, trace::tracer::Tracer};

Langkah 3: Siapkan reporter gRPC

Hubungkan reporter ke titik akhir SkyWalking Anda dan lakukan otentikasi menggunakan token Anda. Ganti placeholder dengan nilai Anda sendiri.

// Ganti placeholder berikut dengan nilai Anda.
let endpoint = "<your-skywalking-endpoint>";
let token = "<your-authentication-token>";
let service_name = "<your-service-name>";
let instance_name = "<your-instance-name>";

let reporter = GrpcReporter::connect(endpoint).await?;
let reporter = reporter.with_authentication(token);
let tracer = Tracer::new(service_name, instance_name, reporter.clone());

Langkah 4: Buat rentang (spans)

SkyWalking menggunakan tiga jenis rentang untuk pelacakan terdistribusi end-to-end:

Jenis rentangTujuanKapan digunakan
Entry span (EntrySpan)Menangkap permintaan masukDi sisi server, untuk mengekstrak konteks jejak dari permintaan inbound
Local span (LocalSpan)Menangkap operasi dalam prosesUntuk melacak logika dalam satu proses
Exit span (ExitSpan)Menangkap permintaan keluarDi sisi client, untuk menyuntikkan konteks jejak ke permintaan outbound

Kode sisi client (membuat exit span untuk menyebarkan konteks):

let mut ctx = tracer.create_trace_context();
{
    // Buat exit span sebelum melakukan panggilan outbound.
    let span = ctx.create_exit_span("operation1", "remote_peer");
    // ... kirim permintaan ...
}

Kode sisi server (membuat entry span untuk menerima konteks):

let mut ctx = tracer.create_trace_context();
{
    // Buat entry span saat menangani permintaan masuk.
    let span = ctx.create_entry_span("operation1");
    // ... proses permintaan ...
}

Langkah 5: Bangun ulang dan restart aplikasi Anda

Setelah menambahkan instrumen, bangun ulang dan restart aplikasi Anda:

cargo build --release

Data jejak mulai mengalir ke Managed Service for OpenTelemetry setelah aplikasi menangani permintaan.

Kode contoh

Untuk contoh lengkap yang menggunakan framework hyper untuk membangun server HTTP dengan instrumen SkyWalking, lihat repositori skywalking-demo di GitHub.

Pemecahan masalah

Proses build gagal dengan error terkait Protobuf

Protobuf build error

Penyebab: Protobuf compiler belum diinstal atau tidak ada di PATH Anda.

Solusi: Instal Protobuf seperti yang dijelaskan di bagian Prasyarat, lalu coba build kembali.

Referensi