Google Cloud menyediakan pemantauan, logging, dan diagnostik yang andal untuk aplikasi Rust.
Library klien Rust diinstrumentasikan untuk memancarkan data tracing, metrik, dan logging. Pengukuran ini bersifat keikutsertaan; Anda harus mengaktifkannya secara eksplisit. Dokumen ini menjelaskan sinyal yang tersedia dan cara mengaktifkannya.
Sinyal yang tersedia
Library klien Rust diinstrumentasikan untuk menghasilkan sinyal berikut:
INFOrentang untuk setiap permintaan klien logis. Biasanya, satu panggilan metode dalam struct klien mendapatkan rentang tersebut (misalnya, memanggilaccess_secret_versionpada klienSecretManagerService).- Metrik histogram yang mengukur waktu yang berlalu untuk setiap permintaan klien logis. Metrik utama adalah
gcp.client.request.duration. - Log
WARNuntuk setiap permintaan klien logis yang gagal. INFOuntuk setiap upaya RPC tingkat rendah. Biasanya, satu metode dalam struct klien mendapatkan satu rentang tersebut, tetapi mungkin ada lebih banyak jika library harus mencoba ulang RPC.DEBUGuntuk setiap upaya tingkat rendah yang gagal.
Rentang dan log ini mengikuti Konvensi Semantik OpenTelemetry dengan atributGoogle Cloud tambahan. Rentang dan log harus sesuai untuk pemantauan produksi.
Sinyal mencakup atribut OpenTelemetry standar (misalnya, http.response.status_code dan rpc.system.name) serta atribut kustom khusus Google Cloud, yang dapat mencakup atribut ini dan atribut serupa:
gcp.client.service: Nama layanan (misalnya,pubsubataustorage).gcp.client.repo: Repositori library klien (misalnya,googleapis/google-cloud-rust).gcp.client.version: Versi library klien.gcp.client.artifact: Jalur modul tertentu (misalnya,google-cloud-secretmanager).gcp.resource.destination.id: ID resource yang sedang ditindaklanjuti.gcp.errors.domain: Domain error untuk log error yang dapat ditindaklanjuti.gcp.errors.metadata.<key>: Kunci metadata error tambahan untuk permintaan yang gagal (diratakan).
Untuk daftar lengkap atribut standar, lihat konvensi semantik HTTP dan gRPC OpenTelemetry.
Library juga memiliki rentang DEBUG untuk setiap permintaan. Hal ini mencakup isi permintaan lengkap, isi respons lengkap untuk permintaan yang berhasil, dan pesan error lengkap, dengan detail, untuk permintaan yang gagal.
Pertimbangkan isi permintaan dan respons ini sebelum mengaktifkannya di lingkungan produksi, karena permintaan atau respons dapat mencakup data sensitif.
Rentang DEBUG ini menggunakan crate library klien yang diikuti dengan ::tracing sebagai
targetnya (misalnya, google_cloud_secretmanager_v1::tracing) dan
nama metode sebagai nama rentang (misalnya, access_secret_version). Anda dapat
menggunakan nama, target, atau keduanya untuk menyiapkan filter.
Mengaktifkan telemetri
Untuk melindungi data sensitif, sinyal telemetri dinonaktifkan secara default.
Di Rust, Anda harus mengonfigurasi klien untuk memancarkan rekaman aktivitas, metrik, dan log serta harus mengonfigurasi subscriber dan eksportir untuk mengirim sinyal ini ke layanan eksternal.
Untuk mengonfigurasi klien, Anda dapat menetapkan variabel lingkungan berikut:
export GOOGLE_CLOUD_RUST_LOGGING=true
Atau, Anda dapat mengaktifkan pelacakan secara eksplisit secara terprogram saat membangun
klien dengan menggunakan metode .with_tracing() pada builder klien:
use google_cloud_secretmanager_v1::client::SecretManagerService;
let client = SecretManagerService::builder()
.with_tracing()
.build()
.await?;
Penerapan konteks rekaman aktivitas
Library klien Rust secara otomatis menyebarkan konteks rekaman aktivitas aktif ke
Google Cloud layanan, meskipun pembuatan rekaman aktivitas tidak diaktifkan secara eksplisit menggunakan
.with_tracing().
Gunakan crate tracing-opentelemetry atau opentelemetry untuk menyediakan konteks pelacakan bagi library klien.
Mengekspor telemetri
Setelah telemetri diaktifkan di library klien, aplikasi Anda harus dikonfigurasi untuk mengumpulkan dan mengekspor data ini ke layanan pengamatan Anda. Library klien Rust secara native menggunakan ekosistem tracing.
Pelacakan
Untuk mengekspor rentang tracing yang dihasilkan oleh library klien Google Cloud ke OpenTelemetry, Anda harus mengonfigurasi Subscriber di aplikasi yang menyalurkan data ke pengekspor OpenTelemetry (misalnya, OTLP).
Gunakan crate tracing-opentelemetry dan opentelemetry-otlp untuk mengonfigurasi
pengekspor:
Metrik
Untuk mengekspor metrik, Anda harus menginstal MeterProvider OpenTelemetry global di aplikasi sebelum menginisialisasi klien. Library klien akan
menggunakannya secara otomatis untuk merekam dan mengekspor data metrik.
Untuk mengetahui detail selengkapnya tentang cara mengumpulkan dan mengekspor data OpenTelemetry ke Cloud Monitoring atau Cloud Trace, lihat Memilih pendekatan instrumentasi.
Logging
Library klien Rust menggunakan crate tracing untuk memancarkan log error yang dapat ditindaklanjuti
di level WARN dan DEBUG. Log yang diekspor akan menyertakan ID rekaman aktivitas dan ID rentang untuk memastikan korelasi yang lancar dengan rekaman aktivitas Anda, asalkan Anda menggunakan pemformat yang sesuai.
Untuk merutekan log terstruktur ini ke Cloud Logging, konfigurasi pelanggan pelacakan untuk memformat peristiwa sebagai JSON dan menghasilkan output ke output standar (stdout). Jika Anda men-deploy ke lingkungan seperti Google Kubernetes Engine atau Cloud Run, agen bawaan akan otomatis meng-scrape log ini.
Contoh berikut mengonfigurasi pelanggan untuk merekam dan merutekan hanya log tingkat WARN.
Untuk mengetahui petunjuk mendetail tentang cara mengonfigurasi data korelasi rekaman aktivitas OpenTelemetry (seperti logging.googleapis.com/trace) di pemformat JSON, lihat Ringkasan contoh instrumentasi berbasis pengumpul.