کتابخانه کلاینت تله‌متری Rust

یک کلاینت تله‌متری برنامه‌ای است که با سرویس تله‌متری تعامل دارد تا جمع‌آوری داده‌ها را پیکربندی کند، پیکربندی‌های معیار را مدیریت کند و گزارش‌های تله‌متری را دریافت کند. کلاینت‌ها از کتابخانه Rust به نام libsdv_telemetry_rust_wrapper برای تعامل با سرویس استفاده می‌کنند.

نمای کلی سطح API

برای مستندات API به مرجع API کتابخانه کلاینت Rust telemetry مراجعه کنید.

این کتابخانه یک رابط Rust برای تعامل با سرویس Telemetry ارائه می‌دهد. این کتابخانه مسئول موارد زیر است:

  • مدیریت چرخه حیات سرویس: اتصال به سرویس تله‌متری را مدیریت می‌کند.

    • مقداردهی اولیه: با استفاده از یک فراخوانی مسدودکننده، اتصالی به سرویس برقرار می‌کند. پس از اتصال، می‌توانید فراخوانی‌های برگشتی را ثبت کنید تا اعلان‌های ناهمزمان درباره وضعیت سیستم و در دسترس بودن گزارش‌های جدید دریافت کنید.
    • خاموش کردن (Shutdown): راهی برای قطع ارتباط با سرویس و پاکسازی تمام منابع مرتبط فراهم می‌کند.
  • مدیریت چرخه حیات پیکربندی معیارها: کنترل بر چرخه حیات پیکربندی معیارها را ارائه می‌دهد.

    • مدیریت: مشتریان می‌توانند پیکربندی‌های معیارها را اضافه، حذف، فعال و غیرفعال کنند.
    • بازرسی: می‌توانید فهرست پیکربندی‌های فعال و غیرفعال را جستجو کنید.
  • مدیریت و بازیابی گزارش: دسترسی به داده‌های جمع‌آوری‌شده توسط سرویس تله‌متری را تسهیل می‌کند.

    • اعلان‌ها: هر زمان که گزارش معیارهای جدید برای بازیابی آماده باشد، با استفاده از یک فراخوانی مجدد، به صورت غیرهمزمان به کلاینت‌ها اطلاع می‌دهد.
    • دسترسی به داده‌ها: روش‌هایی برای دریافت گزارش‌های خاص از طریق UUID آنها و بازیابی لیستی از تمام گزارش‌های موجود ارائه می‌دهد.
  • گزارش وضعیت و خطا: بینشی در مورد سلامت و وضعیت سرویس تله‌متری ارائه می‌دهد.

    • به‌روزرسانی‌های وضعیت ناهمزمان: کلاینت‌ها به‌روزرسانی‌های وضعیت، شامل خطاها و هشدارها را به‌صورت آنی از طریق یک فراخوانی اختصاصی دریافت می‌کنند. این به شما امکان می‌دهد مدیریت خطای قوی را پیاده‌سازی کرده و وضعیت سرویس را رصد کنید.

مثال استفاده

برای یک برنامه کامل و قابل کامپایل که چرخه حیات کامل را نشان می‌دهد، به پیاده‌سازی نمونه کلاینت مراجعه کنید: samples/telemetry/client/rust/telemetry_client/telemetry_rust_c_client.rs .

کلاینت نمونه یک ابزار خط فرمان است که با API کامل کتابخانه تعامل دارد. این نمونه نشان می‌دهد که چگونه می‌توان با استفاده از کانال‌ها، رابط مبتنی بر فراخوانی کتابخانه را با یک زمان اجرای ناهمزمان Rust (توکیو) متصل کرد.

کلاینت این توالی عملیات را انجام می‌دهد:

  1. اتصالی به سرویس تله‌متری برقرار می‌کند و فراخوانی‌های مجدد برای به‌روزرسانی‌های وضعیت و اعلان‌های گزارش معیارها را ثبت می‌کند.
  2. فایل‌های پیکربندی معیارها که به عنوان آرگومان‌های خط فرمان ارائه می‌شوند را می‌خواند و سپس پیکربندی‌ها را در سرویس اضافه و فعال می‌کند.
  3. از یک وظیفه پس‌زمینه برای ثبت پیام‌های وضعیت ناهمزمان (خطاها یا هشدارها) دریافتی از سرویس استفاده می‌کند.
  4. با انجام اقدامات زیر، حلقه بازیابی داده‌ها را مدیریت می‌کند:
    • منتظر اعلانی مبنی بر آماده شدن گزارش معیارها است.
    • داده‌های کامل گزارش معیارها را دریافت می‌کند.
    • به صورت اختیاری، گزارش را به عنوان یک فایل بافر پروتکل دودویی روی دیسک می‌نویسد.
  5. پیکربندی معیارها را پس از تولید اولین گزارش معیارها از سرویس حذف می‌کند. توجه داشته باشید که این یک پیاده‌سازی آزمایشی است و مشتریان شما می‌توانند هر تعداد گزارش دریافت کنند.
  6. با ظرافت اتصال به سرویس را قطع می‌کند.