معیارها
وقتی برنامه شما در محیط production با ترافیک واقعی در حال اجراست — یا اگر در حال انجام آزمون بار هدفمند هستید — ممکن است بخواهید بینش دقیقی درباره نحوه عملکرد و منابع مورد استفاده برنامه داشته باشید.
به عنوان مثال، ممکن است بخواهید به سوالاتی مانند موارد زیر پاسخ دهید:
- برنامه من چه مقدار حافظه مصرف میکند؟ این مقدار در طول زمان چگونه تغییر میکند؟
- چند goroutine در حال حاضر در حال استفاده است؟ این تعداد در طول زمان چگونه تغییر میکند؟
- چند اتصال پایگاه داده در حال استفاده و چند اتصال بیکار است؟ آیا نیاز به تغییر تنظیمات pool اتصالات دارم؟
- نسبت پاسخهای موفق HTTP به خطاهای سمت کلاینت و سرور چقدر است؟ آیا نرخ خطاها بالاتر از حالت عادی است؟
داشتن بینش درباره این موضوعات میتواند به شما در تصمیمگیری درباره سختافزار و پیکربندی کمک کند و به عنوان یک هشدار اولیه از مشکلات احتمالی (مانند نشت حافظه) عمل کند.
برای کمک به این منظور، کتابخانه استاندارد Go پکیج expvar را شامل میشود که جمعآوری و مشاهده معیارهای مختلف برنامه در زمان اجرا را آسان میکند.
در این بخش یاد خواهید گرفت:
چگونه از پکیج
expvarبرای مشاهده معیارهای برنامه در قالب JSON از طریق یک HTTP handler استفاده کنید.چه معیارهای پیشفرض برنامهای موجود هستند و چگونه معیارهای سفارشی برنامه خود را برای نظارت بر تعداد goroutineهای فعال و pool اتصالات پایگاه داده ایجاد کنید.
چگونه از middleware برای نظارت بر معیارهای سطح درخواست برنامه، از جمله تعداد کدهای وضعیت پاسخ HTTP مختلف استفاده کنید.