نظارت بر اجرای کد بلادرنگ لاراول

سلام، من مهندس نرم افزار Valerio، بنیانگذار و CTO در Inspector هستم.
به عنوان یک مالک محصول، یاد گرفتم که رفع مشکل نرم افزاری چقدر می تواند سخت باشد. به خصوص زمانی که بر تجربه کاربران تأثیر منفی می گذارد. یا بدتر از آن، مشتریان بالقوه جدید را در حین ورود مسدود می کند.
در طول چرخه های توسعه، تغییرات کد جدید تقریبا هر هفته منتشر می شود، اگر نه هر روز. متأسفانه، پیش بینی تمام مشکلاتی که ممکن است پس از هر نسخه رخ دهد، غیرممکن است. علاوه بر این، کاربران وقت خود را صرف گزارش باگ نمی کنند. اگر محصول شما آنطور که پیش بینی می شود کار نکند، استفاده از آن را متوقف می کنند. سپس به دنبال یکی دیگر می گردند که بهتر با نیازهای آنها مطابقت داشته باشد.
و هرچه برنامه بیشتر رشد کند (خطوط کد بیشتر، توسعه دهندگان جدید در کار)، اجتناب از حوادث دشوارتر است.
وقتی شروع به اشتراک گذاری ایده خود در پشت Inspector کردم، متوجه شدم که بسیاری از توسعه دهندگان این مشکل را می دانند. آنها زمان زیادی را صرف تحلیل رفتارهای عجیب درون برنامه های خود می کنند. و محبوب ترین پلتفرم های نظارتی بسیار پیچیده و احتمالاً خارج از بودجه هستند.
اولین نفری باشید که میدانید آیا برنامه شما قبل از اینکه مشتریان شما به مشکل برخورد کنند، میتواند تاثیرات منفی روی تجربه آنها با محصول شما را به شدت کاهش دهد. اینها پایه های مناسب برای شروع روابط تجاری موفق با مشتریان شما هستند.
نظارت بر اجرای کد لاوارل: چگونه کار می کند
Inspector یک بسته آهنگساز برای اضافه کردن نظارت بر اجرای کد در زمان واقعی به برنامه لاراول شما است. این به شما امکان می دهد تا روی تغییرات مداوم کد کار کنید در حالی که باگ ها و تنگناها را در زمان واقعی پیدا می کنید. قبل از اینکه کاربران انجام دهند.
کمتر از یک دقیقه طول می کشد تا شروع کنید. بیایید ببینیم چگونه کار می کند.
بسته آهنگساز را نصب کنید
دستور composer را در ترمینال خود اجرا کنید:
آهنگساز به inspector-apm/inspector-laravel نیاز دارد
کلید Ingestion را پیکربندی کنید
با ثبت نام در Inspector (https://app.inspector.dev/register) و ایجاد یک پروژه جدید، یک کلید Ingestion جدید دریافت کنید، فقط چند ثانیه طول می کشد.
دستورالعمل های نصب را مستقیماً در صفحه برنامه خواهید دید:
کلید Ingestion را در فایل محیطی خود وارد کنید:
INSPECTOR_INGESTION_KEY=9a304b04b8XXXXXXXXXXXX
تست کنید همه چیز کار می کند
دستور test
ما را اجرا کنید تا تحلیل کنید که آیا برنامه شما داده ها را به درستی به بازرس ارسال می کند یا خیر:
php artisan inspector:test
برای کاوش داده های نمایشی خود به (https://app.inspector.dev/home)[https://app.inspector.dev/home] بروید.
به طور پیش فرض مانیتورهای Inspector:
تعاملات پایگاه داده
اجرای مشاغل در صف
صنعتگر دستور می دهد
ایمیل ارسال شد
اطلاعیه
استثناهای کنترل نشده
اما، ما چراغ را در 50٪ از برنامه ما که در پسزمینه اجرا شده بود، روشن کردیم. مرحله بعدی نظارت بر تمام چرخه های اجرایی است که توسط تعاملات کاربر ایجاد می شود.
نظارت بر درخواست های HTTP ورودی
برای فعال کردن نظارت بر درخواست های HTTP، می توانید از میان افزار WebRequestMonitoring به عنوان یک جزء مستقل استفاده کنید. سپس می توانید تصمیم بگیرید که کدام مسیرها باید نظارت شوند. آن را بر اساس پیکربندی مسیرها یا ترجیحات نظارتی خود قرار دهید.
میان افزار را در کلاس App\Http\Kernel
وصل کنید:
/**
* گروه های میان افزار مسیر برنامه.
*
* @var آرایه
*/
محافظت شده $middlewareGroups = [
"وب" => [
... ،
\Inspector\Laravel\Middleware\WebRequestMonitoring ::class ,
]،
'api' => [
... ،
\Inspector\Laravel\Middleware\WebRequestMonitoring ::class ,
]
]
کد خود را مستقر کرده و در جریان اجرا حرکت کنید
مرحله بعدی این است که کد خود را در محیط تولید مستقر کنید. در مرحله بعد، تحلیل کنید که چگونه Inspector یک نمایش بصری از آنچه در کد شما اتفاق می افتد ایجاد می کند.
جریان های تراکنش را در داشبورد خود خواهید دید. و برای هر تراکنش، می توانید آنچه را که برنامه شما در زمان واقعی اجرا می کند نظارت کنید:
و برای هر تراکنش می توانید آنچه را که برنامه شما در زمان واقعی اجرا می کند نظارت کنید:
غنی سازی جدول زمانی معاملات
Inspector پرس و جوهای پایگاه داده، کارهای پس زمینه و دستورات artisan را به طور پیش فرض نظارت می کند. با این حال، ممکن است بسیاری از عبارات مهم در کد شما وجود داشته باشد که برای عملکرد و خطاها نیاز به نظارت دارند:
تماس های Http به سرویس های خارجی
عملکردی که با فایل ها (pdf، excel، تصاویر) سروکار دارد.
با تشکر از Inspector، میتوانید بخشهای سفارشی را علاوه بر مواردی که بهطور پیشفرض شناسایی شدهاند، در جدول زمانی خود اضافه کنید. این به شما امکان می دهد تأثیری را که یک بلوک کد مخفی بر عملکرد تراکنش می گذارد اندازه گیری کنید.
بگذارید یک مثال واقعی را به شما نشان دهم.
فرض کنید یک کار در صف دارید که برخی از پرس و جوهای پایگاه داده و یک درخواست HTTP را برای یک سرویس خارجی در پس زمینه اجرا می کند.
Inspector به طور پیش فرض پرس و جوهای شغل و پایگاه داده را شناسایی می کند. با این حال، نظارت و اندازهگیری اجرای درخواست HTTP به سرویس خارجی میتواند جالب باشد . سپس اگر مشکلی پیش آمد هشدارها را فعال کنید.
از تابع کمکی inspector()
استفاده کنید:
کلاس TagUserAsActive گسترش می یابد کار
{
/** @param کاربر $user */
$user محافظت شده است .
// نظارت بر درخواست های HTTP خارجی
عمومی تابع دسته ()
{
بازرس () -> addSegment ( تابع () {
$this -> guzzle -> پست ( '/mail-marketing/add_tag' , [
'پست الکترونیک' => $this -> کاربر -> ایمیل،
'برچسب' => "فعال" ،
])؛
}، 'http' );
}
}
شما می توانید تأثیر بخش جدید را در جدول زمانی تراکنش شناسایی کنید:
هشدار خطاها و استثنائات لاراول
به طور پیش فرض، هر استثنایی که در برنامه لاراول شما اجرا می شود گزارش می شود. این تضمین میکند که در زمان واقعی نسبت به خطاهای غیرقابل پیشبینی هشدار داده میشوید.
ای کاش هر تغییری که در کدم ایجاد میکنم بینقص باشد. اما واقعیت این است که همیشه اینطور نیست. برخی از خطاها بلافاصله پس از به روز رسانی ظاهر می شوند، در حالی که برخی دیگر به طور غیر منتظره ظاهر می شوند. این یک واقعیت تاسف بار برای توسعه دهندگان است. و اغلب به مشکلات ناشی از ارتباط بین برنامه ما و سایر خدمات نیز بستگی دارد.
با این حال، بازرس کار را آسان تر می کند. تشخیص مسائل ناشناخته را خودکار می کند، پس دیگر نیازی به تحلیل دستی وضعیت برنامه های خود ندارید. دیگر منتظر گزارش های کاربران نیستید. اگر مشکلی پیش بیاید، یک اعلان در زمان واقعی دریافت خواهید کرد. و پس از هر بار انتشار، میتوانید از تأثیر آخرین بازساز کد مطلع شوید.
اگر کد شما یک استثنا را اجرا می کند، اما نمی خواهید اجرا را مسدود کنید، به صورت دستی خطا را برای نظارت شخصی به Inspector گزارش دهید.
امتحان کن {
// کد خطرناک شما اینج است. ..
} catch ( GuzzleException $exception) {
بازرس () -> reportException ($exception)
}
علاوه بر این، اگر درخواست HTTP ناموفق باشد، به صورت بلادرنگ از طریق صندوق ورودی خود برای تحلیل خطا به شما هشدار داده می شود.
شما حتی به اطلاعات دقیق جمع آوری شده توسط Inspector در زمان واقعی دسترسی دارید:
نتیجه
وقتی مشتری گزارش می دهد که چیزی کار نمی کند، شما را مجبور می کند هر کاری را که انجام می دهید کنار بگذارید. سپس شروع به تلاش برای بازتولید سناریو کنید و گزارشهای موجود در مجموعه ابزار خود را دوباره جمعآوری و تجزیه و تحلیل کنید.
گرفتن یک تصویر دقیق از آنچه اتفاق می افتد می تواند ساعت ها یا حتی روزها طول بکشد. بازرس می تواند تفاوت زیادی در کارایی، بهره وری و رضایت مشتری ایجاد کند.
تا زمانی که می خواهید Inspector را به صورت رایگان امتحان کنید!
برای اینکه همه علاقهمندان بتوانند Inspector را امتحان کنند، ما یک سطح کاملاً رایگان تا 30000 تراکنش ماهانه ارائه میکنیم. این یک آزمایش محدود نیست. شما و تیمتان می توانید بدون مهلت تعقیب با Inspector آشنا شوید.
امیدوارم از تجربه Inspector لذت ببرید.
ما همچنین یک پیوند ارجاع برای این پست خاص ایجاد کرده ایم. با استفاده از این پیوند، 50000 تراکنش ماهانه اضافی را به عنوان پاداشی برای زمان صرف شده برای تحلیل این مقاله دریافت خواهید کرد - حساب خود را ثبت کنید - پس حساب خود را با 80000 تراکنش ماهانه به صورت رایگان شروع خواهید کرد.
یا برای جزئیات بیشتر به وب سایت ما مراجعه کنید: https://inspector.dev/laravel/
ارسال نظر