Checking health of destinations | laravel-backup-server | Spatie

 SPATIE

  Laravel Backup Server
========================

spatie.be/open-source

  [Docs](https://spatie.be/docs)  [Laravel-backup-server](https://spatie.be/docs/laravel-backup-server/v2)  Monitoring-the-health-of-all-backups  Checking health of destinations

 Version   v4   v3   v2   v1

 Other versions for crawler [v4](https://spatie.be/docs/laravel-backup-server/v4) [v3](https://spatie.be/docs/laravel-backup-server/v3) [v2](https://spatie.be/docs/laravel-backup-server/v2) [v1](https://spatie.be/docs/laravel-backup-server/v1)

- [ Introduction ](https://spatie.be/docs/laravel-backup-server/v2/introduction)
- [ Getting a license ](https://spatie.be/docs/laravel-backup-server/v2/getting-a-license)
- [ Installation &amp; setup ](https://spatie.be/docs/laravel-backup-server/v2/installation-setup)
- [ Requirements ](https://spatie.be/docs/laravel-backup-server/v2/requirements)
- [ Upgrading ](https://spatie.be/docs/laravel-backup-server/v2/upgrading)
- [ Questions and issues ](https://spatie.be/docs/laravel-backup-server/v2/questions-issues)
- [ Changelog ](https://spatie.be/docs/laravel-backup-server/v2/changelog)
- [ About us ](https://spatie.be/docs/laravel-backup-server/v2/about-us)
- [ License ](https://spatie.be/docs/laravel-backup-server/v2/license)

Taking backups
--------------

- [ Creating a destination ](https://spatie.be/docs/laravel-backup-server/v2/taking-backups/creating-a-destination)
- [ Creating a source ](https://spatie.be/docs/laravel-backup-server/v2/taking-backups/creating-a-source)
- [ Taking backups ](https://spatie.be/docs/laravel-backup-server/v2/taking-backups/taking-backups)
- [ The backup process ](https://spatie.be/docs/laravel-backup-server/v2/taking-backups/the-backup-process)
- [ Events ](https://spatie.be/docs/laravel-backup-server/v2/taking-backups/events)
- [ Listing sources and destinations ](https://spatie.be/docs/laravel-backup-server/v2/taking-backups/listing-sources-and-destinations)
- [ Working with backups ](https://spatie.be/docs/laravel-backup-server/v2/taking-backups/working-with-backups)
- [ Creating database backups ](https://spatie.be/docs/laravel-backup-server/v2/taking-backups/creating-database-backups)

Cleaning up backups
-------------------

- [ The clean up process ](https://spatie.be/docs/laravel-backup-server/v2/cleaning-up-backups/the-cleanup-process)
- [ Determining old backups ](https://spatie.be/docs/laravel-backup-server/v2/cleaning-up-backups/determining-old-backups)
- [ Events ](https://spatie.be/docs/laravel-backup-server/v2/cleaning-up-backups/events)

Monitoring the health of all backups
------------------------------------

- [ The monitoring process ](https://spatie.be/docs/laravel-backup-server/v2/monitoring-the-health-of-all-backups/the-monitoring-process)
- [ Checking health of sources ](https://spatie.be/docs/laravel-backup-server/v2/monitoring-the-health-of-all-backups/checking-health-of-sources)
- [ Checking health of destinations ](https://spatie.be/docs/laravel-backup-server/v2/monitoring-the-health-of-all-backups/checking-health-of-destinations)
- [ Events ](https://spatie.be/docs/laravel-backup-server/v2/monitoring-the-health-of-all-backups/events)

Sending notifications
---------------------

- [ Sending notifications ](https://spatie.be/docs/laravel-backup-server/v2/sending-notifications/sending-notifications)
- [ Adding extra notification channels ](https://spatie.be/docs/laravel-backup-server/v2/sending-notifications/adding-extra-notification-channels)
- [ Customizing the notifiable ](https://spatie.be/docs/laravel-backup-server/v2/sending-notifications/customizing-the-notifiable)

      You are viewing the documentation for **an older version** of this package. You can check the version you are using with the following command:

 `                                    composer show spatie/laravel-backup-server                                                                                                                                                                                                                                    `

Checking health of destinations
===============================

###  On this page

1. [ Creating health checks of your own ](#content-creating-health-checks-of-your-own)
2. [ Get notifications of (un)healthy destinations ](#content-get-notifications-of-unhealthy-destinations)

Checking the health of a source is done by `DestinationHealthCheck` classes configured in the `monitor.destination_health_checks` key of the `backup-server` config file.

The package ships with these two checks configured by default:

- `DestinationReachable`: if the disk set in the `disk_name` attribute doesn't exist anymore, the destination will be considered unhealthy
- `MaximumDiskCapacityUsageInPercentage`: if the used capacity percentage is higher than the configure value, the destination will be considered unhealthy
- `MaximumStorageInMB` =&gt; if the used storage in MB for this destination is higher than the configured value, the destination will be considered unhealthy. You can disable this check by setting the value to 0.
- `MaximumInodeUsageInPercentage`: each filesystem has a maximum amount of entries. These entries are called inodes. If the used inode percentage is higher than the configured value, the destination will be considered unhealthy.

Creating health checks of your own
--------------------------------------------------------------------------------------------------------------------------------------------------------------

In the `monitor.destination_health_checks` key of the `backup-server` config file you can add health check classes of your own. Any class you add there should extend `Spatie\BackupServer\Tasks\Monitor\HealthChecks\Source\SourceHealthCheck`. Here is how that abstract class is defined.

```
namespace Spatie\BackupServer\Tasks\Monitor\HealthChecks\Destination;

use Spatie\BackupServer\Models\Destination;
use Spatie\BackupServer\Tasks\Monitor\HealthCheckResult;
use Spatie\BackupServer\Tasks\Monitor\HealthChecks\HealthCheck;

abstract class DestinationHealthCheck extends HealthCheck
{
    abstract public function getResult(Destination $destination): HealthCheckResult;
}
```

Get notifications of (un)healthy destinations
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

You can receive notifications when the monitor finds an (un)healthy destinations. Read the section on [notifications](/docs/laravel-backup-server/v1/sending-notifications/sending-notifications) to learn more.
