ekreative/health-check-bundle

一个提供简单/healthcheck路由的包

安装次数: 496,559

依赖项: 0

建议者: 0

安全性: 0

星标: 32

关注者: 4

分支: 14

开放问题: 0

类型:symfony-bundle

1.13.0 2024-08-06 10:41 UTC

This package is auto-updated.

Last update: 2024-09-06 10:51:02 UTC


README

一个提供简单/healthcheck路由的包

Latest Stable Version License Build Status

安装

Composer

composer require ekreative/health-check-bundle

AppKernel

在您的AppKernel中包含此包

public function registerBundles()
{
    $bundles = [
        ...
        new Ekreative\HealthCheckBundle\EkreativeHealthCheckBundle(),

路由

ekreative_health_check:
    resource: '@EkreativeHealthCheckBundle/Resources/config/routes.xml'

安全性

您应该确保/healthcheck不需要认证

security:
    firewalls:
        healthcheck:
            pattern: ^/healthcheck
            security: false

配置

默认情况下,healthcheck将检查您的默认doctrine连接是否正常工作。

Doctrine

要检查多个doctrine连接,您应添加配置,列出连接的名称。

ekreative_health_check:
    doctrine:
        - 'default'
        - 'alternative'

您还可以列出应检查但不导致失败的doctrine连接。

ekreative_health_check:
    optional_doctrine:
        - 'another.optional'

可以禁用doctrine检查。

ekreative_health_check:
    doctrine_enabled: false

超时

建议更改默认PDO连接超时,以便您的健康检查可以更快失败。

在连接设置下添加此内容

doctrine:
    dbal:
        connections:
            default:
                driver: pdo_mysql
                host: '%database_host%'
                options:
                    !php/const PDO::ATTR_TIMEOUT: 5

Redis

此包还可以检查redis连接是否正常工作。您应该添加要检查的服务名称列表。

这需要启用PHP Redis扩展。

ekreative_health_check:
    redis:
        - 'redis'

您还可以列出应检查但不导致失败的redis连接。

ekreative_health_check:
    optional_redis:
        - 'redis.optional'

超时

建议更改默认Redis连接超时,以便您的健康检查可以更快失败。这是\Redisconnect调用的第三个参数。

services:
    redis:
        class: Redis
        calls:
            - [ connect, ['%redis_host%', '%redis_port%', 5]]

Redis

当您希望redis是可选的,您可能希望使用提供的RedisFactory(或您自己的),该工厂在连接时捕获任何异常。如果没有这个,Redis失败将导致容器失败,导致500错误。

services:
    redis:
        class: Redis
        factory: Ekreative\HealthCheckBundle\DependencyInjection\RedisFactory::get
        arguments:
            $host: 'example.com'