- How do I monitor jobs across Redis, SQS, database, and sync queues in Laravel with Yammi?
- Yammi automatically tracks jobs across all Laravel queue drivers without requiring driver-specific configurations. Simply install the package, run the migration, and start your queue workers. Yammi listens to Laravel’s built-in queue events (JobProcessed, JobFailed, etc.) and records job lifecycle data in its own database table, ensuring consistency regardless of your queue driver.
- Will Yammi slow down my job processing in production?
- Yammi is designed for minimal overhead. It only captures job metadata (start/end times, retries, failures) via Laravel’s event system, adding negligible latency. For critical jobs, you can exclude them from monitoring using `Yammi::ignore()` to avoid any performance impact. Benchmark your specific workload to confirm, but most users report sub-millisecond overhead.
- Can I set up alerts for failed jobs or long-running tasks in Slack or PagerDuty?
- Yes, Yammi supports alerts via Slack, email, PagerDuty, Opsgenie, and custom webhooks. Configure thresholds in the dashboard (e.g., alert after 3 retries or if a job runs >5 minutes). Alerts include job context like payload, worker ID, and failure fingerprints to help diagnose issues quickly. No additional infrastructure is required beyond your existing alerting systems.
- How does Yammi handle dead-letter queue (DLQ) management?
- Yammi provides a built-in dead-letter queue interface in the dashboard where you can view, retry, or manually edit failed jobs. You can configure auto-purging policies (e.g., delete jobs older than 30 days) or manually review them. Failed jobs are grouped by fingerprint to surface recurring issues, and you can bulk-operate on DLQ entries directly from the UI.
- Does Yammi work with Laravel 11 or 12, and what if I’m using a custom queue driver?
- Yammi officially supports Laravel 10.x, 11.x, 12.x, and 13.x. For custom queue drivers, ensure they dispatch Laravel’s standard queue events (JobProcessed, JobFailed). Yammi relies on these events, so as long as your driver emits them, it will work. Test with your driver in a staging environment to confirm compatibility.
- How do I exclude certain jobs from Yammi monitoring?
- Use the `Yammi::ignore()` method in your job class’s `handle()` method or constructor to exclude specific jobs. For example, `Yammi::ignore();` skips monitoring entirely. This is useful for non-critical jobs or those with sensitive payloads. You can also configure global exclusions in the `config/yammi.php` file if needed.
- Can Yammi detect anomalies like sudden spikes in job duration or failure rates?
- Yes, Yammi includes anomaly detection for job durations and failure patterns. It compares job execution times against historical baselines to flag outliers (e.g., a job that normally runs in 100ms suddenly takes 5 seconds). You can adjust sensitivity thresholds in the settings UI. Alerts are triggered automatically when anomalies exceed configured limits.
- What database does Yammi use, and can I use SQLite for development?
- Yammi stores job metadata in your existing Laravel database (MySQL, PostgreSQL, or SQLite). The package includes a single migration to create the required tables. SQLite is fully supported for development, but for production, use a dedicated database like MySQL or PostgreSQL. Yammi’s queries are optimized for performance, even with high job volumes.
- How do I integrate Yammi with existing error-tracking tools like Sentry?
- Yammi doesn’t replace Sentry but complements it by providing queue-specific context. You can forward Yammi’s failure alerts to Sentry via webhooks or manually correlate Yammi’s job IDs with Sentry events. For deeper integration, extend Yammi’s alert system to include Sentry API calls in your alert configuration (e.g., `config/yammi.php`).
- Are there alternatives to Yammi for Laravel queue monitoring, and why should I choose it?
- Alternatives include Hordeby/QueueMonitor or custom solutions using Laravel Scout or third-party tools like Datadog. Yammi stands out for its all-in-one approach: it handles all queue drivers natively, includes a polished dashboard, supports proactive alerts, and requires no extra infrastructure. Unlike some alternatives, Yammi doesn’t require Redis or external services, making it easier to deploy and maintain.