全部产品
Search
文档中心

Managed Service for OpenTelemetry:Gunakan SkyWalking untuk melaporkan data aplikasi Rust

更新时间:Jul 02, 2025

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 protobuf

    OS berbasis Debian

    sudo apt install protobuf-compiler
  • Untuk mendapatkan Titik akhir SkyWalking, ikuti langkah-langkah berikut:

    1. Masuk ke Managed Service for OpenTelemetry console.

    2. Di bilah navigasi sebelah kiri, klik Cluster Configurations. Di halaman yang muncul, klik tab Access point information.

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

    4. Atur parameter Client menjadi SkyWalking.

      Dapatkan Titik akhir SkyWalking di kolom Related Information tabel di bagian bawah.

      SkyWalking接入点信息

      Catatan

      Jika aplikasi Anda diterapkan di lingkungan produksi Alibaba Cloud, gunakan Titik akhir VPC. Jika tidak, gunakan Titik akhir publik.

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

  1. Tambahkan dependensi SkyWalking ke proyek Rust.

    Catatan

    Dalam 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 vendored
  2. Impor modul SkyWalking ke kode sumber.

    # Impor modul SkyWalking ke kode sumber yang akan diinstrumen.
    use skywalking::{reporter::grpc::GrpcReporter, trace::tracer::Tracer};

  3. 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...
    }
  4. 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());
  5. Mulai ulang aplikasi.

FAQ

Deskripsi masalah: Pesan kesalahan ditampilkan saat Anda membangun proyek Rush, seperti yang ditunjukkan pada gambar berikut.image.png

Penyebab: Ini mungkin disebabkan oleh kurangnya Protobuf. Untuk informasi lebih lanjut tentang cara memasang Protobuf, lihat Prasyarat.

Referensi

Situs Resmi Apache SkyWalking