mirror of
https://github.com/vitodeploy/vito.git
synced 2025-04-19 18:01:37 +00:00
32 lines
942 B
PHP
32 lines
942 B
PHP
<?php
|
|
|
|
namespace App\Console\Commands;
|
|
|
|
use App\Models\Server;
|
|
use Illuminate\Console\Command;
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
|
|
class GetMetricsCommand extends Command
|
|
{
|
|
protected $signature = 'metrics:get';
|
|
|
|
protected $description = 'Get server metrics';
|
|
|
|
public function handle(): void
|
|
{
|
|
$checkedMetrics = 0;
|
|
Server::query()->whereHas('services', function (Builder $query) {
|
|
$query->where('type', 'monitoring')
|
|
->where('name', 'remote-monitor');
|
|
})->chunk(10, function ($servers) use (&$checkedMetrics) {
|
|
/** @var Server $server */
|
|
foreach ($servers as $server) {
|
|
$info = $server->os()->resourceInfo();
|
|
$server->metrics()->create(array_merge($info, ['server_id' => $server->id]));
|
|
$checkedMetrics++;
|
|
}
|
|
});
|
|
$this->info("Checked $checkedMetrics metrics");
|
|
}
|
|
}
|