Added in support for custom healthchecks server

This commit is contained in:
Henry Whitaker
2020-12-20 00:19:46 +00:00
parent fde30602b0
commit 44c6c256c0
5 changed files with 62 additions and 10 deletions

View File

@@ -52,19 +52,19 @@ class SpeedtestJob implements ShouldQueue
*/
public function handle()
{
if($this->config['healthchecks_enabled'] === true) {
if ($this->config['healthchecks_enabled'] === true) {
$this->healthcheck('start');
}
$output = SpeedtestHelper::output();
$speedtest = SpeedtestHelper::runSpeedtest($output, $this->scheduled);
if($speedtest == false) {
if($this->config['healthchecks_enabled'] === true) {
if ($speedtest == false) {
if ($this->config['healthchecks_enabled'] === true) {
$this->healthcheck('fail');
}
event(new SpeedtestFailedEvent());
} else {
if($this->config['healthchecks_enabled'] === true) {
if ($this->config['healthchecks_enabled'] === true) {
$this->healthcheck('success');
}
@@ -82,19 +82,19 @@ class SpeedtestJob implements ShouldQueue
private function healthcheck(String $method)
{
try {
$hc = new Healthchecks(SettingsHelper::get('healthchecks_uuid')->value);
if($method === 'start') {
$hc = new Healthchecks(SettingsHelper::get('healthchecks_uuid')->value, SettingsHelper::get('healthchecks_server_url')->value);
if ($method === 'start') {
$hc->start();
}
if($method === 'success') {
if ($method === 'success') {
$hc->success();
}
if($method === 'fail') {
if ($method === 'fail') {
$hc->fail();
}
} catch(Exception $e) {
} catch (Exception $e) {
Log::error($e->getMessage());
}
}

View File

@@ -44,7 +44,7 @@ class IntegrationsServiceProvider extends ServiceProvider
SettingsHelper::loadIntegrationConfig();
App::bind('healthcheck', function () use ($setting) {
return new Healthchecks($setting->value);
return new Healthchecks($setting->value, SettingsHelper::get('healthchecks_server_url')->value);
});
} catch (InvalidUuidStringException $e) {
Log::error('Invalid healthchecks UUID');

View File

@@ -0,0 +1,38 @@
<?php
use App\Helpers\SettingsHelper;
use App\Setting;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddCustomHealthchecksSetting extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
if (!SettingsHelper::get('healthchecks_server_url')) {
Setting::create([
'name' => 'healthchecks_server_url',
'value' => 'https://hc-ping.com/',
'description' => 'The URL of the healthchecks.io server. Change this to use a self-hosted server.'
]);
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Setting::whereIn('name', [
'healthchecks_server_url',
])->delete();
}
}

6
public/js/app.js vendored
View File

@@ -140866,6 +140866,9 @@ var SettingsIndex = /*#__PURE__*/function (_Component) {
General: [{
obj: data.app_name,
type: 'text'
}, {
obj: data.schedule_enabled,
type: 'text'
}, {
obj: data.schedule,
type: 'text'
@@ -140979,6 +140982,9 @@ var SettingsIndex = /*#__PURE__*/function (_Component) {
healthchecks: [{
obj: data.healthchecks_enabled,
type: 'checkbox'
}, {
obj: data.healthchecks_server_url,
type: 'text'
}, {
obj: data.healthchecks_uuid,
type: 'text'

View File

@@ -38,6 +38,10 @@ export default class SettingsIndex extends Component {
obj: data.app_name,
type: 'text',
},
{
obj: data.schedule_enabled,
type: 'text',
},
{
obj: data.schedule,
type: 'text',
@@ -188,6 +192,10 @@ export default class SettingsIndex extends Component {
obj: data.healthchecks_enabled,
type: 'checkbox'
},
{
obj: data.healthchecks_server_url,
type: 'text'
},
{
obj: data.healthchecks_uuid,
type: 'text'