پرش به مطلب اصلی

جایگاه سنتری در معماری اپلیکیشن

تا اینجا با اطلاعاتی که سنتری جمع‌آوری می‌کند آشنا شدیم. حالا ممکن است این سؤال مطرح شود که سنتری دقیقاً در کدام بخش معماری قرار می‌گیرد: روی سرور، داخل مرورگر یا در اپلیکیشن موبایل؟ آیا باید زیرساخت آن را خودتان مدیریت کنید؟ آیا جایگزین ابزارهای فعلی شما می‌شود؟

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

SDK در محل اجرای کد قرار می‌گیرد

کیت توسعه نرم‌افزار سنتری (Software Development Kit یا SDK) داخل بخشی از اپلیکیشن قرار می‌گیرد که کد شما در آن اجرا می‌شود. برای هر زبان یا فریم‌ورک، SDK متناسب با همان محیط وجود دارد.

بسته به معماری برنامه، می‌توانید SDK را در یک یا چند بخش راه‌اندازی کنید:

  • Backend: برای ثبت خطاهای سمت سرور، درخواست‌های ناموفق و داده‌های عملکردی؛
  • Frontend: برای ثبت خطاهای JavaScript، عملکرد صفحه‌ها و Session Replay؛
  • اپلیکیشن موبایل: برای ثبت Crashها، خطاها و داده‌های عملکردی اپلیکیشن؛
  • Workerها و وظایف زمان‌بندی‌شده: برای ثبت خطاهای پردازش‌های پس‌زمینه و Cron Jobها.

لازم نیست همه این بخش‌ها را هم‌زمان به سنتری متصل کنید. می‌توانید کار را از مهم‌ترین بخش اپلیکیشن، مانند Backend، شروع کنید و بعداً سایر بخش‌ها را اضافه کنید.

هر SDK باید با نام منبع داده (Data Source Name یا DSN) پیکربندی شود. DSN مشخص می‌کند رخدادهای جمع‌آوری‌شده باید برای کدام پروژه در سنتری ارسال شوند.

سرویس سنتری جدا از اپلیکیشن اجرا می‌شود

SDK فقط مسئول جمع‌آوری و ارسال اطلاعات است. پردازش اصلی داده‌ها در سرویس سنتری انجام می‌شود که هم‌روش آن را میزبانی و مدیریت می‌کند.

وقتی SDK یک رخداد (Event) ارسال می‌کند، سرویس سنتری آن را دریافت و پردازش می‌کند. رخدادهای مشابه در قالب Issue گروه‌بندی می‌شوند و داده‌های عملکردی نیز به‌شکل Transaction و Trace در دسترس قرار می‌گیرند.

سرویس سنتری وظایف زیر را انجام می‌دهد:

  • دریافت Eventها از SDK؛
  • گروه‌بندی خطاهای مشابه؛
  • ذخیره اطلاعات رخدادها؛
  • نمایش Errorها، Issueها و داده‌های عملکردی؛
  • اجرای قوانین هشدار؛
  • ارائه داشبورد برای بررسی و مدیریت مشکلات.

در این معماری، اپلیکیشن شما فقط SDK را اجرا می‌کند و نیازی نیست سرورها، دیتابیس یا اجزای داخلی سرویس سنتری را مدیریت کنید. تنظیمات پروژه، محدودیت ارسال رخدادها و اطلاعات ثبت‌شده نیز از طریق پنل سنتری مدیریت می‌شوند.

سنتری جایگزین چه ابزارهایی نیست؟

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

محل اجرای اپلیکیشن نیست

سنتری کد اصلی اپلیکیشن را اجرا نمی‌کند. Backend، Frontend، Workerها و سایر اجزای برنامه همچنان روی زیرساخت خودتان یا یکی از سرویس‌های میزبانی هم‌روش اجرا می‌شوند.

دیتابیس اپلیکیشن نیست

سنتری اطلاعات تجاری برنامه، مانند کاربران، سفارش‌ها یا تراکنش‌های مالی، را به‌عنوان دیتابیس اصلی ذخیره نمی‌کند. فقط اطلاعاتی را دریافت می‌کند که SDK برای بررسی خطاها و عملکرد برنامه می‌فرستد.

جایگزین کامل لاگ‌ها نیست

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

ابزار پایش زیرساخت نیست

سنتری برای نمایش مستقیم مصرف CPU، RAM، دیسک یا وضعیت نودهای زیرساخت طراحی نشده است. برای بررسی این موارد باید از ابزارهای مانیتورینگ زیرساخت استفاده کنید. سنتری بیشتر بر خطاها، درخواست‌ها و عملکرد اپلیکیشن تمرکز دارد.

ابزار CI/CD نیست

سنتری فرایند Build یا Deploy برنامه را اجرا نمی‌کند. بااین‌حال، می‌تواند اطلاعات Release را دریافت کند تا مشخص شود یک خطا یا تغییر عملکرد پس از انتشار کدام نسخه ایجاد شده است.

این صفحه مفید بود؟

با ثبت بازخوردتان در بهبود کیفیت مستندات مشارکت داشته باشید.