mirror of
https://github.com/nezhahq/nezha.git
synced 2025-01-22 20:58:14 -05:00
👷 提升健壮性
This commit is contained in:
parent
fc06fc4b9d
commit
438a8c393c
@ -1,7 +1,7 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
<img width="500" style="max-width:100%" src="resource/static/brand.png" title="哪吒监控">
|
<img width="500" style="max-width:100%" src="resource/static/brand.png" title="哪吒监控">
|
||||||
<br><br>
|
<br><br>
|
||||||
<img src="https://img.shields.io/github/workflow/status/naiba/nezha/Dashboard%20image?label=Dash%20v0.9.8&logo=github&style=for-the-badge"> <img src="https://img.shields.io/github/v/release/naiba/nezha?color=brightgreen&label=Agent&style=for-the-badge&logo=github"> <img src="https://img.shields.io/github/workflow/status/naiba/nezha/Agent%20release?label=Agent%20CI&logo=github&style=for-the-badge"> <img src="https://img.shields.io/badge/Installer-v0.6.4-brightgreen?style=for-the-badge&logo=linux">
|
<img src="https://img.shields.io/github/workflow/status/naiba/nezha/Dashboard%20image?label=Dash%20v0.9.9&logo=github&style=for-the-badge"> <img src="https://img.shields.io/github/v/release/naiba/nezha?color=brightgreen&label=Agent&style=for-the-badge&logo=github"> <img src="https://img.shields.io/github/workflow/status/naiba/nezha/Agent%20release?label=Agent%20CI&logo=github&style=for-the-badge"> <img src="https://img.shields.io/badge/Installer-v0.6.4-brightgreen?style=for-the-badge&logo=linux">
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<p>:trollface: <b>哪吒监控</b> 一站式轻监控轻运维系统。支持系统状态、HTTP(SSL 证书变更、即将到期、到期)、TCP、Ping 监控报警,命令批量执行和计划任务。</p>
|
<p>:trollface: <b>哪吒监控</b> 一站式轻监控轻运维系统。支持系统状态、HTTP(SSL 证书变更、即将到期、到期)、TCP、Ping 监控报警,命令批量执行和计划任务。</p>
|
||||||
|
@ -13,7 +13,7 @@ import (
|
|||||||
pb "github.com/naiba/nezha/proto"
|
pb "github.com/naiba/nezha/proto"
|
||||||
)
|
)
|
||||||
|
|
||||||
var Version = "v0.9.8" // !!记得修改 README 中的 badge 版本!!
|
var Version = "v0.9.9" // !!记得修改 README 中的 badge 版本!!
|
||||||
|
|
||||||
var (
|
var (
|
||||||
Conf *model.Config
|
Conf *model.Config
|
||||||
|
@ -132,6 +132,7 @@ func (ss *ServiceSentinel) Monitors() []model.Monitor {
|
|||||||
func (ss *ServiceSentinel) OnMonitorUpdate() {
|
func (ss *ServiceSentinel) OnMonitorUpdate() {
|
||||||
var monitors []model.Monitor
|
var monitors []model.Monitor
|
||||||
DB.Find(&monitors)
|
DB.Find(&monitors)
|
||||||
|
|
||||||
ss.monitorsLock.Lock()
|
ss.monitorsLock.Lock()
|
||||||
defer ss.monitorsLock.Unlock()
|
defer ss.monitorsLock.Unlock()
|
||||||
ss.monitors = make(map[uint64]model.Monitor)
|
ss.monitors = make(map[uint64]model.Monitor)
|
||||||
@ -145,14 +146,11 @@ func (ss *ServiceSentinel) OnMonitorUpdate() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ss.monthlyStatusLock.Lock()
|
|
||||||
defer ss.monthlyStatusLock.Unlock()
|
|
||||||
year, month, day := time.Now().Date()
|
year, month, day := time.Now().Date()
|
||||||
today := time.Date(year, month, day, 0, 0, 0, 0, time.Local)
|
today := time.Date(year, month, day, 0, 0, 0, 0, time.Local)
|
||||||
|
|
||||||
// 加载历史记录
|
ss.monthlyStatusLock.Lock()
|
||||||
var mhs []model.MonitorHistory
|
defer ss.monthlyStatusLock.Unlock()
|
||||||
DB.Where("created_at >= ? AND created_at < ?", today.AddDate(0, 0, -29), today).Find(&mhs)
|
|
||||||
for i := 0; i < len(monitors); i++ {
|
for i := 0; i < len(monitors); i++ {
|
||||||
ServiceSentinelShared.monthlyStatus[monitors[i].ID] = &model.ServiceItemResponse{
|
ServiceSentinelShared.monthlyStatus[monitors[i].ID] = &model.ServiceItemResponse{
|
||||||
Monitor: monitors[i],
|
Monitor: monitors[i],
|
||||||
@ -162,8 +160,13 @@ func (ss *ServiceSentinel) OnMonitorUpdate() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 整合数据
|
// 加载历史记录
|
||||||
|
var mhs []model.MonitorHistory
|
||||||
|
DB.Where("created_at >= ? AND created_at < ?", today.AddDate(0, 0, -29), today).Find(&mhs)
|
||||||
for i := 0; i < len(mhs); i++ {
|
for i := 0; i < len(mhs); i++ {
|
||||||
|
if ServiceSentinelShared.monthlyStatus[mhs[i].MonitorID] == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
dayIndex := 28 - (int(today.Sub(mhs[i].CreatedAt).Hours()) / 24)
|
dayIndex := 28 - (int(today.Sub(mhs[i].CreatedAt).Hours()) / 24)
|
||||||
if mhs[i].Successful {
|
if mhs[i].Successful {
|
||||||
ServiceSentinelShared.monthlyStatus[mhs[i].MonitorID].TotalUp++
|
ServiceSentinelShared.monthlyStatus[mhs[i].MonitorID].TotalUp++
|
||||||
|
Loading…
Reference in New Issue
Block a user