jpvdw86 / symfony-health-check-bundle
Symfony 健康检查包
v1.1.1
2022-11-21 16:17 UTC
Requires
- php: >=7.4
- symfony/framework-bundle: ^3.4 || ^4.1.12 || ^5.0 || ^6.0
Requires (Dev)
- ext-json: *
- phpstan/phpstan: 0.12.*
- phpunit/phpunit: ^8.5 || ^9.0
- squizlabs/php_codesniffer: 3.5.*
- symfony/browser-kit: ^3.4 || ^4.4 || ^5.0 || ^6.0
- symfony/phpunit-bridge: ^3.4 || ^4.1.12 || ^5.0 || ^6.0
- symfony/yaml: ^3.4 || ^4.0 || ^5.0 || ^6.0
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