المقدمة #
Laravel Pulse هو حل الرصد الأول من Laravel الذي يوفّر رؤى فورية حول أداء التطبيق، قوائم الانتظار، التخزين المؤقت، استعلامات قاعدة البيانات، والمزيد. يأتي مع لوحة تحكم جميلة مبنية على Tailwind CSS وLivewire، مما يسهل اكتشاف نقاط الاختناق دون مغادرة بيئة التطوير.
المتطلبات المسبقة #
- Laravel 10 أو أعلى
- PHP 8.1 أو أحدث
- اتصال بقاعدة بيانات (MySQL, PostgreSQL, SQLite، إلخ)
1. التثبيت #
نفّذ أمر Composer لجلب الحزمة إلى مشروعك:
composer require laravel/pulse
بعد التثبيت، قم بنشر الأصول وتشغيل التر migration الذي ينشئ جدول pulse_entries:
php artisan pulse:install
php artisan migrate
أمر التثبيت يسجِّل أيضًا موفِّر الخدمة Pulse وينشر عرض لوحة التحكم.
2. الإعداد #
Pulse يعمل مباشرةً، لكن يمكنك تعديل ما يُسجَّل في ملف config/pulse.php.
<?php
return [
// عدد الأيام التي تُحتفظ فيها بسجلات Pulse.
'recorders' => [
\Laravel\Pulse\Recorders\QueueRecorder::class => [
'max_attempts' => 3,
],
\Laravel\Pulse\Recorders\CacheRecorder::class,
\Laravel\Pulse\Recorders\DbQueryRecorder::class,
// أضف أو احذف المسجلات حسب الحاجة.
],
'storage' => [
'driver' => env('PULSE_STORAGE_DRIVER', 'database'),
],
];
يمكنك أيضًا تعيين المتغيّر البيئي PULSE_STORAGE_DRIVER إلى redis إذا كنت تفضّل التخزين في Redis.
3. الوصول إلى لوحة التحكم #
Pulse يُسجِّل مسارًا على /pulse. افتراضيًا، يُحمى هذا المسار بمجموعة middleware web وحارس المصادقة في Laravel.
// routes/web.php
Route::middleware(['web', 'auth'])->group(function () {
Route::get('/pulse', \Laravel\Pulse\Http\Controllers\DashboardController::class)
->name('pulse.dashboard');
});
بعد تسجيل الدخول، افتح http://your-app.test/pulse لتشاهد الرسوم البيانية الخاصة بـ:
- تأخير ومهام قوائم الانتظار الفاشلة
- الضربات الناجحة والفاشلة للتخزين المؤقت
- زمن استجابة طلبات HTTP
- أداء استعلامات قاعدة البيانات
- الاستثناءات والمزيد
4. مسجلات مخصَّصة #
إذا أردت مراقبة شيء خاص، أنشئ مسجلًا مخصَّصًا:
php artisan make:recorder CustomMetricRecorder
<?php
namespace App\Recorders;
use Laravel\Pulse\Recorders\Recorder;
class CustomMetricRecorder extends Recorder
{
public function record(): void
{
// مثال: تسجيل عدد المستخدمين النشطين كل دقيقة
$active = \App\Models\User::where('last_activity', '>=', now()->subMinutes(5))->count();
$this->store('custom_metrics', ['active_users' => $active]);
}
}
أضف المسجل الجديد إلى config/pulse.php وسيظهر تلقائيًا في لوحة التحكم.
5. اعتبارات الإنتاج #
- الاحتفاظ: عدّل
pulse.retentionلتحديد مدة حفظ البيانات. - الأداء: المسجلات تعمل بجدولة (دقيقة افتراضيًا). هي خفيفة، لكن تجنّب الاستعلامات الثقيلة داخل
record(). - الأمان: حافظ على لوحة التحكم خلف المصادقة وفكّر في تقييد الوصول حسب IP.
الخاتمة #
Laravel Pulse يمنحك رؤية فورية لصحة تطبيق Laravel الخاص بك دون إعداد معقّد. عبر تثبيته، تكوينه، وإمكانية تمديده بمسجلات مخصَّصة، يمكنك اكتشاف مشاكل الأداء مسبقًا والحفاظ على تشغيل تطبيقك بسلاسة.
ملخص سريع #
| الخطوة | الأمر |
|---|---|
| التثبيت | composer require laravel/pulse |
| النشر والترحيل | php artisan pulse:install && php artisan migrate |
| فتح لوحة التحكم | زيارة /pulse (بعد المصادقة) |
| إضافة مسجل مخصَّص | php artisan make:recorder MyRecorder |
مراقبة سعيدة!