در این مقاله از راکت به معرفی یک ابزار مانیتورینگ برای اپلیکیشن های لاراول شما میپردازیم.خوشحالیم که در Scout APM پیشتیبانی خود را از برنامههای لاراول آغاز میکنیم. ما سالهاست که به مانیتورینگ هزاران اپ روبی و پایتون و الکسیر پرداختهایم و از آوردن ابزارهای جدید در جامعه توسعهدهندگان بسیار هیجانزده هستیم. در اینجا یک نمای کلی از نصب و اجرای Scout برای شما آوردهایم:
نصب
قبل از هر چیز ، برای شروع مانیتورینگ اپلیکیشن لاراول خود نیاز به یک حساب کاربری Scout دارید. اگر از قبل اکانت ندارید میتوانید برای یک دوره ۱۴ روزه آزمایشی به صورت رایگان( و بدون نیاز به کارت اعتباری) در اینجا ثبت نام کنید.
مورد بعدی اینکه باید یک عامل نظارتی مانیتورینگ را به dependency های پروژه خود اضافه کنید، که این کار را میتوان با یک دستور در shell انجام داد.
composer require scoutapp/scout-apm-laravel
این دستور دو پکیج را نصب میکند: scout-apm-laravel و scout-apm-php.
کار بعدی تعریف بعضی از تنظیمات و پیکربندی برای اتصال آن عامل به حسابکاربری است. برای انجام این کار، فایل .env را در ادیتور مورد علاقه خود بازکنید و سه خط زیر را به انتهای این فایل اضافه کنید:
SCOUT_MONITOR=true
SCOUT_KEY=”enter your Agent Key here”
SCOUT_NAME=”enter the name of you application here”
میتوانید Agent Key حساب خود را در صفحه تنظیمات Scout پیدا کنید.
و همین! تقریباً پس از ۵ دقیقه دادههای شما در Scout ظاهر میشوند. برای کسب اطلاعات بیشتر درباره نصب Heroku یا عیبیابی مشکلات نصب، یا نگاهی به داکیومنت بیندازید و یا از طریق ایمیل support@scoutapm.com با ما تماس بگیرید، خوشحال میشویم که به شما کمک کنیم.
از کجا شروع کنیم؟
خب شما یک حساب Scout ایجاد کردهاید و عامل نظارت را هم درست کردهاید، اما از کجا تشخیص مشکلات عملکرد برنامهخود را شروع میکنید؟ بیایید نگاهی به ویژگیهای اصلی Scout بیندازیم که به درک سریع مشکلات پرفرمانس شما کمک خواهد کرد.
صفحه مرور اصلی
اولین صفحهای که هنگام ورود به Scout مشاهده خواهید کرد، صفحه نمای کلی ( عکس زیر) است که با یک نگاه سریع و بدون سر و صدا میتوانید از سلامت عملکرد برنامه خود مطمئن شوید.
نمودار بسیار قابل تنظیم است و به شما امکان تغییر دورهای زمانی و همچنین معیارهایی که میخواهید ببینید را خواهد داد. همچنین این برنامه به یک ابزار درگ-اند-دراپ ( که در زیر نشان داده شده) مجهز است که به شما ازادای بیشتری خواهد داد. یک پنجره pop-up که به صورت داینامیک بارگیری میشود و تمام نقاط انتهایی که در این بازه زمانی به آنها دسترسی داشتهاید را نشان میدهد. این ویژگی میتواند زمانی مفید باشد که میزان عملکرد خود را در نمودار مشاهده کنید و بخواهید ببینید چه چیزی باعث ایجاد آن شده است.
تبهای Insights
اگر برای اولین بار است که Scout را امتحان میکنید، تبهای insights مکانی عالی برای شروع است. در اینجا ما از مجموعهای از الگوریتمها را داریم که پروژه شما را برای کوئریهای n+1 و کوئریهایی که سرعت پایین دارند، تجزیه و تحلیل میکند. همچنین “low-hanging fruit” را برای اصلاح عملکرد به شما ارائه میدهد که اغلب میتوانند بلافاصله عملکرد برنامه شما را بهبود ببخشند.
Endpoint ها و Traceها
Scout اصولاً معیارهای عملکرد برنامه را در دو سطح ارائه میدهد. اول از همه از دیدگاه یک Endpoint. به عنوان مثال، این Endpoint چقدر طول میکشد تا دسترسی پیدا کند و تفکیک اینکه در کجا این زمان استفاده شده.
اگر به تصویر زیر نگاهی بیندازید، به وضوح میبینید که در ۳ موردی که ForgetPasswordController endpoint به ۷۸٪ از ۲۳۷۱ میلی ثانیه دسترسی پیدا کرده و به این معنی است که زمان ریکوئست در این لایه کنترلر صرف شده که نشان میدهد اگر میخواهیم برای بهبود این endpoint کند تلاش کنیم، اینجا اولین جایی است که باید بررسی شود.
دیدگاه دوم که Scout در درجه اول معیارهای خود قرار داده، سطح trace یا ردیابی است. به عنوان مثال، در طی این درخواست که شخص خاصی انجامش داده، چه مدت طول کشیده تا تکمیل شود و کدام سطح از درخواست بیشترین زمان را مصرف کرده است و … .
این مورد ۹۸ ٪ از زمان را در لایه SQL گذرانده و بیشتر این زمان را در همان ۲ call به کوئری در خط بالا صرف کرده است. اگر روی دکمه SQL کلیک کنیم، میتوانیم یک backtrace ببینیم و ببینیم که آیا میتوانی این کوئری را بهبود ببخشیم یا نه.
این صفحات جایی هستند که شما بیشترین وقت خود را روی آن خواهید گذاشت و به شما دیدی را خواهد داد که در هنگام تلاش برای درک مسائل پرفرمانس و عملکرد ضروری است. همچین میتوانید مستقیماً از صفحهی نمای اصلی و insights tab ها و یا با کیلیک روی لینک Web Endpoints که در بالای صفحه است، به صفحات Endpoint و Trace دسترسی پیدا کنید. ( در زیر نشان داده شده است).
فراتر از اصول اولیه
اکنون که اصول Scout را بیان کردیم و زمینههای اصلی سیستمی را که معمولاً هر روز استفاده میکنید را به شما نشان دادیم، اکنون توجه شما را به برخی از ویژگیهای پیشرفتهتر که Scout را در بالای فضای AMP و جلوتر از همه قرار میدهد، جلب میکنم.
مانیتورینگ خطا (نظارت بر خطا)
اینکه آیا از Sentry،Honeybadger، Bugsnag یا Rollbar برای مانیتورینگ خطای خود استفاده میکنید مهم نیست چرا که ما شما را تحت پوشش خود قرار میدهیم!
Scout به طور پکپارچه با سرویسهای محبوب ادغام میشود و به شما این اماکن را میدهد که تمام مانیتورینگ خود را در یک مکان، در صفحه نمای اصلی داشته باشید.
فرایند نصب بدون توجه به اینکه از کدام یک از این سرویسها استفاده میکنید، مشابه است و تمام آن مستلزم وارد کردن رمز API در صفحه تنظیمات Scout است.
Custom Context و Trace Explorer
چرا این مسأله مشکل پرفرمانسی فقط در ساعت ۲ بامداد از طریق IP برزیل اتفاق میافتد؟ این نوع مشکلات دشوار ( اما معمول) عملکردی را میتوان با یکی از قدرتمندترین ویژگیهای Scout بررسی کرد: trace explorer در conjunction با تعریف custom context توسط کاربر استفاده میشود.
custom context تعریف شده به شما اجازه میدهد که آنچه را نیاز دارید ببینید را به ما بگویید. و ارزش آن را دارد که مدت زمان نسبتاً کمی را برای راهاندازی آن بگذارید و یک مانیتورینگ فوقالعاده قدرتمند داشته باشید! به طور پیشفرض، تنها فیلدهای context ای که شما مشاهده میکنید URL و Hostname هستند همانطور که در زیر میبینید؛ اما این موارد را میتوان برای هر چیزی که شما میخواهید تنظیم کرد.
فیلترهای چندگانه trace explorer (دربالا نشان داده شده) به شما این امکان را میدهد که endpoint هایی متناسب با معیارهایی که تعریف کردهاید را بررسی کنید و سپس میتوانید تمام trace هایی را که با این فیلترها مطابقت دارند در قسمت Transaction Traces مشاهده کنید. به عنوان مثال، شاید بخواهید درخواستهای یه کاربر خاص یا همهی کاربران را در یک قسمت خاص جهان مشاهده کنید. انجام این نوع کارها با trace explorer به راحتی در custom context انجام میشود و به شما کمک میکند تا به زیر و بم مشکلاب پرفرمانسی زمانبر برسید.
Deploy tracking
تا به حال شده ناگهان یک مشکل پرفرمانسی بعد از آخرین Deploy برایتان پیش آمده باشد؟ در حال Deploy چطور؟ این حال سؤالاتی هستند که با ویژگی deploy tracking ما پاسخ داده میشوند، که یک نماد مشکل را در نمودار نمای اصلی قرار میدهد تا زمان توسعه یا deployment را نشان دهد.
Deploy tracking همچنین این اجازه را به شما میدهد تا جزئیاتی از قبیل تعداد commit هایی که در deploy ما درگیر شدند. ما میتوانیم همهی این اطلاعات را زمان اضافه کردن SHA یا در دیپلوی در environmental variable در SCOUT_REVISON_SHA جمعآوری کنیم.
هشدار
مثل همهی سیستمهای مانیتورینگ خوب، Scout هم یک سیستم هشدار پیچیده را برای شما فراهم میکند که میتواند برای برای ارسال هشدار به افراد خاص هنگامی که زمان پاسخ endpoint یا معیارهای استفاده از حافظه از یک محدوده خاص عبور میکند، پیکربندی شود. این هشدارها با نمادهای هشدار در نمودار نمای اصلی شما ظاهر میشوند و نوتیفیکیشن ها ارسال میشوند.
به طور پیش فرض، سیستم هشدار، نوتیفیکیشنها را از طریق ایمیل برای کاربران ارسال میکند، اما میتواند برای کار با سرویسهای third-party همچون Slack،VictorOps،PagerDuty و … با ویژگیwebhook ما پیکربندی شود.
ابزارهای سفارشی
آیا شما از کتابخانههایی خارج از لاراول استفاده میکنید که ما درحال حاضر از آنها استفاده نمی کنیم؟ کافیست به تیم پشتیبانی ما اطلاع دهید و ما سعی میکنیم که آن را برای شما اضافه کنیم.
و در نهایت …
همانطور که مشاهده کردید Scout APM یک راهحل بسیار عالی برای جامعه PHP و لاراول به ارمغان میآورد. رابط کاربری منظمی دارد و ابزار دقیق ما به شما کمک میکند تا به سرعت به قلب مشکلات پرفرمانسی خود بروید، درحالی که ساختاری بسیار انعطافپذیر دارید و همچنین قیمتی مقرون به صرفه پرداخت کردهاید.
امیدورام این مقاله برای شما مفید بوده باشد. از وقتی که گذاشتید سپاسگذارم.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید