承接 geekk/laravel-health-monitor 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

geekk/laravel-health-monitor

最新稳定版本:1.0.0

Composer 安装命令:

composer require geekk/laravel-health-monitor

包简介

Laravel package for application health monitoring

README 文档

README

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

Содержание

Требования

  • 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

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

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 запросы

# Полная проверка
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. Создайте класс проверки:
<?php

namespace App\HealthChecks;

use Geekk\HealthMonitor\Services\Checks\BaseCheck;

class DiskSpaceCheck extends BaseCheck
{
    protected string $name = 'disk-space';

    public function run(): array
    {
        $freeSpace = disk_free_space('/');
        $totalSpace = disk_total_space('/');
        $percentage = ($freeSpace / $totalSpace) * 100;

        if ($percentage < 10) { // Меньше 10% свободного места
            return $this->failure(
                "Low disk space: " . round($percentage, 2) . "% free",
                'DISK_SPACE_LOW'
            );
        }

        return $this->success(
            "Disk space OK: " . round($percentage, 2) . "% free",
            [
                'free_space' => $this->formatBytes($freeSpace),
                'total_space' => $this->formatBytes($totalSpace),
                'percentage_free' => round($percentage, 2),
            ]
        );
    }

    private function formatBytes($bytes): string
    {
        $units = ['B', 'KB', 'MB', 'GB', 'TB'];
        $i = 0;
        
        while ($bytes >= 1024 && $i < count($units) - 1) {
            $bytes /= 1024;
            $i++;
        }
        
        return round($bytes, 2) . ' ' . $units[$i];
    }
}
  1. Зарегистрируйте проверку в конфигурации:
// config/health-monitor.php
'checks' => [
    'disk-space' => \App\HealthChecks\DiskSpaceCheck::class,
],
  1. Проверьте работу:
curl http://localhost:8000/api/health/check/disk-space

统计信息

  • 总下载量: 26
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-12-18

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固