دليل Rust مع AllStak
أضف تتبّع الأخطاء والتتبّع إلى خدمة Rust عبر صندوق AllStak. (سطر التثبيت في README لا يزال يعرض 0.1؛ والصندوق المنشور هو 0.2.0.)
- المستودع المصدر:
- AllStak/allstak-rust
- مسار README:
- README.md
- إصدار الـ SDK:
- 0.2.0
- مصدر التثبيت:
- crates.io
- آخر تحقّق:
- 2026-05-31
التثبيت
أضف الاعتمادية إلى Cargo.toml (مع رايات ميزات اختيارية).
[dependencies]
allstak = { version = "0.2", features = ["tracing", "axum"] }الإعداد
هيّئ مرّة واحدة واحتفظ بالـ guard المُعاد طوال عمر البرنامج.
let _guard = allstak::init(allstak::ClientOptions {
api_key: std::env::var("ALLSTAK_API_KEY").unwrap_or_default(),
host: "https://api.allstak.sa".into(),
release: Some("[email protected]".into()),
environment: Some("production".into()),
..Default::default()
});مثال أساسي
أو هيّئ من البيئة عبر allstak::init_from_env().
let _guard = allstak::init_from_env();التقاط الأخطاء
التقط الأخطاء والرسائل.
allstak::capture_message("cache warmed", Level::Info);
let err = std::io::Error::new(std::io::ErrorKind::Other, "disk full");
allstak::capture_error(&err);تتبّع الطلبات
استخدم طبقة/وسيط إطار العمل (محكوم بالميزات): axum AllstakLayer، و actix Allstak wrap، و reqwest-middleware للصادر. تسجّل الطلبات الواردة/الصادرة وتواصل التتبّع الموزّع.
let app: Router = Router::new()
.route("/users/:id", get(|| async { "ok" }))
.layer(AllstakLayer::new());أفضل الممارسات
- أبقِ الـ _guard حيًّا طوال عمر البرنامج.
- فعّل فقط ميزات الأطر التي تستخدمها (axum/actix/tracing/…).
- وفّر مفتاح API عبر ALLSTAK_API_KEY.