fix(log-drains): support Axiom edge domains and update Fluent Bit to 5.1

- Add an Axiom edge domain setting (default us-east-1) and use the /v1/ingest endpoint, so EU datasets work
- Remove the Highlight drain (service ended) and stop its running containers
- Update Fluent Bit from 2.0 to 5.1 and use the warn log level
- Restart running drains when the generated files change, with the new image pulled before the old container stops
- Show log drain validation errors under their fields

Closes #9898
This commit is contained in:
Andras Bacsai committed 2026-10-27 17:41:50 +01:00
1 parent 18a85d37ba
commit 101444b8ca
19 files changed
+529 -112

No files matched your search

@@ -0,0 +1,22 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::table('server_settings', function (Blueprint $table) {
$table->string('logdrain_axiom_domain')->nullable()->default('us-east-1.aws.edge.axiom.co');
});
}
public function down(): void
{
Schema::table('server_settings', function (Blueprint $table) {
$table->dropColumn('logdrain_axiom_domain');
});
}
};
@@ -0,0 +1,43 @@
<?php
use App\Actions\Server\StopLogDrain;
use App\Models\Server;
use App\Models\ServerSetting;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Schema;
/**
* Highlight.io ended its hosted service on 2026-02-28, so its log drain can no longer deliver logs.
*/
return new class extends Migration
{
public function up(): void
{
if (! Schema::hasColumn('server_settings', 'is_logdrain_highlight_enabled')) {
return;
}
try {
$serverIds = ServerSetting::query()->where('is_logdrain_highlight_enabled', true)->pluck('server_id');
Server::query()->whereIn('id', $serverIds)->get()
->reject(fn (Server $server) => $server->isTransferredAway())
->each(fn (Server $server) => StopLogDrain::dispatch($server));
} catch (Throwable $e) {
Log::warning('Could not queue the removal of Highlight log drain containers: '.$e->getMessage());
}
Schema::table('server_settings', function (Blueprint $table) {
$table->dropColumn(['is_logdrain_highlight_enabled', 'logdrain_highlight_project_id']);
});
}
public function down(): void
{
Schema::table('server_settings', function (Blueprint $table) {
$table->boolean('is_logdrain_highlight_enabled')->default(false);
$table->string('logdrain_highlight_project_id')->nullable();
});
}
};