gbradley/updown

与Updown.io轻松集成

v1.1.2 2020-09-24 09:56 UTC

This package is auto-updated.

Last update: 2024-09-24 19:00:15 UTC


README

一个用于updown.io网站监控API的PHP库。创建、检查、修改和删除检查,可选的Laravel集成。

$check = $updown->create('https://mysite.com', [
	'alias' 	=> 'MySite',
	'period'	=> 60,
]);

...

$check->delete();

要求

Updown需要PHP 7.1或更高版本。可选的Laravel集成需要5.5或更高。

安装

使用Composer安装

$ composer require gbradley/updown

设置

通过传递API密钥配置updown客户端实例。如果运行的应用程序由updown.io检查,您可以在第二个参数中提供其令牌。

use GBradley\Updown\Client;
...
$updown = new Client('my-api-key', 'my-app-token');
// do stuff

使用

客户端用于获取和获取Check实例,允许您检查、修改和删除单个检查。如果库遇到问题,将抛出GBradley\Updown\ApiException,并提供尽可能从API响应中获取的错误信息。

客户端

checks()

返回一个按令牌键控的Gbradley\Updown\Check数组。

$checks = $updown->checks();
$checks['abcd']->alias;			// 'MySite'

create()

创建一个新的检查。将第一个参数作为要检查的URL;可以在一个数组中提供任何已记录的选项作为第二个参数。

$check = $updown->create('https://yoursite.com', [
	'alias'	=> 'YourSite',
]);
$check->token;				// 'abzy'

check()

检索与提供的令牌匹配的Check对象。如果没有提供,则使用配置的应用程序令牌。

$check = $updown->check('abzy');
$check->alias;				// 'YourSite'

ips()

检索用于执行检查的所有IP列表。您可以在第一个参数中指定IP版本;默认为4。

检查

获取器和设置器

要获取检查的数据,只需访问相关属性

$check->alias;				// 'MySite'

要将数据设置在检查上,将值分配给属性

$check->alias = 'MySite';

请注意,通过设置器进行的更改将在您调用save()之前不生效。

data()

您还可以使用data()方法检索有关检查的所有数据。这将返回一个关联数组。

save()

应用对检查所做的任何更改。您可以为此方法提供一个额外的更改数组。

$check->alias = 'MySite';
$check->save([
	'period'	=> 120,
]);

enable()

启用检查。

disable()

禁用检查。

downtimes()

返回检查的停机信息数组;您可以在一个数组中提供任何已记录的选项作为第二个参数。

metrics()

返回检查的度量数组;您可以在一个数组中提供任何已记录的选项作为第二个参数。

delete()

删除检查。

Laravel集成

如果您使用Laravel,该软件包可以通过自动解析客户端、在维护模式下禁用检查和通过webhook监听事件来帮助您。

配置

首先发布配置文件

$ php artisan vendor:publish --Provider=Gbradley\Updown\Laravel\ServiceProvider

默认情况下,config/updown.php尝试从您的.env文件中读取UPDOWN_API_KEYUPDOWN_APP_TOKEN

服务提供者

服务提供者将被自动检测,并使用配置中的凭据配置一个客户端单例。您可以从容器中解析客户端或通过依赖注入。

use GBradley\Updown\Client;
...
public function handle(Client $updown)
{
	// do stuff
}

维护模式

如果您的应用程序由updown.io检查,您将希望在维护期间避免运行该检查。如果设置了您的应用程序令牌,该软件包将在您运行artisan down命令时自动禁用该检查,并在artisan up之后再次启用它。

如果您想禁用此行为,您可以在配置文件中操作。

Webhook

为了响应updown.io的webhooks,请在config/updown.php中启用webhooks。webhook URI已被设置为合理的默认值,但您可以根据需要更改它。如果您使用配置和/或路由缓存,现在应该刷新这些缓存。

接下来,前往您的updown.io设置并使用其完整地址添加webhook。现在,您的应用程序将开始接受webhook请求,接下来您只需处理相关事件。

监听器

要监听事件,请创建并注册监听器来监听GBradley\Updown\Laravel\Events\DownGBradley\Updown\Laravel\Events\Up事件。

protected $listen = [
    'GBradley\Updown\Laravel\Events\Down' => ['App\Listeners\Down'],
    'GBradley\Updown\Laravel\Events\Up' => ['App\Listeners\Up'],
];

当updown.io向您的webhook发送请求时,适当的监听器将接收到包含checkdowntime属性的event。

public function handle(Down $event)
{
	$evnt->check->alias;	// 'MySite'
}

广播

如果您想广播 UpDown事件,可能到您的前端,您可以继承它们并在config/updown.php中指定自定义类。

use GBradley\Updown\Laravel\Events\Down as BaseDown;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class Down extends BaseDown implements ShouldBroadcast
{
    ...
}

现在,您可以按照Laravel的标准广播程序将内容广播到您的频道。