Configuration
Configuration
Database Configuration
Configure which database connection to use for monitoring data:
'database' => [
'connection' => env('QUEUE_MONITOR_DB_CONNECTION'),
'table_prefix' => 'queue_monitor_',
],
This allows you to store monitoring data separately from your application data if desired.
Payload Storage
Control how job payloads are stored for replay functionality:
'storage' => [
// Store complete job payload for replay capability
'store_payload' => env('QUEUE_MONITOR_STORE_PAYLOAD', true),
// Maximum payload size in bytes (default: 64KB)
'payload_max_size' => 65535,
],
Important: Payload storage is required for job replay. If disabled, replay functionality will not work.
Data Retention
Configure automatic cleanup of old job records:
'retention' => [
// Number of days to retain job records
'days' => 30,
// Which statuses to prune (empty array = prune all statuses)
'prune_statuses' => ['completed'],
],
Run pruning manually or via scheduled task:
// In app/Console/Kernel.php
$schedule->command('queue-monitor:prune')->daily();
Worker Detection
Customize how workers and servers are identified:
'worker_detection' => [
// Custom callable for determining server name
// If null, uses gethostname()
'server_name_callable' => null,
// Enable Horizon detection
'horizon_detection' => true,
],
Example custom server name:
'server_name_callable' => function() {
return config('app.server_name', gethostname());
},
REST API
Configure the REST API for external integrations:
'api' => [
'enabled' => env('QUEUE_MONITOR_API_ENABLED', true),
'prefix' => 'api/queue-monitor',
'middleware' => ['api'],
'rate_limit' => '60,1', // 60 requests per minute
],
You can add custom middleware for authentication:
'middleware' => ['api', 'auth:sanctum'],
Repository Bindings
Override default repository implementations:
'repositories' => [
JobMonitorRepositoryContract::class => CustomJobMonitorRepository::class,
TagRepositoryContract::class => CustomTagRepository::class,
StatisticsRepositoryContract::class => CustomStatisticsRepository::class,
],
Action Bindings
Override default action implementations:
'actions' => [
'record_job_queued' => CustomRecordJobQueuedAction::class,
'replay_job' => CustomReplayJobAction::class,
// ... more actions
],