👷 提升健壮性
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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user