PHPackages                             geekk/laravel-health-monitor - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. geekk/laravel-health-monitor

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

geekk/laravel-health-monitor
============================

Laravel package for application health monitoring

1.0.0(4mo ago)026MITPHPPHP ^8.1

Since Dec 18Pushed 4mo agoCompare

[ Source](https://github.com/geekk-net/laravel-health-monitor)[ Packagist](https://packagist.org/packages/geekk/laravel-health-monitor)[ Docs](https://github.com/geekk-net/laravel-health-monitor)[ RSS](/packages/geekk-laravel-health-monitor/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (7)Versions (2)Used By (0)

Laravel Health Monitor
======================

[](#laravel-health-monitor)

Комплексный пакет для мониторинга Laravel приложений. Проверяет состояние БД, Redis, очередей и других критических компонентов.

Содержание
----------

[](#содержание)

- [Требования](#%D1%82%D1%80%D0%B5%D0%B1%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
- [Установка](#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0)
- [Быстрый старт](#%D0%B1%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9-%D1%81%D1%82%D0%B0%D1%80%D1%82)
- [API endpoint](#api-endpoint)
- [Кастомные проверки](#%D0%BA%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%BD%D1%8B%D0%B5-%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B8)

Требования
----------

[](#требования)

- PHP 8.1 или выше
- Laravel 10.x или выше
- Composer

Установка
---------

[](#установка)

Установите пакет через Composer:

```
composer require geekk/laravel-health-monitor
```

Опубликуйте конфигурационный файл:

```
php artisan vendor:publish --tag=config --provider="Geekk\\HealthMonitor\\HealthMonitorServiceProvider"
```

Быстрый старт
-------------

[](#быстрый-старт)

1. **Настройте конфигурацию** в `config/health-monitor.php`:
2. **Проверьте работоспособность**:

```
curl http://your-app.test/api/health
```

API Endpoint
------------

[](#api-endpoint)

### Полная проверка здоровья

[](#полная-проверка-здоровья)

```
GET /api/health
```

**Ответ (200 OK):**

```
{
    "status": "healthy",
    "timestamp": "2024-01-15T10:30:00+00:00",
    "checks": {
        "database": {
            "healthy": true,
            "message": "All database connections are healthy",
            "timestamp": "2024-01-15T10:30:00+00:00"
        },
        "redis": {
            "healthy": true,
            "message": "Redis connection is healthy",
            "timestamp": "2024-01-15T10:30:00+00:00"
        },
        "queue": {
            "healthy": true,
            "message": "Queue is healthy. Size: 5",
            "timestamp": "2024-01-15T10:30:00+00:00"
        }
    }
}
```

**Ответ при ошибке (503 Service Unavailable):**

```
{
    "status": "unhealthy",
    "timestamp": "2024-01-15T10:30:00+00:00",
    "checks": {
        "database": {
            "healthy": false,
            "message": "Database connection 'mysql' failed: SQLSTATE[HY000] [2002] Connection refused",
            "error": "PDOException",
            "timestamp": "2024-01-15T10:30:00+00:00"
        }
    }
}
```

### Конкретная проверка

[](#конкретная-проверка)

```
GET /api/health/check/{check-name}
```

**Пример:**

```
GET /api/health/check/database
GET /api/health/check/redis
```

Использование
-------------

[](#использование)

### Через HTTP запросы

[](#через-http-запросы)

```
# Полная проверка
curl http://localhost:8000/api/health

# Только проверка БД
curl http://localhost:8000/api/health/check/database
```

### Программное использование

[](#программное-использование)

```
use Geekk\HealthMonitor\Facades\HealthMonitor;

// Запустить все проверки
$healthStatus = HealthMonitor::runAll();

if ($healthStatus['healthy']) {
    echo "Все системы работают нормально";
} else {
    echo "Обнаружены проблемы:";
    foreach ($healthStatus['checks'] as $name => $check) {
        if (!$check['healthy']) {
            echo "{$name}: {$check['message']}";
        }
    }
}

// Запустить конкретную проверку
$dbHealth = HealthMonitor::runSpecific('database');

// Добавить кастомную проверку
HealthMonitor::registerCheck('disk-space', \App\HealthChecks\DiskSpaceCheck::class);
```

Кастомные проверки
------------------

[](#кастомные-проверки)

### Создание кастомной проверки

[](#создание-кастомной-проверки)

1. Создайте класс проверки:

```
