New Relic برای وردپرس چطور پیکربندی میشود؟
راهنمای جامع پیکربندی New Relic در وردپرس؛ بررسی APM، transaction، error، dashboard و نکات کلیدی برای مانیتورینگ حرفهای Performance و شناسایی گلوگاه در تولید
New Relic برای وردپرس چطور پیکربندی میشود؟ این پرسشی است که در مرز میان پایش زیرساخت و تحلیل عملکرد برنامه قرار میگیرد. New Relic یکی از شناختهشدهترین پلتفرمهای APM (Application Performance Monitoring - پایش عملکرد برنامه) است که در اکوسیستم وردپرس نیز جایگاه ویژهای یافته است. این پلتفرم با نصب یک agent روی سرور، دادههای عملکرد را در سطح اپلیکیشن، دیتابیس، و زیرساخت جمعآوری و در داشبورد تحت وب نمایش میدهد. برخلاف ابزارهای صرفاً سرور محور، New Relic تراکنشهای کاربر را ردیابی میکند و نشان میدهد کدام درخواست، کدام کوئری، و کدام بخش کد، بیشترین زمان را مصرف میکند. در بستر وردپرس، پیکربندی New Relic شامل نصب PHP Agent، تنظیم فایل INI، ادغام با هوکهای وردپرس، و توجه به مسائل امنیتی است. این ابزار بهویژه در سایتهای پرترافیک و فروشگاههای ووکامرس که عملکرد مستقیماً بر درآمد اثر میگذارد، ارزش بالایی دارد. چالشهای اصلی شامل سربار agent در محیط تولید، پیچیدگی راهاندازی روی هاستهای اشتراکی، و نیاز به تفسیر دادههای پیچیده است. در این نوشتار، از معرفی New Relic تا پیکربندی گامبهگام در وردپرس را بررسی میکنیم.
نخستینباری که New Relic را روی یک فروشگاه ووکامرس پیکربندی کردم، متوجه شدم که یکی از افزونههای جانبی در هر درخواست، دهها کوئری اضافی اجرا میکند. این کشف، فقط با یک داشبورد ساده بهدست آمد و به صرفهجویی چند ساعت در هفته منجر شد. در این نوشتار، تجربههای عملی پیکربندی New Relic در وردپرس را با شما به اشتراک میگذارم.
New Relic چیست و چه مسئلهای را حل میکند؟
New Relic یک پلتفرم APM (Application Performance Monitoring - پایش عملکرد برنامه) است که برای پایش عملکرد برنامههای وب در محیط تولید طراحی شده است. این پلتفرم با نصب یک agent روی سرور، دادههای عملکرد را در سطوح مختلف جمعآوری میکند:
- سطح اپلیکیشن: زمان پاسخ هر تراکنش.
- سطح دیتابیس: کوئریهای کند و تعداد اجرای آنها.
- سطح زیرساخت: مصرف CPU، حافظه، و دیسک.
- سطح تجربه کاربر: زمان بارگذاری در مرورگر.
مسئله اصلی که New Relic حل میکند، شناسایی گلوگاههای عملکرد در محیط تولید است. برخلاف ابزارهای صرفاً سرور محور که فقط معیارهای سختافزاری را نشان میدهند، New Relic تراکنشهای کاربر را ردیابی میکند و نشان میدهد کدام درخواست، کدام کوئری، و کدام بخش کد، بیشترین زمان را مصرف میکند.
برای درک عمیقتر مفاهیم عملکرد، بهینهسازی عملکرد بکاند را ببینید.
New Relic یک «دوربین همهجانبه» است: از زیرساخت تا تجربه کاربر، همه چیز را در یک داشبورد نشان میدهد. همین جامعیت، آن را برای تیمهای حرفهای ضروری میکند.
چرا New Relic برای وردپرس مفید است؟
وردپرس بهطور پیشفرض ابزارهای پایش عملکرد محدودی دارد. WP_DEBUG فقط خطاها را در لاگ ذخیره میکند و ابزارهایی مانند Query Monitor فقط در محیط توسعه قابل استفادهاند. New Relic چهار مزیت اصلی برای وردپرس فراهم میکند:
- پایش مداوم در تولید: بدون سربار سنگین.
- شناسایی تراکنشهای کند: با جزئیات دقیق.
- تحلیل کوئریهای MySQL: شناسایی کوئریهای کند و بدون ایندکس.
- هشدار خودکار: برای زمان پاسخ بالاتر از آستانه.
- پایش تجربه کاربر: با Browser Agent.
- یکپارچگی با Slack و ایمیل: برای هشدارها.
در پروژههای واقعی، New Relic بهویژه در فروشگاههای ووکامرس که عملکرد مستقیماً بر نرخ تبدیل اثر میگذارد، ارزش بالایی دارد. برای درک عمیقتر، نقش سرعت سایت در CRO را ببینید.
معماری New Relic
New Relic از چهار جزء اصلی تشکیل شده است:
- PHP Agent: یک extension PHP که روی سرور نصب میشود و دادهها را جمعآوری میکند.
- Daemon: سرویس پسزمینه که دادهها را از agent دریافت و به API ارسال میکند.
- Browser Agent: اسکریپت JavaScript که در صفحات سایت تزریق میشود.
- سرویس ابری: دادهها را ذخیره، تحلیل، و در داشبورد نمایش میدهد.
این معماری، امکان پایش جامع از سرور تا مرورگر را فراهم میکند. برای درک عمیقتر، سرور چیست و چگونه کار میکند را ببینید.
پیشنیازها و محدودیتها
قبل از پیکربندی New Relic، چند پیشنیاز ضروری است:
- دسترسی روت یا sudo: برای نصب extension PHP.
- سرور اختصاصی یا VPS: New Relic روی هاست اشتراکی معمولاً پشتیبانی نمیشود.
- حساب New Relic: نسخه رایگان محدود و نسخههای پولی.
- License Key: برای اتصال agent به حساب.
- PHP نسخه سازگار: بسته به نسخه agent، PHP 7.4 یا بالاتر.
برای درک عمیقتر گزینههای هاست، بهترین هاست برای وردپرس را ببینید.
نصب PHP Agent
نصب New Relic بستگی به سیستمعامل و نسخه PHP دارد. یک نمونه برای Ubuntu با PHP 8.2:
# افزودن مخزن New Relic
curl -Ls https://download.newrelic.com/php_agent/release/newrelic-php5.list | sudo tee /etc/apt/sources.list.d/newrelic.list
# افزودن کلید GPG
curl -Ls https://download.newrelic.com/php_agent/release/newrelic-php5.key | sudo apt-key add -
# نصب
sudo apt update
sudo apt install newrelic-php5
پس از نصب، از اسکریپت رسمی برای پیکربندی استفاده کنید:
sudo newrelic-install install
در حین نصب، License Key و نام اپلیکیشن را وارد کنید. برای درک عمیقتر، مدیریت سرور Linux را ببینید.
پیکربندی فایل INI
پس از نصب، فایل /etc/php/8.2/fpm/conf.d/newrelic.ini ایجاد میشود. تنظیمات اصلی:
newrelic.license = "YOUR_LICENSE_KEY"
newrelic.appname = "my-wordpress-site"
newrelic.enabled = true
newrelic.daemon.app_connect_timeout = 5s
newrelic.transaction_tracer.enabled = true
newrelic.transaction_tracer.detail = 1
newrelic.transaction_tracer.slow_sql = true
newrelic.browser_monitoring.auto_instrument = true
newrelic.slow_sql.enabled = true
newrelic.slow_sql.threshold = 500
پس از تغییر، سرویس PHP را ریاستارت کنید:
sudo systemctl restart php8.2-fpm
نکات مهم:
transaction_tracer.detailسطح جزئیات را تعیین میکند (۰ تا ۲).slow_sql.thresholdآستانه کوئری کند (میلیثانیه).browser_monitoring.auto_instrumentتزریق خودکار Browser Agent.
برای درک عمیقتر تنظیمات، مشخصات سرور وردپرس را ببینید.
ادغام با وردپرس
برای ادغام کامل با وردپرس، توصیه میشود نام تراکنشها را با هوکهای وردپرس مرتبط کنید:
add_action( 'template_redirect', function() {
if ( function_exists( 'newrelic_name_transaction' ) ) {
if ( is_singular() ) {
newrelic_name_transaction( 'single:' . get_post_type() );
} elseif ( is_archive() ) {
newrelic_name_transaction( 'archive:' . get_post_type() );
} elseif ( is_front_page() ) {
newrelic_name_transaction( 'home' );
}
}
} );
این الگو، تراکنشها را در داشبورد بر اساس نوع صفحه دستهبندی میکند و تحلیل را آسانتر میسازد. برای درک عمیقتر، هوکهای وردپرس را ببینید.
ردیابی تراکنشها
New Relic هر درخواست HTTP را بهعنوان یک «تراکنش» ردیابی میکند. در داشبورد، میتوانید ببینید:
- زمان پاسخ هر تراکنش.
- توابع کند در مسیر اجرا.
- کوئریهای کند اجراشده در هر تراکنش.
- درخواستهای HTTP خارجی.
- خطاهای PHP.
این سطح از جزئیات، برای شناسایی ریشه کندی ضروری است. برای درک عمیقتر، عیبیابی مشکلات سرعت سایت را ببینید.
تحلیل کوئریهای دیتابیس
یکی از قویترین قابلیتهای New Relic، تحلیل کوئریهای دیتابیس است. New Relic بهطور خودکار کوئریهای کند را ثبت میکند و نشان میدهد:
- کدام کوئری بیشترین زمان را مصرف میکند.
- کدام کوئری بیشترین تعداد اجرا را دارد.
- کدام کوئری بدون ایندکس اجرا میشود.
- کدام افزونه یا هوک، مسئول کوئری است.
برای درک عمیقتر، بهینهسازی کوئریهای MySQL را ببینید.
پیکربندی برای ووکامرس
ووکامرس یکی از محیطهایی است که New Relic بیشترین ارزش را دارد. نکات پیکربندی:
- نامگذاری تراکنشها بر اساس نوع صفحه: single-product، cart، checkout.
- ردیابی درگاههای پرداخت: زمان پاسخ API خارجی.
- پایش کوئریهای سفارش: جداول پرترافیک ووکامرس.
- هشدار برای سبد خرید و پرداخت: اگر زمان پاسخ از حد آستانه فراتر رفت.
add_action( 'template_redirect', function() {
if ( function_exists( 'newrelic_name_transaction' ) && function_exists( 'is_woocommerce' ) ) {
if ( is_product() ) {
newrelic_name_transaction( 'wc:product' );
} elseif ( is_cart() ) {
newrelic_name_transaction( 'wc:cart' );
} elseif ( is_checkout() ) {
newrelic_name_transaction( 'wc:checkout' );
}
}
} );
برای درک عمیقتر، رفع خطاهای ووکامرس را ببینید.
مدیریت در محیط تولید
New Relic در محیط تولید با چند نکته کلیدی:
- سربار agent: حدود ۱ تا ۳ درصد؛ قابل قبول برای اکثر پروژهها.
- Browser Agent: تزریق اسکریپت در صفحات؛ در برخی موارد باید غیرفعال شود.
- نرخ نمونهگیری: برای ترافیک بالا، نمونهگیری انتخابی.
- ذخیرهسازی داده: طبق برنامه اشتراک.
- هشدارها: برای زمان پاسخ، نرخ خطا، و throughput.
- امنیت License Key: در متغیرهای محیطی نگه دارید.
برای درک عمیقتر امنیت سرور، امنیت سرور را ببینید.
اشتباهات رایج در پیکربندی New Relic
- نصب روی هاست اشتراکی: New Relic به دسترسی روت نیاز دارد.
- فراموش کردن ریاستارت PHP: تغییرات بدون ریاستارت اعمال نمیشوند.
- عدم تنظیم appname: همه تراکنشها در یک دسته جمع میشوند.
- فعال بودن Browser Agent روی همه صفحات: میتواند با کش و CSP تداخل کند.
- نادیده گرفتن slow_sql.threshold: کوئریهای کند ثبت نمیشوند.
- عدم ادغام با وردپرس: تراکنشها در داشبورد نامفهوم میشوند.
- نادیده گرفتن خطاهای PHP: New Relic میتواند خطاها را ثبت کند اما باید فعال باشد.
- عدم ایجاد baseline: بدون داده پایه، تشخیص رگرسیون دشوار است.
- تزریق اسکریپت در پاسخهای JSON: Browser Agent میتواند پاسخ AJAX را بشکند.
- عدم آموزش تیم: دادههای پیچیده New Relic بدون آموزش، بیفایدهاند.
برای مرور خطاهای مشابه، اشتباهات رایج در کدنویسی وردپرس را ببینید.
پرسشهای پرتکرار درباره New Relic
New Relic چیست و چه کاربردی دارد؟ یک پلتفرم APM برای پایش عملکرد برنامه در محیط تولید، با پشتیبانی از تراکنشها، کوئریها، و تجربه کاربر.
آیا New Relic رایگان است؟ نسخه رایگان محدود و نسخههای پولی. برای پروژههای کوچک، نسخه رایگان کافی است.
تفاوت New Relic و Tideways چیست؟ New Relic جامعتر است و زیرساخت را هم پایش میکند؛ Tideways بر پروفایلینگ دقیق کد PHP تمرکز دارد. برای مرور، Tideways برای وردپرس را ببینید.
آیا New Relic روی عملکرد سایت تأثیر دارد؟ سربار آن حدود ۱ تا ۳ درصد است که در محیط تولید قابل قبول است.
چطور New Relic را نصب کنم؟ از مخزن رسمی سیستمعامل و اسکریپت newrelic-install. برای مراحل کامل، مدیریت سرور Linux را ببینید.
آیا New Relic روی هاست اشتراکی کار میکند؟ معمولاً نه، نیازمند دسترسی روت است.
چطور Browser Agent را غیرفعال کنم؟ با تنظیم newrelic.browser_monitoring.auto_instrument = false یا حذف تزریق خودکار.
آیا New Relic خطاهای PHP را ثبت میکند؟ بله، با فعال بودن newrelic.error_collector.enabled.
برای مطالعه بیشتر درباره APM، صفحه Application performance management در ویکیپدیا مفید است.
خط پایان
New Relic یکی از آن ابزارهایی است که پس از پیکربندی، دید کاملی از عملکرد سایت در محیط تولید فراهم میکند. از زمان پاسخ تراکنشها تا کوئریهای کند دیتابیس، همه چیز در یک داشبورد یکپارچه قابل مشاهده است. پیکربندی آن نیازمند نصب PHP Agent، تنظیم فایل INI، و ادغام با هوکهای وردپرس است. برای فروشگاههای ووکامرس و سایتهای پرترافیک، New Relic میتواند تفاوت بین «حدس زدن گلوگاه» و «دیدن دقیق گلوگاه» را بسازد. اگر پروژه وردپرسی پیچیدهای دارید، این ابزار را جدی بگیرید.
اگر در پروژهای New Relic را پیکربندی کردهاید یا با چالشهایی روبهرو شدهاید، تجربه خود را در دیدگاهها بنویسید؛ بهخصوص اگر پیکربندی خاصی برای ووکامرس داشتهاید، این اطلاعات برای خواننده بعدی بسیار ارزشمند است.