PHPackages                             eqs/health-check-provider - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. eqs/health-check-provider

ActiveLibrary[HTTP &amp; Networking](/categories/http)

eqs/health-check-provider
=========================

Provides healthcheck endpoints in accordance with IETF's healthcheck draft RFC

0.1.2(1y ago)1810.9k↓13.2%2[6 PRs](https://github.com/eqsgroup/health-check-provider/pulls)MITPHPPHP ^8.1CI passing

Since Jan 25Pushed 7mo ago1 watchersCompare

[ Source](https://github.com/eqsgroup/health-check-provider)[ Packagist](https://packagist.org/packages/eqs/health-check-provider)[ RSS](/packages/eqs-health-check-provider/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (11)Versions (9)Used By (0)

eqs/health-check-provider
=========================

[](#eqshealth-check-provider)

 **Provides structure for healthcheck endpoints in accordance with IETF's healthcheck draft RFC**

About
-----

[](#about)

Package provides endpoints which conform to [draft 06 version of IETF's healthcheck RFC](https://datatracker.ietf.org/doc/html/draft-inadarei-api-health-check-06).

### Integrations

[](#integrations)

We are shipping following integrations, but it's very easy to implement your own by reusing [CallableHealthChecker](src/HealthChecker/CallableHealthChecker.php):

- HTTP request
- Doctrine Connection

Installation
------------

[](#installation)

Install this package as a dependency using [Composer](https://getcomposer.org).

```
composer require eqs/health-check-provider
```

Usage
-----

[](#usage)

This library provides [PSR-15 HTTP Server Request Handler](https://www.php-fig.org/psr/psr-15/), which guarantees compatibility with wide range of PHP frameworks. In case your framework does not natively support it, you can find a [PSR bridge](https://symfony.com/doc/current/components/psr7.html) which supports it.

Example controller for Symfony frameworkFor this example, on top of standard symfony packages, you also need `php-http/discovery` and `symfony/psr-http-message-bridge` packages.

```
use Doctrine\DBAL\Connection;
use GuzzleHttp\Psr7\HttpFactory;
use EQS\HealthCheckProvider\DTO\CheckDetails;
use EQS\HealthCheckProvider\DTO\HealthResponse;
use EQS\HealthCheckProvider\HealthChecker\CallableHealthChecker;
use EQS\HealthCheckProvider\HealthChecker\DoctrineConnectionHealthChecker;
use EQS\HealthCheckProvider\HealthChecker\HttpHealthChecker;
use EQS\HealthCheckProvider\RequestHandler;
use Psr\Http\Client\ClientInterface;
use Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory;
use Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\DependencyInjection\Attribute\Autowire;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Messenger\Transport\Receiver\MessageCountAwareInterface;
use Symfony\Component\Messenger\Transport\TransportInterface;
use Symfony\Component\Routing\Annotation\Route;

class GetHealthCheckController extends AbstractController
{
    public function __construct(
        #[Autowire(service: 'messenger.transport.amqp_dc_user_update')]
        private MessageCountAwareInterface&TransportInterface $transport,
        private Connection $connection,
        private ClientInterface $httpClient,
    ) {}

    #[Route(path: '/api/health_check')]
    public function __invoke(Request $request): Response
    {
        $psr17Factory = new HttpFactory();
        $psrBridge = new HttpFoundationFactory();

        return $psrBridge->createResponse(
            (new RequestHandler(
                new HealthResponse(),
                [
                    new CallableHealthChecker(new CheckDetails('AMQP', true), fn () => $this->transport->getMessageCount()),
                    new DoctrineConnectionHealthChecker(new CheckDetails('Database', true), $this->connection),
                    new HttpHealthChecker(
                        new CheckDetails('External API', false),
                        $this->httpClient,
                        new \GuzzleHttp\Psr7\Request('GET', 'https://www.google.com'),
                    ),
                ],
                $psr17Factory,
                $psr17Factory,
            ))
                ->handle((new PsrHttpFactory($psr17Factory, $psr17Factory, $psr17Factory, $psr17Factory))
                    ->createRequest($request)),
        );
    }
}
```

Contributing
------------

[](#contributing)

Contributions are welcome! To contribute, please familiarize yourself with [CONTRIBUTING.md](CONTRIBUTING.md).

Copyright and License
---------------------

[](#copyright-and-license)

eqs/health-check-provider is copyright © [EQS Group](https://www.eqs.com/)and licensed for use under the terms of the MIT License (MIT). Please see [LICENSE](LICENSE) for more information.

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance54

Moderate activity, may be stable

Popularity34

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 73.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~200 days

Total

3

Last Release

444d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2f56471f595636876f95264fa5c455d611329a4820193f88d22e83a5bd900292?d=identicon)[ostrolucky](/maintainers/ostrolucky)

![](https://www.gravatar.com/avatar/0e2d12403ef4b86c73e69e72419216d6f7fc22031785ddfe3607db4c88dce57a?d=identicon)[EQS Engineering](/maintainers/EQS%20Engineering)

---

Top Contributors

[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (34 commits)")[![ostrolucky](https://avatars.githubusercontent.com/u/496233?v=4)](https://github.com/ostrolucky "ostrolucky (12 commits)")

---

Tags

health-checkhealthcheckpsr-15healthpsr-15

### Embed Badge

![Health badge](/badges/eqs-health-check-provider/health.svg)

```
[![Health](https://phpackages.com/badges/eqs-health-check-provider/health.svg)](https://phpackages.com/packages/eqs-health-check-provider)
```

###  Alternatives

[league/route

Fast routing and dispatch component including PSR-15 middleware, built on top of FastRoute.

6633.1M115](/packages/league-route)[sunrise/http-router

A powerful solution as the foundation of your project.

16249.8k10](/packages/sunrise-http-router)[lcobucci/error-handling-middleware

A PSR-15 middleware compatible with RFC 7807

6171.3k1](/packages/lcobucci-error-handling-middleware)[jasny/auth

Authentication, authorization and access control for Slim Framework and other PHP micro-frameworks

11816.4k1](/packages/jasny-auth)[mezzio/mezzio-cors

CORS component for Mezzio and other PSR-15 middleware runners.

17568.5k5](/packages/mezzio-mezzio-cors)[wellrested/wellrested

Simple PHP Library for RESTful APIs

4818.7k4](/packages/wellrested-wellrested)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
