Laravel Pulse یک ابزار کاملاً رایگان و متن باز (open source) نظارت بر عملکرد و مانیتورینگ برای برنامه های لاراول است. لاراول پالس در Laracon AU 2023 توسط Jess Archer، عضو تیم اصلی لاراول، به طور رسمی معرفی شد.
لاراول پالس چیست؟
Laravel Pulse یک نمای کلی از عملکرد برنامه Laravel را به شما نشان می دهد. لاراول پالس موارد زیر را رصد می کند:
- آمار سیستم (CPU، memory، استفاده از حافظه)
- استفاده از برنامه (request ها، route های کند، job ها و غیره)
- توان عملیاتی صف (Queue)
- job های کند
- query های کند
- Exception ها
- hit و miss های Cache
- زمان equest خروجی
Pulse به طور خاص برای لاراول طراحی شده است و در مورد تمام اجزای اصلی مانند صف ها، event ها، mail، notification ها، caching و غیره میداند.

لاراول پالس برای نمایش آمارها، حداقل مقدار داده مورد نیاز را جمع آوری می کند. داده ها به صورت لوکال (local) ذخیره می شوند، بنابراین شما کنترل کامل را روی آنها دارید.
Laravel Pulse به صورت self-hosted است و هر جایی که Laravel اجرا میشود کار میکند. مانند VPS، Laravel Forge، Vapor، و غیره. لاراول پالس دارای رابط کاربری (UI) رسپانسیو (responsive) با حالت روشن (light) و تاریک (dark) است.
و از همه بهتر، لاراول پالس کاملا رایگان و متن باز است! با تشکر فراوان از Taylor Otwell که این ابزار را فراهم کرده است.
Laravel Pulse در مقایسه با Telescope
تلسکوپ یکی دیگر از ابزارهای اشکال زدایی (debugging) لاراول است.
تلسکوپ برای توسعه لوکال (local development) عالی است. زیرا داده های گسترده ای از ریکوست ها مانند همه ی query ها و event ها را ثبت می کند. اما این سطح بالا از جزئیات باعث می شود که برای محیط محصول (production) مناسب نباشد.
Laravel Pulse دادههای تجمیعی و کلی (high level aggregate data) را ارائه میکند، بنابراین مختصر و مفید است و برای محیط محصول مناسب است. لاراول پالس جایگزین error tracker نمی شود، اما آنها را به خوبی تقویت می کند.
نسخه ی Demo لاراول پالس

در Laracon AU، جس آرچر یک دموی زنده تعاملی از Laravel Pulse را با استفاده از تلفن های مخاطبان نشان داد!
مخاطبان بهعنوان ادمینهای پرواز برای اپلیکیشن ساختگی Acme Airlines عمل کردند. آنها می توانستند اقداماتی مانند موارد زیر را انجام دهند:
- فروش بلیط
- افزایش قیمت ها
- تاخیر در پروازها
- لغو پروازها
در همین حال، جس نشان داد که چگونه لاراول پالس این اقدامات را به صورت زنده روی داشبورد رصد می کند.
در ادا خلاصه ای از برخی نکات مهم آورده شده است:
استفاده از برنامه

کارت Application Usage نشان می دهد:
- کاربران با بیشترین request
- کاربران با بیشترین مسیر (endpoint) های کند
- کاربران با بیشترین job های در صف
این قسمت گزارشی در مورد افرادی که از برنامه شما استفاده می کنند و مشکلات عملکردی که با آن مواجه هستند را ارائه می دهد.
مسیر (Route) های کند

کارت مسیرهای کند تمام مسیرهایی را نشان می دهد که از آستانه پیکربندی شده (پیش فرض 1 ثانیه) بیشتر طول کشیده اند.
این کارت نام مسیر و متد (method) آن را نمایش می دهد تا بتوانید مسیر کند را به راحتی پیدا دهید.
Job های کند

کارت Slow Jobs نیز مشابه است و Job های در صف را که بیش از یک آستانه مشخص طول می کشند نمایش می دهد.همچنین نام کلاس و مکان Job را نشان می دهد.
تعداد Job های ناموفق که دوباره اجرا میشوند، هر بار را افزایش می یابد، بنابراین می توانید Job های مشکلدار را پیدا کنید.
Query های کند

کارت Slow Queries، کوئری هایی را که بیش از یک آستانه مشخص طول می کشند نشان می دهد. این قسمت فقط SQL را بدون binding ها نشان می دهد و موارد زیر را نمایش می دهد:
- Obfuscates PII
- Query های یکسان را در یک نتیجه جمع می کند
- مکان فایل مورد نظر را نشان می دهد
میتوانید بهصورت اختیاری نمایش مکانها را غیرفعال کنید تا داده ها به صورت تجمیعی تر نمایش داده شود.
Exception ها

کارت Exceptions، تمام exception ها شامل مکان، تعداد و آخرین وقوع را نمایش می دهد.
همچنین می توانید آنها را بر اساس جدیدترین ها مرتب کنید.
کش (Cache)

کارت Cache، استفاده از کلید (key) ها را همراه با hit و miss ها ردیابی می کند.
این بخش هیچ فرضی در مورد کلیدهای شما در نظر نمی گیرد، اما در صورت نیاز به داشتن دید کلی تری از داده ها، امکان گروه بندی مجدد و جمع آوری داده های جمع آوری شده را فراهم می کند.
Request های خروجی

استفاده از HTTP client لاراول در کارت Slow Outgoing Requests ردیابی می شود. میتوانید درخواستهای خروجی کندی را که برنامهتان ارسال میکند، ببینید.
نسخه ی دمو از یک regex در فایل config استفاده کرد تا URL های متنوع را در یک نام دامنه، مشابه داده های کش تجمیع کند.
شخصی سازی کردن داشبورد
فایل Pulse blade قابل انتشار و سفارشی سازی است. به عنوان مثال، شما می توانید:
- حالت تمام عرض را تغییر دهید
- تعداد ستون ها را تنظیم کنید
- فاصله و موقعیت کارت را تنظیم کنید
- کارت ها را به بخش های جداگانه تقسیم کنید
همچنین می توانید کارت های سفارشی خود را برای نمایش آمار مخصوص کسب و کار ایجاد کنید. این نسخه دمو شامل یک کارت “پروازها” بود که بلیط های فروخته شده، درآمد، تاخیرها و فروشندگان برتر را نشان می داد.
بازدهی (Performance)
پالس حداقل داده ها را جمع آوری می کند و می تواند فشارهای سنگین محصول را مدیریت کند. Larave Forge آن را برای 2 میلیون درخواست در روز بدون نیاز به نمونه برداری اجرا می کند.
به طور پیش فرض، Pulse داده های request را پس از ارسال پاسخ در دیتابیس ذخیره می کند. برخی از امکانات برای مقیاس پذیری لاراول پالس عبارتند از:
- از یک دیتابیس اختصاصی پالس استفاده کنید
- Pulse را روی یک سرور جداگانه اجرا کنید
- نمونه برداری (sampling) را برای ترافیک بالا فعال کنید
- ایجاد درایورهای داده سفارشی
چه زمانی می توانیم از پالس استفاده کنیم؟
انتظار می رود Laravel Pulse در یک هفته آینده یا بیشتر منتشر شود.پالس از طریق composer خواهد بود. منتظر انتشار رسمی باشید!
نتیجه
Laravel Pulse آمار مفیدی در مورد عملکرد و استفاده از برنامه Laravel شما ارائه می دهد. قابلیت سفارشیسازی و سبک بودن، آن را به یک پکیج عالی برای هر پروژه لاراول تبدیل میکند.
با تشکر فراوان از کل تیم لاراول برای یکی دیگر از ابزارهای رایگان شگفت انگیز برای کامیونیتی!
