Fire Tower: Моніторинг застосунків і конфігурацій

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 25 лютого, 2025
Залишитися в курсі актуальних версій Laravel і бути впевненим у стабільній роботі ваших додатків стало ще простіше з Fire Tower. Чи готові ви дізнатися, як цей потужний пакет може допомогти вам оперативно перевіряти стан ваших проєктів і звільнити час для нових ідей?
```html

В ідеальному світі всі наші проєкти, сайти для розробників, системи для клієнтів та інші Laravel-додатки завжди були б оновлені: на Laravel 12, PHP 8.4 та з останніми версіями всіх улюблених пакетів. Кожен додаток працював би бездоганно, зовнішні ETL-процеси надавали б правильні дані, а ми ніколи не забували б налаштувати змінні в нашому файлі .env

На жаль, у більшості з нас таких можливостей немає

Fire Tower пропонує простий у використанні пакет для Laravel, який інтегрується у ваш додаток і моніторить важливу інформацію за допомогою наших розширених перевірок та версій. За замовчуванням Fire Tower перевіряє, чи ви використовуєте останню версію Laravel та PHP, підтверджує, що режим налагодження вимкнено в Production, а також зауважує, якщо ви забули налаштувати конфігурацію Mail для електронних листів скидання пароля

Але це ще не все. Fire Tower дозволяє вам створювати власні унікальні перевірки. Чи потребує ваш додаток перевірки, чи знаходиться певний об'єкт у заданому діапазоні? Чи потрібно перевірити, що в колонці існує певна кількість рядків? Чи необхідно перевірити найновішу дату created_at у таблиці, щоб впевнитися, що ваш ETL-процес був виконаний? Усі ці перевірки можна легко створити й використовувати з Fire Tower

# Використання

# Хобіст

Якщо ви такі, як і я, то маєте безліч маленьких додатків, які ви створили для різних завдань, і вони не завжди отримують належну увагу. Безумовно, останній з них працює на Laravel 11, але що щодо того, що ви створили кілька років тому? Чи оновили ви його до 10?

А можливо, ви також маєте кілька Statamic-сайтів або кастомних додатків, створених для клієнтів, які можуть відставати в оновленнях?

Fire Tower дозволяє швидко бачити, яку конкретну версію пакету Composer використовують ваші додатки. Легко дізнайтеся, які з них потребують підтримки, і працюйте над їх оновленням

# Агентство

Кілька років тому я допомагав розробляти пакет Laravel, який на 99% був додатком Laravel. Його розгортали переважно як пакет, щоб спростити оновлення та надати деяку гнучкість для окремих додатків. Протягом кількох років ми зрозуміли, що оновлення попередніх клієнтів до нових версій стало проблемою. Ми намагалися вести таблиці та інші способи, щоб тримати все під контролем

Продукт, подібний до Fire Tower, заощадив би нам багато часу та зусиль. Щоб вибрати конкретні пакети для відображення на панелі, просто перейдіть на сторінку налаштувань команди та оберіть потрібні пакети

# Ціни

Fire Tower пропонує два тарифних плани: один для користувачів, які контролюють лише кілька додатків, та один для просунутих користувачів або агентств, що мають більше п'яти додатків. Професійний план також забезпечує розширений інтерфейс для управління додатками з кількома серверами

Отримайте 20% знижки на перший місяць, використавши код купону LARAVELNEWS. Цей купон дійсний до опівночі 25 лютого 2025 року

# Налаштування

# Інсталяція

Щоб розпочати, зареєструйтесь на Fire Tower та встановіть пакет Fire Tower у вашому додатку:

composer require krakero/firetower

Наступний крок – запустити інсталятор:

php artisan firetower:install

Інсталятор опублікує потрібний сервіс-провайдер і конфігураційний файл

Далі, ми створюємо додаток та вводимо ключі нашого акаунту та додатка у файл .env.

FIRETOWER_ACCOUNT_KEY="laravel-news-4ee4-838a-250aa0fb17f0"
FIRETOWER_APPLICATION_KEY="fire-tower-4181-936f-6f0f3f754ca3"

Коли все налаштовано, ви готові надіслати свій звіт:

php artisan firetower:report

Рекомендуємо запланувати виконання команди раз на тиждень. Докладніше про налаштування читайте в документації

# Користувацькі перевірки

Ми маємо команду artisan для створення перевірки:

php artisan make:firetower-check

Вона запитає вас про ім'я, а потім згенерує наступний файл:

<?php
 
namespace App\Checks;
 
use Krakero\FireTower\Checks\Check;
 
class EnsureNightlyDataLoadCheck extends Check
{
    public string $name = 'Моя нова перевірка';
 
    public string $description = 'Ця перевірка важливих даних';
 
    public function handle(): string
    {
 
        $this->pass();
 
        // Зауважте: Ці дані зберігаються на серверах Fire Tower.
        // БУДЬ ЛАСКА, НЕ НАДСИЛАЙТЕ ЖОДНИХ ЧУТЛИВИХ ДАНИХ.
        $this->data([
            'my_variable' => 8675309
        ]);
 
        return 'Успішно';
    }
}

Ми внесемо деякі швидкі зміни в нашу стандартну перевірку, щоб надіслати відповідні дані:

<?php
 
namespace App\Checks;
 
use Krakero\FireTower\Checks\Check;
use App\Models\Order;
 
class EnsureNightlyDataLoadCheck extends Check
{
    public string $name = 'Перевірка нічного ETL';
 
    public string $description = 'Перевіряє, що останні денні значення попродукції потрапили в додаток.';
 
    public function handle(): string
    {
        $order = Order::latest()->get();
 
        if ($order->created_at > now()->subDay()) {
            $this->pass();
 
            $this->data([
                'newest_order_date' => $order->created_at
            ]);
 
            return 'ПРОЙДЕНО';
        } else {
            $this->fail();
 
            return 'НЕПРОЙДЕНО';
        }
    }
}

Тепер нам потрібно додати нашу перевірку до файлу FireTowerServiceProvider.php:

<?php
 
namespace App\Providers;
 
use App\Checks\EnsureNightlyDataLoadCheck;
//...
 
class FireTowerServiceProvider extends ServiceProvider
{
    public function boot()
    {
        FireTower::checks(function () {
            return [
                DebugModeInProductionCheck::check(),
                LaravelVersionCheck::check(),
                PhpVersionCheck::check(),
                //MailConfigInProductionCheck::check(),
                //StripeKeyCheck::check()
                EnsureNightlyDataLoadCheck::check(),
            ];
        });
    }
}

Щоб дізнатися більше:

``````html

В ідеальному світі всі наші проєкти, сайти для розробників, системи для клієнтів та інші Laravel-додатки завжди були б оновлені: на Laravel 12, PHP 8.4 та з останніми версіями всіх улюблених пакетів. Кожен додаток працював би бездоганно, зовнішні ETL-процеси надавали б правильні дані, а ми ніколи не забували б налаштувати змінні в нашому файлі .env

На жаль, у більшості з нас таких можливостей немає

Fire Tower пропонує простий у використанні пакет для Laravel, який інтегрується у ваш додаток і моніторить важливу інформацію за допомогою наших розширених перевірок та версій. За замовчуванням Fire Tower перевіряє, чи ви використовуєте останню версію Laravel та PHP, підтверджує, що режим налагодження вимкнено в Production, а також зауважує, якщо ви забули налаштувати конфігурацію Mail для електронних листів скидання пароля

Але це ще не все. Fire Tower дозволяє вам створювати власні унікальні перевірки. Чи потребує ваш додаток перевірки, чи знаходиться певний об'єкт у заданому діапазоні? Чи потрібно перевірити, що в колонці існує певна кількість рядків? Чи необхідно перевірити найновішу дату created_at у таблиці, щоб впевнитися, що ваш ETL-процес був виконаний? Усі ці перевірки можна легко створити й використовувати з Fire Tower

# Використання

# Хобіст

Якщо ви такі, як і я, то маєте безліч маленьких додатків, які ви створили для різних завдань, і вони не завжди отримують належну увагу. Безумовно, останній з них працює на Laravel 11, але що щодо того, що ви створили кілька років тому? Чи оновили ви його до 10?

А можливо, ви також маєте кілька Statamic-сайтів або кастомних додатків, створених для клієнтів, які можуть відставати в оновленнях?

Fire Tower дозволяє швидко бачити, яку конкретну версію пакету Composer використовують ваші додатки. Легко дізнайтеся, які з них потребують підтримки, і працюйте над їх оновленням

# Агентство

Кілька років тому я допомагав розробляти пакет Laravel, який на 99% був додатком Laravel. Його розгортали переважно як пакет, щоб спростити оновлення та надати деяку гнучкість для окремих додатків. Протягом кількох років ми зрозуміли, що оновлення попередніх клієнтів до нових версій стало проблемою. Ми намагалися вести таблиці та інші способи, щоб тримати все під контролем

Продукт, подібний до Fire Tower, заощадив би нам багато часу та зусиль. Щоб вибрати конкретні пакети для відображення на панелі, просто перейдіть на сторінку налаштувань команди та оберіть потрібні пакети

# Ціни

Fire Tower пропонує два тарифних плани: один для користувачів, які контролюють лише кілька додатків, та один для просунутих користувачів або агентств, що мають більше п'яти додатків. Професійний план також забезпечує розширений інтерфейс для управління додатками з кількома серверами

Отримайте 20% знижки на перший місяць, використавши код купону LARAVELNEWS. Цей купон дійсний до опівночі 25 лютого 2025 року

# Налаштування

# Інсталяція

Щоб розпочати, зареєструйтесь на Fire Tower та встановіть пакет Fire Tower у вашому додатку:

composer require krakero/firetower

Наступний крок – запустити інсталятор:

php artisan firetower:install

Інсталятор опублікує потрібний сервіс-провайдер і конфігураційний файл

Далі, ми створюємо додаток та вводимо ключі нашого акаунту та додатка у файл .env.

FIRETOWER_ACCOUNT_KEY="laravel-news-4ee4-838a-250aa0fb17f0"
FIRETOWER_APPLICATION_KEY="fire-tower-4181-936f-6f0f3f754ca3"

Коли все налаштовано, ви готові надіслати свій звіт:

php artisan firetower:report

Рекомендуємо запланувати виконання команди раз на тиждень. Докладніше про налаштування читайте в документації

# Користувацькі перевірки

Ми маємо команду artisan для створення перевірки:

php artisan make:firetower-check

Вона запитає вас про ім'я, а потім згенерує наступний файл:

<?php
 
namespace App\Checks;
 
use Krakero\FireTower\Checks\Check;
 
class EnsureNightlyDataLoadCheck extends Check
{
    public string $name = 'Моя нова перевірка';
 
    public string $description = 'Ця перевірка важливих даних';
 
    public function handle(): string
    {
 
        $this->pass();
 
        // Зауважте: Ці дані зберігаються на серверах Fire Tower.
        // БУДЬ ЛАСКА, НЕ НАДСИЛАЙТЕ ЖОДНИХ ЧУТЛИВИХ ДАНИХ.
        $this->data([
            'my_variable' => 8675309
        ]);
 
        return 'Успішно';
    }
}

Ми внесемо деякі швидкі зміни в нашу стандартну перевірку, щоб надіслати відповідні дані:

<?php
 
namespace App\Checks;
 
use Krakero\FireTower\Checks\Check;
use App\Models\Order;
 
class EnsureNightlyDataLoadCheck extends Check
{
    public string $name = 'Перевірка нічного ETL';
 
    public string $description = 'Перевіряє, що останні денні значення попродукції потрапили в додаток.';
 
    public function handle(): string
    {
        $order = Order::latest()->get();
 
        if ($order->created_at > now()->subDay()) {
            $this->pass();
 
            $this->data([
                'newest_order_date' => $order->created_at
            ]);
 
            return 'ПРОЙДЕНО';
        } else {
            $this->fail();
 
            return 'НЕПРОЙДЕНО';
        }
    }
}

Тепер нам потрібно додати нашу перевірку до файлу FireTowerServiceProvider.php:

<?php
 
namespace App\Providers;
 
use App\Checks\EnsureNightlyDataLoadCheck;
//...
 
class FireTowerServiceProvider extends ServiceProvider
{
    public function boot()
    {
        FireTower::checks(function () {
            return [
                DebugModeInProductionCheck::check(),
                LaravelVersionCheck::check(),
                PhpVersionCheck::check(),
                //MailConfigInProductionCheck::check(),
                //StripeKeyCheck::check()
                EnsureNightlyDataLoadCheck::check(),
            ];
        });
    }
}

Щоб дізнатися більше:

```