Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/68publishers/health-check
:heartpulse: Check the status of an application services.
https://github.com/68publishers/health-check
cli console docker extension health-check nette symfony
Last synced: 26 days ago
JSON representation
:heartpulse: Check the status of an application services.
- Host: GitHub
- URL: https://github.com/68publishers/health-check
- Owner: 68publishers
- License: mit
- Created: 2021-08-04T19:41:17.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-01-05T00:54:45.000Z (almost 2 years ago)
- Last Synced: 2024-09-30T13:58:40.218Z (about 1 month ago)
- Topics: cli, console, docker, extension, health-check, nette, symfony
- Language: PHP
- Homepage:
- Size: 71.3 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
Health check
:heartpulse: Health check for external services that are important for your application.
## Installation
The best way to install `68publishers/health-check` is using Composer:
```bash
$ composer require 68publishers/health-check
```## Standalone usage
```php
use SixtyEightPublishers\HealthCheck\ExportMode;
use SixtyEightPublishers\HealthCheck\HealthChecker;
use SixtyEightPublishers\HealthCheck\ServiceChecker\PDOServiceChecker;
use SixtyEightPublishers\HealthCheck\ServiceChecker\RedisServiceChecker;$checker = new HealthChecker();
$checker->addServiceChecker(new PDOServiceChecker('pgsql:host=127.0.0.1;port=5432;dbname=example', 'user', 'password'));
$checker->addServiceChecker(new RedisServiceChecker())# check all services
$result = $checker->check();# you can throw an exception
if (!$result->isOk()) {
throw $result->getError();
}# or covert the result into a JSON
echo json_encode($result);# check Redis only
$result = $checker->check(['redis']);# check in the "Full" mode. The default mode is "Simple".
$result = $checker->check(NULL, ExportMode::Full);# the result now contains detailed information about each service
echo json_encode($result);
```## Available service checkers
- PDO - `SixtyEightPublishers\HealthCheck\ServiceChecker\PDOServiceChecker`
- Redis - `SixtyEightPublishers\HealthCheck\ServiceChecker\RedisServiceChecker`
- Http - `SixtyEightPublishers\HealthCheck\ServiceChecker\HttpServiceChecker`You can create your own service checker. Just create a class that implements the interface `ServiceCheckerInterface`.
## Integration into Nette Framework
The package provides compiler extensions for easy integration with Nette Framework.
### Configuration example
```neon
extensions:
68publishers.health_check: SixtyEightPublishers\HealthCheck\Bridge\Nette\DI\HealthCheckExtension68publishers.health_check:
service_checkers:
- SixtyEightPublishers\HealthCheck\ServiceChecker\RedisServiceChecker()
- SixtyEightPublishers\HealthCheck\ServiceChecker\PDOServiceChecker::fromParams([
driver: pgsql
host: '127.0.0.1'
port: 5432
dbname: example
user: user
password: password
])
- MyCustomServiceChecker('foo')
export_mode: full_if_debug # This is the default value. Supported values are "full_if_debug", "full", "simple" or custom service that implements an interface "ExportModeResolverInterface".
```Now the service of type `SixtyEightPublishers\HealthCheck\HealthCheckerInterface` is accessible in DIC.
### Health check using Symfony Console
```neon
extensions:
68publishers.health_check: SixtyEightPublishers\HealthCheck\Bridge\Nette\DI\HealthCheckExtension
68publishers.health_check.console: SixtyEightPublishers\HealthCheck\Bridge\Nette\DI\HealthCheckConsoleExtension
```Now you can run this command:
```bash
$ bin/console health-check [] [--export-mode ]
```### Health check using Nette Application
```neon
extensions:
68publishers.health_check: SixtyEightPublishers\HealthCheck\Bridge\Nette\DI\HealthCheckExtension
68publishers.health_check.application: SixtyEightPublishers\HealthCheck\Bridge\Nette\DI\HealthCheckApplicationExtension68publishers.health_check.application:
route: '/health-check' # The default value. You can change it or set it as "false".
```The extension automatically appends the health check route into your RouteList. If you want to disable this behaviour, please set the option `route` to `false` and add the route to your route factory manually e.g.:
```php
add(new HealthCheckRoute('/health-check'));
# ... other routes ...
return $router;
}
}
```Now you can check your services through an endpoint `your-domain.com/health-check`.
The endpoint returns the status code `200` if everything is ok and `503` if some service check failed.## Contributing
Before opening a pull request, please check your changes using the following commands
```bash
$ make init # to pull and start all docker images$ make cs.check
$ make stan
$ make tests.all
```