This package checks if the application resources are running as they should and creates a service status panel. It has the following main points:
- Twitter Bootstrap Status Panel
- Resilient resource checker: if the framework is working and at least one notification channel, you should receive notification messages.
- Highly extensible and configurable: you can create new checkers and notifiers very easily, and you can virtually change everything on it.
- Built-in notification system: get notifications via mail, slack, telegram or anything else you need.
- Routes for: panel, json result, string result and resource.
- Configurable panel design.
- Cache results and calls to services.
- Schedule checks to automatically receive notifications when a service fails.
- View app error messages right in the panel.
- Http response codes 200 and 500, on error, for services like Envoyer to keep track of your app health.
Heath has pre-configured resource checkers for the following services:
- Database
- Cache
- Framework (dummy checker)
- Http & Https
- Filesystem
- Cloud Storage
But you can add anything else you need!
If you have lots of services to check, you may change the default panel design to use less space:
Mouse over a failing resource and get instant access to the error message:
Click the resource button and you'll get an alert showing the error message:
Here's an example of notification sent via Slack:
Use the command health:panel
to view the status of your services in console.
Use the command health:check
to check all your resources and send notifications on failures.
After installing you will have access to the folowing routes:
The main panel route.
Returns a json with everything the package knows about your services:
Returns a string with status on all your services, useful when using other monitoring services:
hlthFAIL-dbFAIL-filesystemOK-frmwrkOK-httpOK-httpsOK-mailOK
Returns a json with information about a particular service:
- PHP 5.6+
- Laravel 5.3+
Use Composer to install it:
composer require pragmarx/health
Add the Service Provider and Facade alias to your app/config/app.php
(Laravel 4.x) or config/app.php
(Laravel 5.x):
PragmaRX\Health\ServiceProvider::class,
php artisan vendor:publish
http://yourdomain.com/health/panel
- Panel
- Title and messages
- Resource checkers
- Slack icon
- Sort resources in the panel
- Notification channels
- Template location
- Routes and prefixes
- Mail server
- Cache
- Scheduler
To receive notifications via Slack, you'll have to setup Incoming Webhooks and add this method to your User model with your webhook:
/**
* Route notifications for the Slack channel.
*
* @return string
*/
public function routeNotificationForSlack()
{
return config('services.slack.webhook_url');
}
When Health result is cached, you can flush the chage to make it process all resources again by adding ?flush=true
to the url:
http://yourdomain.com/health/panel?flush=true
If you prefer to build you own notifications systems, you can disable it and listen for the following event
PragmaRX\Health\Events\RaiseHealthIssue::class
Health is licensed under the BSD 3-Clause License - see the LICENSE
file for details
Pull requests and issues are more than welcome.