Klien telemetri adalah aplikasi yang berinteraksi dengan layanan Telemetri untuk mengonfigurasi pengumpulan data, mengelola konfigurasi metrik, dan menerima laporan telemetri. Klien menggunakan library Rust libsdv_telemetry_rust_wrapper untuk berinteraksi dengan layanan.
Ringkasan platform API
Lihat Referensi API library klien telemetri Rust untuk dokumentasi API.
Library ini menyediakan antarmuka Rust untuk berinteraksi dengan layanan Telemetri yang mendasarinya. Library ini bertanggung jawab atas area berikut:
Pengelolaan siklus proses layanan: Mengelola koneksi ke layanan Telemetri.
- Inisialisasi: Membuat koneksi ke layanan menggunakan panggilan pemblokiran. Setelah terhubung, Anda dapat mendaftarkan callback untuk menerima notifikasi asinkron tentang status sistem dan ketersediaan laporan baru.
- Penonaktifan: Menyediakan cara untuk memutuskan koneksi dari layanan dengan baik dan membersihkan semua resource terkait.
Pengelolaan siklus proses konfigurasi metrik: Menawarkan kontrol atas siklus proses konfigurasi metrik.
- Pengelolaan: Klien dapat menambahkan, menghapus, mengaktifkan, dan menonaktifkan konfigurasi metrik.
- Pemeriksaan: Anda dapat membuat kueri untuk daftar konfigurasi aktif dan tidak aktif.
Penanganan dan pengambilan laporan: Memfasilitasi akses ke data yang dikumpulkan oleh layanan Telemetri.
- Notifikasi: Memberi tahu klien secara asinkron menggunakan callback setiap kali laporan metrik baru siap diambil.
- Akses data: Menyediakan metode untuk mengambil laporan tertentu berdasarkan UUID-nya dan mengambil daftar semua laporan yang tersedia.
Pelaporan status dan error: Memberikan insight tentang kesehatan dan status layanan Telemetri.
- Update status asinkron: Klien menerima update status real-time, termasuk error dan peringatan, melalui callback khusus. Hal ini memungkinkan Anda menerapkan penanganan error yang andal dan memantau status layanan.
Contoh penggunaan
Untuk aplikasi lengkap yang dapat dikompilasi dan menunjukkan siklus proses lengkap, lihat implementasi klien contoh: samples/telemetry/client/rust/telemetry_client/telemetry_rust_c_client.rs.
Klien contoh adalah utilitas command line yang berinteraksi dengan API library lengkap. Contoh ini menunjukkan cara menjembatani antarmuka berbasis callback library dengan runtime Rust asinkron (Tokio) menggunakan channel.
Klien melakukan urutan operasi ini:
- Membuat koneksi ke layanan Telemetri dan mendaftarkan callback untuk update status dan notifikasi laporan metrik.
- Membaca file konfigurasi metrik yang disediakan sebagai argumen command line, lalu menambahkan dan mengaktifkan konfigurasi dalam layanan.
- Menggunakan tugas latar belakang untuk mencatat pesan status asinkron (error atau peringatan) yang diterima dari layanan.
- Mengelola loop pengambilan data dengan melakukan tindakan berikut:
- Menunggu notifikasi bahwa laporan metrik sudah siap.
- Mengambil data laporan metrik lengkap.
- Secara opsional, menulis laporan ke disk sebagai file buffer protokol biner.
- Menghapus konfigurasi metrik dari layanan setelah menghasilkan laporan metrik pertama. Perhatikan bahwa ini adalah implementasi demo, dan klien Anda sendiri dapat menerima laporan dalam jumlah berapa pun.
- Menutup koneksi ke layanan dengan baik.