macpaw / symfony-health-check-bundle
Symfony健康检查包
v1.4.1
2023-12-01 08:46 UTC
Requires
- php: >=7.4
- symfony/framework-bundle: ^3.4 || ^4.1.12 || ^5.0 || ^6.0 || ^7.0
Requires (Dev)
- ext-json: *
- phpstan/phpstan: 1.9.*
- phpunit/phpunit: ^8.5 || ^9.0
- squizlabs/php_codesniffer: 3.7.*
- symfony/browser-kit: ^3.4 || ^4.4 || ^5.0 || ^6.0 || ^7.0
- symfony/phpunit-bridge: ^3.4 || ^4.1.12 || ^5.0 || ^6.0 || ^7.0
- symfony/yaml: ^3.4 || ^4.0 || ^5.0 || ^6.0 || ^7.0
README
安装
步骤1:下载包
打开命令控制台,进入您的项目目录并执行
composer require macpaw/symfony-health-check-bundle
不使用Symfony Flex的应用程序
通过将其添加到config/bundles.php中注册的包列表中启用该包
// config/bundles.php <?php return [ 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
更改响应代码
- 默认响应代码是200。
- 确定在某个检查失败时自定义的响应代码(响应代码必须是一个有效的HTTP状态代码)
symfony_health_check: health_checks: - id: symfony_health_check.doctrine_check ping_checks: - id: symfony_health_check.status_up_check ping_error_response_code: 500 health_error_response_code: 404
创建Symfony Health Check Bundle路由配置
config/routes/symfony_health_check.yaml
health_check: resource: '@SymfonyHealthCheckBundle/Resources/config/routes.xml'
步骤3:配置
安全性可选
如果您使用symfony/security并且您的健康检查需要匿名使用,请在配置中添加新的防火墙
# config/packages/security.yaml 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
如何更改路由
您可以通过简单的配置更改默认行为,请记住修改路由。
# config/routes/symfony_health_check.yaml health: path: /your/custom/url methods: GET controller: SymfonyHealthCheckBundle\Controller\HealthController::check ping: path: /your/custom/url methods: GET controller: SymfonyHealthCheckBundle\Controller\PingController::check
如何在Docker中使用Healthcheck
HEALTHCHECK --start-period=15s --interval=5s --timeout=3s --retries=3 CMD curl -sS {{your host}}/health || exit 1