diff options
| author | MHSanaei <ho3ein.sanaei@gmail.com> | 2023-03-17 19:30:14 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-17 19:30:14 +0300 |
| commit | f25a7a571e6103587558e970673a09375b1ef318 (patch) | |
| tree | 24e645ff37cec8d8b166bfe59403c4fb19a1da2c /web/job/check_cpu_usage.go | |
| parent | b9ffe62d698016b52a5a36ede0eb2bdf86085d8a (diff) | |
| parent | 87e173b56767a861210dc0cc4913bab232765dfd (diff) | |
Merge pull request #26 from MHSanaei/dev
alireza
Diffstat (limited to 'web/job/check_cpu_usage.go')
| -rw-r--r-- | web/job/check_cpu_usage.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/web/job/check_cpu_usage.go b/web/job/check_cpu_usage.go new file mode 100644 index 00000000..cfc86b60 --- /dev/null +++ b/web/job/check_cpu_usage.go @@ -0,0 +1,30 @@ +package job + +import ( + "fmt" + "time" + "x-ui/web/service" + + "github.com/shirou/gopsutil/v3/cpu" +) + +type CheckCpuJob struct { + tgbotService service.Tgbot + settingService service.SettingService +} + +func NewCheckCpuJob() *CheckCpuJob { + return new(CheckCpuJob) +} + +// Here run is a interface method of Job interface +func (j *CheckCpuJob) Run() { + threshold, _ := j.settingService.GetTgCpu() + + // get latest status of server + percent, err := cpu.Percent(1*time.Second, false) + if err == nil && percent[0] > float64(threshold) { + msg := fmt.Sprintf("🔴 CPU usage %.2f%% is more than threshold %d%%", percent[0], threshold) + j.tgbotService.SendMsgToTgbotAdmins(msg) + } +} |
