infinitypaul / laravel-uptime
Keep track of critical endpoints with this command-line uptime monitor. Add an endpoint, set a frequency and listen to an event if something goes down.
Requires
- php: >=5.5.9
- guzzlehttp/guzzle: 5.*|6.*
- illuminate/support: ~5.5|~6.5|^7.0
Requires (Dev)
- orchestra/testbench: ~3.5|~4.4|^5.0
This package is auto-updated.
Last update: 2024-12-17 00:07:05 UTC
README
Keep track of critical endpoints with this command-line uptime monitor. Add an endpoint, set a frequency and listen to an event if something goes down.
Installation
You can install the package via composer:
composer require infinitypaul/laravel-uptime
Configuration
To publish Uptime's configuration and migration files, run the vendor:publish command.
php artisan vendor:publish --provider="Infinitypaul\LaravelUptime\LaravelUptimeServiceProvider"
This will create a uptime.php in your config directory. The default configuration should work just fine for you, but you can take a look at it, if you want to customize the table / model names Uptime will use
Run the migration command, to generate all tables needed for Uptime.
php artisan migrate
After the migration, 2 new tables will be created:
- endpoints - stores endpoint records
- statuses - store the ping status of the endpoint
Commands
Once Package is Installed, The Following Commands Will Be Available To You
Add An Endpoint
php artisan endpoint:add https://infinitypaul.com -f 5
Add Infinitypaul.com as a frequency of 5
php artisan endpoint:add own -f 5
Add The Base URL of your laravel project
Display All Endpoint
php artisan uptime:status
Display All the Endpoint And Status In A Beautiful Table
php artisan uptime:status --force
Check The Status Of The Endpoint Irrespective Of Their Frequency And Display As Well
Remove An Endpoint
php artisan endpoint:remove
Remove An Endpoint From The List Of EndPoint To Be Monitored
Ping All Endpoint
php artisan uptime:run
Ping All The Endpoint And Get The Up Or Down Status In Order Of Their Frequency
php artisan uptime:run --force
Ping All The Endpoint And Get The Up Or Down Status Irrespective Of Their Frequency
Scheduling
You can add the run command in your task scheduling to run every minute
php artisan uptime:run
Endpoints Down/Up Events
If you need to run additional processes when an endpoint is down or back up, you can Listen for these events:
\Infinitypaul\LaravelUptime\Events\EndpointIsBackUp
\Infinitypaul\LaravelUptime\Events\EndpointIsDown
In your EventServiceProvider
add your listener(s):
/** * The event listener mappings for the application. * * @var array */ protected $listen = [ ... \Infinitypaul\LaravelUptime\Events\EndpointIsBackUp::class => [ App\Listeners\URLIsBack::class, ], \Infinitypaul\LaravelUptime\Events\EndpointIsDown::class => [ App\Listeners\YourEndPointIsDown::class, ], ];
The EndpointIsBackUp and EndpointIsDown event exposes the Endpoint and Status. In your listener, you can access them like so:
<?php namespace App\Listeners; use Infinitypaul\LaravelUptime\Events\EndpointIsBackUp; class URLIsBack { /** * Create the event listener. * * @return void */ public function __construct() { // } /** * Handle the event. * * @param EndpointIsBackUp $event * @return void */ public function handle(EndpointIsBackUp $event) { // $endpointStatus = $event->getEndpointStatus(); // $EndpointDetails = $event->getEndpoint(); // Do something with the Endpoint and Status. } }
How can I thank you?
Why not star the github repo? I'd love the attention! Why not share the link for this repository on Twitter or HackerNews? Spread the word!
Don't forget to follow me on twitter!
Thanks! Edward Paul.
License
The MIT License (MIT). Please see License File for more information.