Rust अनुप्रयोगों की निगरानी: `tracing` लाइब्रेरी

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

tracing क्या है?

tracing Rust में संरचित लॉगिंग, प्रोफाइलिंग और एप्लिकेशन मॉनिटरिंग के लिए एक शक्तिशाली फ्रेमवर्क है। सरल लॉगर्स (जैसे log) के विपरीत, tracing आपको संदर्भ के साथ पदानुक्रमित स्पैन (span) और ईवेंट (event) बनाने की अनुमति देता है, जो अनुरोधों, लेन-देन और एसिंक्रोनस ऑपरेशनों को ट्रैक करने के लिए आदर्श है।

Rust में मॉनिटरिंग की आवश्यकता क्यों है?

Rust एप्लिकेशन अक्सर उच्च-लोड सिस्टम में उपयोग किए जाते हैं जहां प्रदर्शन और स्थिरता महत्वपूर्ण होती है। मॉनिटरिंग के बिना, आप यह नहीं कर पाएंगे:

  • धीमे अनुरोधों को ट्रैक करना
  • मेमोरी लीक या पैनिक ढूंढना
  • यह समझना कि माइक्रोसर्विस क्यों क्रैश हुई

tracing एक एकीकृत API में मेट्रिक्स, ट्रेसिंग और लॉगिंग एकत्र करने के लिए उपकरण प्रदान करके इस समस्या का समाधान करता है।

इंस्टॉलेशन

Cargo.toml में जोड़ें:

[dependencies]tracing = "0.1"tracing-subscriber = "0.3"tracing-appender = "0.2"

उन्नत मॉनिटरिंग (OpenTelemetry) के लिए tracing-opentelemetry का उपयोग करें।

मुख्य विशेषताएं

  • स्पैन (spans) — संदर्भ के साथ समय अंतराल (जैसे, HTTP अनुरोध प्रसंस्करण)।
  • ईवेंट (events) — समय में बिंदु (जैसे, त्रुटि या चेतावनी)।
  • संरचित फ़ील्ड — key=value प्रारूप में डेटा संचारित करना।
  • एसिंक्रोनस समर्थन — tokio/async-std के साथ सही काम करना।
  • OpenTelemetry में निर्यात — Jaeger, Prometheus, Grafana के साथ एकीकरण।

Rust में कोड उदाहरण

use tracing::{info, error, span, Level};use tracing_subscriber;

fn main() { // लॉगर इनिशियलाइज़ेशन tracing_subscriber::fmt() .with_env_filter("my_app=info") .init();

// स्पैन बनाना (उदाहरण के लिए, HTTP अनुरोध के लिए) let root = span!(Level::INFO, "request", method = "GET", path = "/api/users"); let _guard = root.enter();

// संदर्भ के साथ लॉगिंग info!(user_id = 42, "अनुरोध प्रसंस्करण"); // फ़ील्ड के साथ त्रुटि error!( error_code = 500, message = "सर्वर आंतरिक त्रुटि", "डेटा प्राप्त करने में त्रुटि" );

// _guard के गिरने पर स्पैन से स्वचालित निकास}

कब उपयोग करें?

  • Rust पर माइक्रोसर्विसेज — सेवाओं के बीच अनुरोध ट्रेसिंग।
  • उच्च-लोड API — बाधाओं की खोज।
  • एसिंक्रोनस एप्लिकेशन — tokio में सही लॉगिंग।
  • रीयल-टाइम सिस्टम — विलंबता मॉनिटरिंग।

tracing Rust इकोसिस्टम में मॉनिटरिंग के लिए डी-फैक्टो मानक है। इसका उपयोग Tokio, Actix-web और Warp जैसी परियोजनाओं में किया जाता है।

अनुशंसाएँ