jpvdw86/symfony-health-check-bundle

Symfony 健康检查包

安装次数: 7,096

依赖者: 0

建议者: 0

安全性: 0

星标: 1

关注者: 0

分支: 6

类型:symfony-bundle

v1.1.1 2022-11-21 16:17 UTC

This package is auto-updated.

Last update: 2024-09-21 20:56:36 UTC


README

这是MacPaw/symfony-health-check-bundle包的分支。该包的更改在于失败的返回状态码。状态码默认为200,但可能不正确。如果健康检查失败,则需要创建一个不健康的Docker状态。

安装

步骤 1: 下载包

打开命令行,进入您的项目目录并执行

使用 Symfony Flex 的应用程序

$ composer require jpvdw86/symfony-health-check-bundle

不使用 Symfony Flex 的应用程序

打开命令行,进入您的项目目录并执行以下命令以下载此包的最新稳定版本

$ composer require jpvdw86/symfony-health-check-bundle

此命令要求您已全局安装Composer,如Composer文档中的安装章节所述。

步骤 2: 启用包

然后,通过将其添加到项目app/AppKernel.php文件中注册的包列表中来启用包

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            SymfonyHealthCheckBundle\SymfonyHealthCheckBundle::class => ['all' => true],
        );

        // ...
    }

    // ...
}

创建 Symfony Health Check Bundle 配置

config/packages/symfony_health_check.yaml

配置健康检查 - 所有可用的信息请参阅此处

symfony_health_check:
    health_checks:
        - id: symfony_health_check.doctrine_check
    ping_checks:
        - id: symfony_health_check.status_up_check

创建 Symfony Health Check Bundle 路由配置

config/routes/symfony_health_check.yaml

health_check:
    resource: '@SymfonyHealthCheckBundle/Resources/config/routes.xml'

步骤 3: 配置

安全可选

config/packages/security.yaml

如果您使用symfony/security并且您的健康检查需要匿名使用,请向配置中添加一个新的防火墙

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

步骤 4: 其他设置

添加自定义检查

您可以添加自定义的健康检查

<?php

declare(strict_types=1);

namespace YourProject\Check;

use SymfonyHealthCheckBundle\Dto\Response;

class CustomCheck implements CheckInterface
{
    public function check(): Response
    {
        return new Response('status', true, 'up');
    }
}

然后我们将自定义健康检查添加到集合中

symfony_health_check:
    health_checks:
        - id: symfony_health_check.doctrine_check
        - id: custom_health_check // custom service check id

如何更改路由

您可以通过轻量级的配置更改默认行为,之后请记得返回到步骤 3

health:
    path: /your/custom/url
    methods: GET
    controller: SymfonyHealthCheckBundle\Controller\HealthController::healthCheckAction
    
ping:
    path: /your/custom/url
    methods: GET
    controller: SymfonyHealthCheckBundle\Controller\PingController::pingAction

如何在 Docker 中使用 Healthcheck

HEALTHCHECK --start-period=15s --interval=5s --timeout=3s --retries=3 CMD curl -sS {{your host}}/health || exit 1