pahan23456/yii2-monitoring

yii2 的监控组件

dev-master 2018-10-08 13:01 UTC

This package is auto-updated.

Last update: 2024-09-09 02:17:02 UTC


README

带有通知的yii2监控组件,该扩展专门用于监控任何项目中的事件。在使用Web应用程序的过程中,可能会出现意外情况,例如由于代码编写错误或例如在导入1C商品时网络连接不良。为此,我们总能知道这次是什么方法出了问题。在“监控”扩展中,还开发了一个通知工厂,在发生错误或执行有错误的事件时,会通过电子邮件和Telegram发送通知。

安装

建议通过 composer 安装此扩展。

运行以下命令

php composer.phar require --prefer-dist pahan23456/yii2-monitoring "*"

После установки расширения необходимо выполнить миграцию:

 php yii migrate --migrationPath=@pahan23456/monitoring/src/migrations
 
 Для того, чтобы компонент был доступен глобально из Yii::$app, пропишем его в конфиге
 web.php и console.php
 :
 
 'bootstrap' => ['queue'],
 'components' => [
         'monitoring' => [
             'class' => '\pahan23456\monitoring\Monitoring'
         ],
         'queue' => [
                     'class' => \yii\queue\db\Queue::class,
                     'db' => 'db', // Компонент подключения к БД или его конфиг
                     'tableName' => '{{%queue}}', // Имя таблицы
                     'channel' => 'default', // Выбранный для очереди канал
                     'mutex' => \yii\mutex\MysqlMutex::class, // Мьютекс для синхронизации запросов,
                     'as log' => \yii\queue\LogBehavior::class,
                 ],
        ]
         
 Расширение внутри себя использует расширение yiisoft/yii2-queue, драйвер можно использовать любой, 
 в данном примере используем DbDriver.
 
 Для работы с консольными командами расширения мониторинг, необходимо
  в консольном конфиге (console.php) прописать:
 
 'controllerMap' => [
         'migrate' => [
             'class' => 'yii\console\controllers\MigrateController',
             'migrationPath' => null,
             'migrationNamespaces' => [
                 'yii\queue\db\migrations',
             ],
         ],
         'monitoring' => [
             'class' => '\pahan23456\monitoring\src\commands\MonitoringController',
         ],
     ],

                и затем выполнить yii migrate
                
 Внимание!!! Перед использованием расширения "Мониторинг", необходимо заполнить базу данных:
 User - люди, которым придет уведомление по email в случае ошибки;
 Group - логические группы, к которым принадлежат люди;
 Command - команды, которые необходимо мониторить, пример (rest1C.import);
UserCommandGroup - вспомогательная таблица, которая соединяет связи.
            

或添加

"pahan23456/yii2-monitoring": "*"

到您的 composer.json 文件的 require 部分。

使用方法

事件开始

$id = Yii::$app->monitoring->start('命令', '事件开始');

这里编写事件代码

将事件状态转换为“进行中”

Yii::$app->monitoring->inProcess($id, '主要事件过程');

事件完成条件

在成功的情况下

Yii::$app->monitoring->success($id, '事件成功完成', ['success' => $success]);

在发生错误的情况下

如果发生错误,则需要通知相关人员

通知发送在单独的线程中完成

Yii::$app->monitoring->fail($id, '事件未成功完成', ['fail' => $fails]);

在执行过程中出错的情况下

Yii::$app->monitoring->withError($id, '执行过程中出现错误', ['fail' => $fails]);

要清除累积的事件,需要使用控制台命令

事件在数据库中保存30天,保存时间可以更改

php yii monitoring/clear