exolnet/laravel-heartbeat

定期安排任务向监控系统发送心跳。

v2.0.0 2020-03-04 23:25 UTC

README

Latest Stable Version Software License Build Status Total Downloads

定期安排任务向监控系统发送心跳。

安装

使用Composer安装此包

composer require exolnet/laravel-heartbeat

如果您不使用包自动发现,请将服务提供者添加到 config/app.php 中的 providers 数组

Exolnet\Heartbeat\HeartbeatServiceProvider::class

并将外观添加到 config/app.php 中的 facades 数组

'Heartbeat' => Exolnet\Heartbeat\HeartbeatFacade::class

配置

为了编辑此包的默认配置(例如,您可以定义预设并配置队列监控),您可以执行

php artisan vendor:publish --provider="Exolnet\Heartbeat\HeartbeatServiceProvider"

之后,配置文件 config/heartbeat.php 将被创建。此文件包含可以为此包配置的所有选项。默认配置文件 在此处可以找到

用法

发送信号

使用心跳外观

您可以通过 Heartbeat 外观发送心跳信号。要做到这一点,指定您想要使用的通道,并调用带有该通道所需参数的 signal 方法。例如,对于 Http 通道,它可能看起来像这样

Heartbeat::channel('http')->signal('https://beats.envoyer.io/heartbeat/example');

或者,您也可以通过调用 Heartbeat 外观中定义的方法助手来发送相同的信号

Heartbeat::http('https://beats.envoyer.io/heartbeat/example');

使用Artisan

心跳还可以与 heartbeat Artisan 命令一起使用。要做到这一点,指定通道,并按照与 signal 方法相同的顺序指定通道的参数。以下是如何使用它的两个示例

php artisan heartbeat preset preset-name
php artisan heartbeat http https://beats.envoyer.io/heartbeat/example

指定预设

方便的 preset 通道允许您在配置文件中定义所有心跳配置。首先,让我们看看一个 preset 配置的例子

'presets' => [
    'envoyer' => [
        'channel' => 'http',
        'url' => 'https://beats.envoyer.io/heartbeat/example',
    ],
]

现在,此配置可以由 preset 通道使用,在 http 通道上调用信号方法

Heartbeat::preset('envoyer');

心跳为每个通道都列出了所有需要的参数。

队列监控

心跳还可以用于监控您的Laravel队列系统。当您启用Laravel的调度程序时,此功能默认启用。使用预设 queue,并在您的 storage/app 文件夹中每十五分钟创建一个名为 queue.heartbeat 的文件。

要配置此,只需发布包配置并更新 queue 预设。

可用通道

磁盘

用于在Laravel文件系统磁盘上存储心跳的通道。

文件

用于在文件中存储心跳的通道

Http

用于通过调用URL来执行心跳的通道

自定义通道

心跳附带了一些通道,但您可能想编写自己的驱动程序以通过其他通道发送信号。为了做到这一点,定义一个包含 signal 方法的类。此方法应接收您需要发送信号的所有参数

<?php

namespace App\Heartbeats;

class CustomChannel
{
    /**
     * Send a heartbeat signal.
     *
     * @param string $someOption
     * @param array $moreOptions
     * @return void
     */
    public function signal($someOption, array $moreOptions = [])
    {
        // Send the signal according to the specified options.
    }
}

一旦定义了您的通道类,您就可以通过扩展 Heartbeat 的驱动来添加您的驱动。这可以添加到服务提供者的 boot 方法中

<?php

namespace App\Providers;

use App\Heartbeats\CustomChannel;
use Heartbeat;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;

class AuthServiceProvider extends ServiceProvider
{
    /**
     * @return void
     */
    public function boot()
    {
        Heartbeat::extend('custom', function($app) {
            return $app->make(CustomChannel::class);
        });
    }
}

最后,您现在可以使用您的驱动程序,就像原生一样

Heartbeat::custom('someOption', ['more' => 'options']);

测试

要运行phpUnit测试,请使用

composer test

贡献

请参阅CONTRIBUTINGCODE_OF_CONDUCT以获取详细信息。

安全性

如果您发现任何安全相关的问题,请通过电子邮件security@exolnet.com而不是使用问题跟踪器。

致谢

许可证

本代码受MIT许可证许可。请参阅许可证文件以获取更多信息。