Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

Laravel Health Check

Latest Stable Version Latest Unstable Version License Total Downloads

configurable healthcheck route for laravel

Install

composer require ipunkt/laravel-healthcheck

If you are using laravel 5.5 or above you do not have to add the provider manually. We support the package discovery.

Add the \Ipunkt\LaravelHealthcheck\HealthcheckProvider::class, to your providers section in config/app.php.

php artisan vendor:publish --provider "Ipunkt\LaravelHealthcheck\HealthcheckProvider"

Usage

Edit the config file config/healthcheck.php

see the comments there for more information

Available checkers

  • database Tests database connections via Eloquent
  • storage Tests write access to filesystem paths
  • redis Tests for accessing redis queue service
  • solr Tests for accessing solr services (needs extra package solarium/solarium)

Extend

To add a new Healthchecker implement Ipunkt\LaravelHealthcheck\HealthChecker\Checker and register it with the Ipunkt\LaravelHealthcheck\HealthChecker\Factory\HealthcheckerFactory. The HealtcheckerFactory is registered as singleton so you can use App::make() to retrieve it in the boot part of a ServiceProvider and register your Checker.

HealthcheckerFactory::register

  • string $identifier - the identifier which will activate the checker when added to config('healthcheck.checks')
  • Closure function(array $config) { return new Checker; } - Callback to make the Checker. Receives $config('healthcheck.$identifier') as parameter.

Example

class ServiceProvider {
	public function boot() {

		/**
		 * @var HealthcheckerFactory $factory
		 */
		$factory = $this->app->make('Ipunkt\LaravelHealthcheck\HealthChecker\Factory\HealthcheckerFactory');

		$factory->register('identifier', function(array $config) {

			$newChecker = new ExampleChecker;

			$newChecker->setExampleOption( array_get($config, 'url', 'http://www.example.com') );

			return $newChecker;

		});

	}
}

class ExampleChecker implement Ipunkt\LaravelHealthcheck\HealthChecker\Checker {

	protected $url;

	public function setExampleOption($url) {
		$this->url = $url;
	}

	public function check() {
		$url = $this->url;
		if ( @file_get_contents($url) === false )
			throw new CheckFailedException("Failed to retrieve $url.");
	}
}