ابزارهای عملکردی برای ASP.NET (بخش دو)

چهارشنبه 11 فروردین 1400

در مقاله قبل 5 مورد از ابزارهای عملکردی برای NET. و ASP.NET. را بیان کردیم. در این مقاله با ما همراه باشید تا 4 مورد دیگر از این ابزارهای کاربردی را به شما معرفی کنیم.

ابزارهای عملکردی برای ASP.NET (بخش دو)

1. معیارهای سفارشی یا Key Performance Indicators (KPIs)

یکی از بهترین راه‌ها برای پیگیری عملکرد برنامه‌یتان ایجاد معیارهای سفارشی برنامه خود و پیگیری آن‌هاست. اگر می‌خواهید معیارهای سفارشی (متریک های سفارشی) خود را ردیابی کنید، می توانید شمارنده عملکرد ویندوز (Windows Performance Counters) خود را بسازید، می‌توانید از سرویس‌های شخص ثالث استفاده کنید.

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

مزایا:

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

2. لاگ های دسترسی به Web Server (IIS)

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

اگر APM ندارید، لاگ‌های IIS تان یکی از روش‌های انجام نظارت بر عملکرد ASP.NET است.

مزایا:

مشاهده سریع فایل لاگ IIS به راحتی انجام می‌شود.

Visual Log Parser یک روش سریع برای تحلیل لاگ‌ها ارائه می‌دهد.

معایب:

جزئیاتی به شما نمی‌دهد که چرا این درخواست طولانی شده است. مدت زمان گزارش شده توسط IIS شامل زمان شبکه کلاینت است که طولانی‌تر از زمان سپری شده در کد است.

اکنون بسیاری از برنامه‌ها از مسیریابی پیشرفته URL استفاده می‌کنند که URLها را بسیار منحصر به فرد می‌سازد و گزارش دهی در مورد آن‌ها سخت می‌شود.

3. دنبال کردن درخواست‌های ناموفق ASP.NET

یکی از ویژگی‌های کمتر شناخته شده و مورد استفاده ‌ی IIS ردیابی درخواست ناموفق است. این می‌تواند برای ردیابی جزئیات زیادی در مورد درخواست‌های IIS استفاده شود که مطابق با قوانین خاصی هستند که می توانید آن‌ها را کانفیگ کنید. می توانید آن‌ها را برای کدهای HTTP status خاص، زمان صرف شده، یا سطح سختی رویداد تنظیم کنید.

مزایا:

می‌توانید سرورهای تولید (production servers) را در هر زمان روشن کرده و پس از انجام کار خاموش کنید.

برای تشخیص اینکه آیا مشکلی اتفاق افتاده است،‌ چند بار رخ داده و یا شاید یکسری جزئیات برای دلیل آن خوب است. همچنین برای یافت مشکل در ماژول HTTP سودمند است.

معایب:

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

برای مشاهده نیاز به دسترسی فایل سیستم به سرورهای تولید است.

مشکلات عملکردی را برای متد یا کد شناسایی نمی‌کند.

4. دنبال کردن Exception

یکی از بزرگ‌ترین دلایل مشکلات عملکردی اکسپشن‌های برنامه است. وقتی یک اکسپشن پرتاب می‌شود باعث می‌شود thread در هنگام جمع‌آوری ردیابی پشته (stack) متوقف شود. حتی اکسپشن‌های مدیریت شده که بی‌ضرر به نظر می‌رسند می‌توانند باعث ایجاد تنگناهای عملکردی عظیم تحت بارگیری سنگین سرور شوند. برای یافتن مشکلات مهم، خطاهای جدید و نظارت بر میزان خطاها در طول زمان، جمع آوری و نظارت بر همه اکسپشن‌ها مهم است. ابزارهای ردیابی خطا یا باگ برای هر تیم توسعه‌ای ضروری هستند.

مزایا:

اگر از فریم ورک لاگ انداختن مثل log4net یا NLog استفاده می‌کنید، راه‌اندازی آن آسان است. اگر از فریم ورک های لاگ رایج استفاده نمی‌کنید، می توانید از Elmah استفاده کنید.

معایب:

هیچ چیز! انجامش دهید!

ابزارهای پیشرفته مانیتورینگ Windows و ASP.NET

برخی از گزینه‌های دیگر که می‌توانند در شرایط خاصی مفید باشند عبارتند از، ETW، WMI، WinDbg یا حتی خود CLR Profiler API. اگرچه همه این‌ها بسیار سطح پایین هستند و طرز استفاده آن‌ها نیاز به تجربه دارد.

WinDbg ابزاری بسیار قدرتمند برای تحلیل مشکلات عجیب ASP.NET است.

جمع‌بندی

بسته به کاری که می‌خواهید انجام دهید،‌ ابزارهای عملکردی ASP.NET بسیاری وجود دارد. هر مشکل برنامه متفاوت است. احتمالا با گذشت زمان از همه ابزارهای مختلف ذکر شده در اینجا استفاده خواهید کرد. خوب است که حداقل بدانید چه مواردی در دسترس شما هست و امیدواریم این لیست برای شما مفید بوده باشد.

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید