PocketSentry: جایگزین ۱۸ مگابایتی Sentry برای پروژههای کوچیک
خلاصهٔ کاملتر
به گفته سازنده، نصب خودمیزبان Sentry عملا یه کابوس زیرساختیه: بیشتر از ۴۰ کانتینر داکر، سرویسهایی مثل Kafka، Redis، ClickHouse، PostgreSQL و Zookeeper، حداقل ۱۶ گیگ رم و نگهداری همیشگی. حرف اصلی پروژه اینه که برای گرفتن یه TypeError ساده تو یه پروژه شخصی، لازم نیست یه سیستم توزیعشده کامل دیپلوی کنی.
PocketSentry راهحل پیشنهادیشه: یه باینری مستقل و تکفایلی که پروتکل Sentry رو حرف میزنه. نکته کلیدی اینه که SDKهای موجود مثل sentry-python، @sentry/browser و sentry-go بدون هیچ تغییری تو کد بهش وصل میشن؛ فقط کافیه آدرس DSN رو به نشونی سرور محلی PocketSentry تغییر بدی و تمام.
از نظر منابع، تفاوت اندازه خیلی چشمگیره. این ابزار بهجای دهها کانتینر، فقط یه فایل حدود ۱۸ مگابایتی هست، کمتر از ۲۰ مگابایت رم موقع اجرا میخواد و بهجای اون پشته سنگین، از SQLite (با حالت WAL و حذف تکراریها) استفاده میکنه. چون با Go خالص و بدون CGO نوشته شده، نه به کتابخونههای C خارجی نیاز داره نه به وابستگیهایی مثل Kafka؛ به ادعای سازنده زمان دیپلویش از ۳۰ دقیقه به ۳ ثانیه میرسه.
از نظر امکانات هم کم نذاشته. خطاهای یکسان بهطور خودکار بر اساس ترکیب پروژه، پیام و سطح خطا گروهبندی میشن و یه شمارنده برخورد نگه میدارن. یه داشبورد بلادرنگ با تم تیره و بهروزرسانی خودکار هر ۲ ثانیه (با HTMX) داره، استکتریس کامل و پیلود خام JSON رو نشون میده، و میتونه از طریق وبهوک به تلگرام و Discord هشدار بفرسته (فقط برای خطاهای جدید و یکتا).
چندتا قابلیت کاربردی دیگه هم داره: سیاست نگهداری برای پاکسازی خودکار خطاهای قدیمی، احراز هویت Basic برای محافظت از داشبورد (در حالی که API دریافت خطا باز میمونه)، خاموششدن تمیز (graceful shutdown) که درخواستها رو نیمهکاره رها نمیکنه، مدیریت پروژههای جدا با DSN مخصوص خودشون، و پشتیبانی از Source Map برای خوانا کردن استکتریسهای جاوااسکریپت مینیفایشده. لایسنسش هم MIT هست. نویسنده میگه شعار پروژه اینه که «SDKهای Sentry تو کار میکنن، ولی صورتحساب سرورت نه».
نکات کلیدی:
- یه باینری تکفایلی حدود ۱۸ مگابایتی نوشتهشده با Go، بدون CGO و بدون وابستگی خارجی
- پروتکل Sentry رو میفهمه، پس SDKهای رسمی فقط با عوضکردن DSN و بدون تغییر کد وصل میشن
- ذخیرهسازی روی SQLite با حالت WAL و حذف خودکار خطاهای تکراری؛ کمتر از ۲۰ مگابایت رم
- داشبورد بلادرنگ با HTMX، هشدار تلگرام و Discord، و پشتیبانی از Source Map
- جایگزین سبک نصب خودمیزبان Sentry که به بیش از ۴۰ کانتینر و ۱۶ گیگ رم نیاز داره




