pahan23456 / yii2-monitoring
yii2 的监控组件
dev-master
2018-10-08 13:01 UTC
Requires
- yiisoft/yii2: ~2.0.0
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