Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Health Check Bundle Laravel Package

ekreative/health-check-bundle

View on GitHub
Deep Wiki
Context7

Health Check Bundle

A bundle that provides a simple /healthcheck route

Latest Stable Version License Build Status

Install

Composer

composer require ekreative/health-check-bundle

AppKernel

Include the bundle in your AppKernel

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

Routing

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

Security

You should make sure /healthcheck does not require authentication

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

Configuration

By default healthcheck will check that your default doctrine connection is working.

Doctrine

To check more than one doctrine connection you should add the configuration, listing the names of the connections

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

You can also list doctrine connections that should be checked, but don't cause a failure

ekreative_health_check:
    optional_doctrine:
        - 'another.optional'

Its possible to disable the doctrine check

ekreative_health_check:
    doctrine_enabled: false

Timeout

Its recommended to change the default PDO connection timeout so that your health check will fail faster

Add this under connection setting

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

Redis

The bundle can also check that redis connections are working. You should add a list of service names to check

This will require the PHP Redis extension enabled.

ekreative_health_check:
    redis:
        - 'redis'

You can also list redis connections that should be checked, but don't cause a failure

ekreative_health_check:
    optional_redis:
        - 'redis.optional'

Timeout

Its recommended to change the default Redis connection timeout so that your health check will fail faster. Its the third argument to connect call for \Redis.

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

Redis

When you want redis to be optional, you might want to use the provided RedisFactory (or your own) that catches any exceptions on connect. Without this a Redis failure will cause the container to fail, resulting in a 500 error.

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

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
daikazu/eloquent-salesforce-objects
unseen-codes/chat
romalytar/yammi-jobs-monitoring-laravel
kisame76/filament-db-table-state
nqxcode/laravel-lucene-search
dpfx/laravel-livewire-wizards
workos/workos-php-laravel
sofa/laravel-global-scope
nawasara/auth-primitives
adhocrat-io/arkhe-main
make-dev/orca-harpoon
itsemon245/lamet
baks-dev/dashboard
amoifr/pickle-panther-bundle
make-dev/orca
dmstr/symfony-system-resources-bundle
dmstr/symfony-job-queue-bundle
dmstr/openapi-json-schema-bundle
dmstr/keycloak-security-bundle
dmstr/doctrine-audit-log-bundle