romalytar/yammi-jobs-monitoring-laravel
Real-time queue monitoring & observability for Laravel. Dashboard for job runs, retries, failures, DLQ, stats, worker heartbeat, scheduled task outcomes, duration anomalies, and alerts (Slack/email/webhooks). Works with Redis, SQS, database, or sync—no extra infra.
JobProcessed, JobFailed) for minimal overhead, avoiding custom hooks or middleware.YammiJob trait.| Risk Area | Mitigation Strategy |
|---|---|
| Performance Overhead | Benchmark job processing latency with/without Yammi; optimize via Yammi::ignore() for non-critical jobs. |
| Database Load | Monitor query performance; consider read replicas for dashboard queries. |
| Alert Fatigue | Start with conservative thresholds (e.g., 5 retries) and refine based on false positives. |
| Driver-Specific Quirks | Test with all target queue drivers (e.g., SQS visibility timeouts may affect heartbeat accuracy). |
| Long-Running Jobs | Configure yammi.job_timeout to match expected job durations (default: 5m). |
php artisan queue:work).illuminate/queue events).YammiJob trait.YammiJob to all critical jobs.yammi.job_timeout and anomaly detection.pdo, mbstring, and driver-specific extensions (e.g., redis for Redis queue)..env per environment (e.g., YAMMI_ALERT_SLACK_WEBHOOK).YAMMI_ALERT_ENABLED=false).composer require romalytar/yammi-jobs-monitoring-laravel
php artisan vendor:publish --provider="RomaLytar\Yammi\YammiServiceProvider"
php artisan migrate
config/yammi.php for:
use RomaLytar\Yammi\Traits\YammiJob; to critical job classes.class ProcessOrder implements ShouldQueue
{
use YammiJob; // Auto-instrumented
// ...
}
yammi_jobs table.created_at, queue).yammi.php in a config management tool (e.g., Ansible, Terraform).composer.json if stability is critical.YammiJob trait usage).php artisan yammi:clear (reset test data).Yammi::ignore() to exclude specific jobs.yammi_jobs table growth; archive old data if needed.yammi.worker_heartbeat if workers are distributed across regions.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Database outage | Dashboard/unavailable alerts | Use a secondary DB replica. |
| Queue driver failure | Incomplete job tracking | Fallback to sync driver |
How can I help you explore Laravel packages today?