Skip to content

Repository files navigation

Monitor: 数据文件监控和记录器

中文 | English

简介

此工具采用了程序(Monitor)和数据(Data)分离的模式,最初是为了绕过GitHub Action的收费策略,另外也满足了监控内容和数据存储的保密需求。

Monitor

Monitor是Public的,所以Action的执行不计费。

需要在Monitor的Action Secrets里配置若干参数,获取读写数据仓库的权限。具体请看Actions参数说明

数据仓库

数据仓库需要单独创建。使用时,需要自己配置一个数据仓库,建议取名:monitor-data,可以设置成private,也可以是public的。

只需要在根目录下创建监控配置文件config.json,格式请参考./config.json完整参数说明。 数据文件会保存在/data目录下。

定时的说明

可以用GitHub Action的schedule:

schedule:
- cron: '*/1 * * * *'

但它的轮询间隙是无法保证的,有时候甚至一小时才会触发一次。所以,对于定时的准确度,如果要求高,就不要用schedule,可以改用其他定时器通过workflow_dispatch的方式来触发Action。

比如Linux的cron,example:

*/1 **** root curl 'https://api.github.com/repos/[YOUR_ORG]/[YOUR_REPO]/actions/workflows/detect.yml/dispatches' -H 'authorization: Bearer [GITHUB_PAT]' -d '{"ref":"master"}'

配置示例

定时轮询数据文件. 仅当文件内容发生改变时,保存一份下来.

{
"id": "simple_get",
"url": "https://dummyjson.com/test"
}

当文件内容符合特定条件时,发送消息通知 (支持群晖Synology Chat和pushplus推送加)

{
"id": "livescore",
"url": "https://match.uefa.com/v5/livescore?matchId=2036177",
"format": true,
"filters": [
"hash",
"minute"
],
"condition": "length",
"notify": true,
"notifyType": "synology,pushplus",
"notifyCondition": ".length > 0"
}

完整参数说明

ConfigurationInstructionDefaultRequired
id任务的唯一标识Yes
url需要轮询的数据文件地址Yes
optionsfetch的optionsNo
every每隔几分钟执行一次,默认每次执行1No
random执行时间(秒)是否加入随机DelayFalseNo
randomMin是否在随机分钟时执行,需配合perDay使用No
perDay每天随机运行的总次数,需配合randomMin使用No
enable是否启用TrueNo
record是否保存TrueNo
filters文件差异比较时,需要忽略的属性No
condition文件差异比较时,需满足的额外条件No
format保存时是否格式化FalseNo
notify是否启用通知FalseNo
notifyType通知类型,支持synology、pushplus,多个用逗号分隔synologyNo
notifyCondition通知的额外条件No
errorCondition异常条件,满足时会记录以及发送消息通知No

Actions参数说明

Repository secretsInstructionRequired
DATA_REPO数据仓库Yes
DATA_REPO_PAT访问数据仓库的PATYes
NOTIFY_SERVERSynology Chat服务器地址No
NOTIFY_TOKENSynology Chat webhook tokenNo
PUSHPLUS_NOTIFY_TOKENpushplus推送tokenNo
PUSHPLUS_NOTIFY_SERVERpushplus服务器地址 (可选,默认使用官方地址)No

通知配置说明

配置方式

通知类型在 config.json 中通过 notifyType 字段配置,支持以下值:

  • synology - 使用Synology Chat通知
  • pushplus - 使用pushplus推送加通知
  • synology,pushplus - 同时使用两种通知方式

Synology Chat通知

  • 在config.json中设置 notifyType: "synology"(或不设置,默认就是)
  • 设置环境变量 NOTIFY_SERVER 为您的Synology Chat服务器地址
  • 设置环境变量 NOTIFY_TOKEN 为您的Synology Chat webhook token

pushplus推送加通知

  • 在config.json中设置 notifyType: "pushplus"
  • 设置环境变量 PUSHPLUS_NOTIFY_TOKEN 为您的pushplus token
  • 可选设置环境变量 PUSHPLUS_NOTIFY_SERVER 自定义服务器地址

多选通知

  • 在config.json中设置 notifyType: "synology,pushplus"
  • 同时配置上述两种通知方式的环境变量

获取pushplus token的方法

  1. 访问 pushplus.plus 注册账号
  2. 登录后在"个人中心"获取您的token
  3. 将token设置为 PUSHPLUS_NOTIFY_TOKEN 环境变量

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages