Track more statuses and add redis fallback

This commit is contained in:
DariusIII
2026-04-13 12:37:32 +02:00
parent 51d8a049ed
commit e89d719534
28 changed files with 1259 additions and 75 deletions
+103
View File
@@ -0,0 +1,103 @@
<?php
use Illuminate\Support\Str;
return [
/*
|--------------------------------------------------------------------------
| Default Cache Store
|--------------------------------------------------------------------------
|
| Use "failover_redis_file" to keep using Redis when it is up, and
| automatically fall back to the file store when Redis is down (DNS/connect).
|
*/
'default' => env('CACHE_STORE', 'database'),
'stores' => [
'array' => [
'driver' => 'array',
'serialize' => false,
],
'session' => [
'driver' => 'session',
'key' => env('SESSION_CACHE_KEY', '_cache'),
],
'database' => [
'driver' => 'database',
'connection' => env('DB_CACHE_CONNECTION'),
'table' => env('DB_CACHE_TABLE', 'cache'),
'lock_connection' => env('DB_CACHE_LOCK_CONNECTION'),
'lock_table' => env('DB_CACHE_LOCK_TABLE'),
],
'file' => [
'driver' => 'file',
'path' => storage_path('framework/cache/data'),
'lock_path' => storage_path('framework/cache/data'),
],
'memcached' => [
'driver' => 'memcached',
'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
'sasl' => [
env('MEMCACHED_USERNAME'),
env('MEMCACHED_PASSWORD'),
],
'options' => [
// Memcached::OPT_CONNECT_TIMEOUT => 2000,
],
'servers' => [
[
'host' => env('MEMCACHED_HOST', '127.0.0.1'),
'port' => env('MEMCACHED_PORT', 11211),
'weight' => 100,
],
],
],
'redis' => [
'driver' => 'redis',
'connection' => env('REDIS_CACHE_CONNECTION', 'cache'),
'lock_connection' => env('REDIS_CACHE_LOCK_CONNECTION', 'default'),
],
'dynamodb' => [
'driver' => 'dynamodb',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
'endpoint' => env('DYNAMODB_ENDPOINT'),
],
'octane' => [
'driver' => 'octane',
],
'failover' => [
'driver' => 'failover',
'stores' => [
'database',
'array',
],
],
'failover_redis_file' => [
'driver' => 'failover',
'stores' => [
'redis',
'file',
],
],
],
'prefix' => env('CACHE_PREFIX', Str::slug((string) env('APP_NAME', 'laravel')).'-cache-'),
];
+6
View File
@@ -87,6 +87,8 @@ return [
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_DB', 0),
'timeout' => (float) env('REDIS_CONNECT_TIMEOUT', 2.0),
'read_timeout' => (float) env('REDIS_READ_TIMEOUT', 2.0),
],
'cache' => [
'url' => env('REDIS_URL'),
@@ -95,6 +97,8 @@ return [
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_CACHE_DB', 1),
'timeout' => (float) env('REDIS_CONNECT_TIMEOUT', 2.0),
'read_timeout' => (float) env('REDIS_READ_TIMEOUT', 2.0),
],
'session' => [
'url' => env('REDIS_URL'),
@@ -103,6 +107,8 @@ return [
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_CACHE_DB', 2),
'timeout' => (float) env('REDIS_CONNECT_TIMEOUT', 2.0),
'read_timeout' => (float) env('REDIS_READ_TIMEOUT', 2.0),
],
],
+2
View File
@@ -25,4 +25,6 @@ return [
'tmp_unzip_path' => env('TEMP_UNZIP_PATH', storage_path('tmp/unzip/')),
'nzb_import_folder' => env('NZB_IMPORT_FOLDER'),
'nzb_upload_folder' => env('NZB_UPLOAD_FOLDER'),
'redis_fast_degrade' => (bool) env('REDIS_FAST_DEGRADE', true),
'redis_tcp_check_seconds' => (float) env('REDIS_TCP_CHECK_SECONDS', 0.2),
];
+19
View File
@@ -0,0 +1,19 @@
<?php
declare(strict_types=1);
return [
'disk' => [
'mount_points' => array_filter(array_map('trim', explode(',', (string) env('STATUS_PROBE_DISK_MOUNT_POINTS', '/')))),
'warning_threshold_gb' => (float) env('STATUS_PROBE_DISK_WARNING_THRESHOLD_GB', 5),
'critical_threshold_gb' => (float) env('STATUS_PROBE_DISK_CRITICAL_THRESHOLD_GB', 1),
],
'nntp' => [
'check_alternate' => (bool) env('STATUS_PROBE_NNTP_CHECK_ALTERNATE', false),
'timeout_seconds' => (int) env('STATUS_PROBE_NNTP_TIMEOUT_SECONDS', 10),
],
'redis' => [
'probe' => (bool) env('STATUS_PROBE_REDIS', true),
'only_when_used' => (bool) env('STATUS_PROBE_REDIS_ONLY_WHEN_USED', true),
],
];