در ادامه مطلب قبلی به بررسی و پیاده سازی یک سیستم مدیریت عملکرد نرم افزار یا APM خواهیم پرداخت .
همانطور که در بخش قبل اشاره کردیم، Elastic APM از بخشهای مختلفی تشکیل شده است، از جمله APM Server و APM Agents .APM Agents مسئول دریافت دادههای عملکرد برنامهها است و APM Agents کتابخانههایی هستند که به توسعه دهندگان امکان نصب و استفاده آسان از ابزارهای Elastic APM را میدهند.
کتابخانه Elastic APM Agent برای زبان PHP هم منتشر شده است که امکان نصب و استفاده آسان در برنامههای PHP فراهم میکند. شما از طریق این کتابخانه بدون اضافه کردن خطی کد در منطق برنامه، امکان دارید عملکرد اپلیکیشن خود را نظارت کنید.
از قابلیت های ارائه شده می توان به کنترل بر زمان اجرا، زمان پاسخ، تعداد درخواستها و خطاهای برنامه را بررسی کنید. همچنین، این ابزار به شما امکان میدهد تا به صورت دقیق درک کنید کدام بخشها در عملکرد برنامه تأثیر میگذارند و نقاط ضعف و بهبودپذیری را شناسایی کنید.
این کتابخانه از فریمورکهای مختلفی مانند Laravel، Symfony، CodeIgniter و Zend پشتیبانی می کند. با اضافه کردن کتابخانه APM Agent به برنامه PHP خود، شما میتوانید ارتباط بین درخواستهای ورودی، خروجیها و بخشهای مختلف کد را پیگیری کنید و مشکلات عملکردی را تجزیه و تحلیل کنید.
استفاده از Elastic APM Agent برای PHP بسیار ساده است. شما فقط باید کتابخانه APM Agent را در برنامه PHP خود نصب و پیکربندی کنید و سپس میتوانید از توابع و APIهای ارائه شده توسط کتابخانه برای انتقال اطلاعات عملکردی به APM Server استفاده کنید.
بیایید به پیاده سازی یک مدل واقعی بپردازیم :
wget https://github.com/elastic/apm-agent-php/releases/download/v1.8.2/apm-agent-php_1.8.2_all.deb dpkg -i /usr/src/apm-agent-php.deb
و در نهایت افزودن تنظیمات مربوط به APM به php.ini
elastic_apm.service_name="my-service-name" elastic_apm.secret_token="xxxxxxx" elastic_apm.server_url="http://your apm url" elastic_apm.environment="my-environment"
RUN wget -O /usr/src/apm-agent-php.deb https://github.com/elastic/apm-agent-php/releases/download/v1.8.2/apm-agent-php_1.8.2_all.deb \ && dpkg -i /usr/src/apm-agent-php.deb \ && rm /usr/src/apm-agent-php.deb
ELASTIC_APM_SECRET_TOKEN="xxxxx" ELASTIC_APM_SERVICE_NAME="my-service" ELASTIC_APM_API_KEY="xxxxxxx" ELASTIC_APM_TRANSACTION_MAX_SPANS=1000 ELASTIC_APM_TRANSACTION_SAMPLE_RATE=1.0 ELASTIC_APM_ENVIRONMENT="dev" ELASTIC_APM_ENABLED="true" ELASTIC_APM_VERIFY_SERVER_CERT="false" ELASTIC_APM_LOG_LEVEL="WARNING" ELASTIC_APM_LOG_LEVEL_SYSLOG="TRACE" ELASTIC_APM_LOG_LEVEL_STDERR="WARNING"
Observability → APM → Services
نمونه پیاده سازی شده در لینک زیر قابل مشاهده می باشد :