chocofamilyme/phalcon-healthcheck

为您的应用程序提供健康检查功能

1.0.6 2020-11-19 10:48 UTC

This package is auto-updated.

Last update: 2024-09-19 19:43:03 UTC


README

健康检查库为您项目添加新的端点(路由),用于检查应用程序的一些服务。例如,您想检查微服务的“数据库连接”。

安装

composer require chocofamilyme/phalcon-healthcheck ^1.0
  • 设置应用程序的示例
<?php

use Phalcon\Di\FactoryDefault;
use Phalcon\Mvc\Micro;
use Chocofamily\PhalconHealthCheck\Providers\HealthCheckServiceProvider;

$container   = new FactoryDefault();
$application = new Micro($container);

$container->setShared('application', $application);

$container->register(new HealthCheckServiceProvider());
  • 将上述 ServiceProvider 类添加到 config/config/providers.php
  • 将 healthCheck.php 复制到 config/ 并管理项目所需的配置值

检查

  • 数据库连接检查
  • 缓存读写检查
  • 会话读写检查
  • 存储检查

路由

  • /health
{
  "DB": "OK",
  "CACHE": "OK",
  "SESSIONS": "CRITICAL",
  "STORAGE": "OK"
}
  • /health/extended
{
  "DB": {
    "STATUS": "OK",
    "STATUS_BOOL": true,
    "MESSAGE": null
  },
  "CACHE": {
    "STATUS": "OK",
    "STATUS_BOOL": true,
    "MESSAGE": null
  },
  "SESSIONS": {
    "STATUS": "CRITICAL",
    "STATUS_BOOL": false,
    "MESSAGE": "Connection to tarantool.example.com failed"
  },
  "STORAGE": {
    "STATUS": "OK",
    "STATUS_BOOL": true,
    "MESSAGE": null
  }
}

如何编写自定义检查

创建一个实现 Chocofamily\PhalconHealthCheck\Services\Checks\ComponentCheckInterface 的类,并将其添加到 healthcheck.php 配置文件中,如下所示

return [
    'componentChecks' => [
        'YOURCUSTOMCHECK' => YourCustomCheck::class
    ]
]

响应

有一个配置参数描述了用于输出响应的响应类。例如

  • /health - Chocofamily\PhalconHealthCheck\Responses\ChocofamilyResponse::class 输出将如下所示
{
    "data": {
        "DB": "OK",
        "CACHE": "OK",
        "SESSIONS": "CRITICAL",
        "STORAGE": "OK"
    }
}

如果您想将响应输出到视图中而不是 JSON,请随意添加您的响应。