From 345511e90f3a31f414d3bb43577a72476a1255e2 Mon Sep 17 00:00:00 2001 From: naiba Date: Sat, 16 Jan 2021 11:23:42 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=B8=20improve:=20=E4=BC=98=E5=8C=96age?= =?UTF-8?q?nt=E5=8F=96=E5=8F=8C=E6=A0=88IP=E3=80=81=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E9=A1=B5=E9=9D=A2=E5=B1=95=E7=A4=BA=E7=AD=96?= =?UTF-8?q?=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/dashboard/controller/controller.go | 24 ++++++++++++++ resource/template/theme-default/service.html | 21 ++++--------- resource/template/theme-hotaru/home.html | 1 + resource/template/theme-hotaru/service.html | 33 ++++++++++++++++++++ service/dao/dao.go | 2 +- service/monitor/monitor.go | 8 +++++ service/rpc/nezha.go | 3 +- 7 files changed, 75 insertions(+), 17 deletions(-) create mode 100644 resource/template/theme-hotaru/service.html diff --git a/cmd/dashboard/controller/controller.go b/cmd/dashboard/controller/controller.go index 405a2b7..99a1831 100644 --- a/cmd/dashboard/controller/controller.go +++ b/cmd/dashboard/controller/controller.go @@ -71,6 +71,30 @@ func ServeWeb(port uint) { today := time.Date(year, month, day, 0, 0, 0, 0, time.Local) return today.AddDate(0, 0, i-29).Format("1月2号") }, + "className": func(percent float32) string { + if percent == 0 { + return "" + } + if percent > 95 { + return "good" + } + if percent > 80 { + return "warning" + } + return "danger" + }, + "statusName": func(percent float32) string { + if percent == 0 { + return "无数据" + } + if percent > 95 { + return "良好" + } + if percent > 80 { + return "低可用" + } + return "故障" + }, }) r.Static("/static", "resource/static") r.LoadHTMLGlob("resource/template/**/*") diff --git a/resource/template/theme-default/service.html b/resource/template/theme-default/service.html index 8ff8d5f..0f43f2b 100644 --- a/resource/template/theme-default/service.html +++ b/resource/template/theme-default/service.html @@ -8,29 +8,20 @@

{{$service.Monitor.Name}}

-

30天在线率{{divU64 $service.TotalDown (addU64 $service.TotalUp $service.TotalDown)}}%

+

30天在线率{{divU64 $service.TotalUp (addU64 $service.TotalUp $service.TotalDown)}}%

{{range $i,$d := $service.Delay}} -
+
{{end}}
-
+
- {{if gt (addU64 $service.TotalUp $service.TotalDown) 0}} - {{if gt (divU64 $service.TotalDown (addU64 $service.TotalUp $service.TotalDown)) 30.0}}故障 - {{else if gt (divU64 $service.TotalDown (addU64 $service.TotalUp $service.TotalDown)) 10.0}} - 低可用{{else}}良好{{end}} - {{else}}无数据 - {{end}} + {{statusName (div (index $service.Up 29) (add (index $service.Up 29) (index $service.Down 29)))}}
diff --git a/resource/template/theme-hotaru/home.html b/resource/template/theme-hotaru/home.html index d53ca1b..723ff77 100644 --- a/resource/template/theme-hotaru/home.html +++ b/resource/template/theme-hotaru/home.html @@ -135,6 +135,7 @@ diff --git a/resource/template/theme-hotaru/service.html b/resource/template/theme-hotaru/service.html new file mode 100644 index 0000000..b7e82f1 --- /dev/null +++ b/resource/template/theme-hotaru/service.html @@ -0,0 +1,33 @@ +{{define "theme-hotaru/service"}} +{{template "common/header" .}} +{{template "common/menu" .}} +
+
+
+ {{range $service := .Services}} +
+
+

{{$service.Monitor.Name}}

+

30天在线率{{divU64 $service.TotalUp (addU64 $service.TotalUp $service.TotalDown)}}%

+
+
+ {{range $i,$d := $service.Delay}} +
+ +
+ {{end}} +
+
+ + {{statusName (div (index $service.Up 29) (add (index $service.Up 29) (index $service.Down 29)))}} +
+
+
+ {{end}} +
+
+
+{{template "common/footer" .}} +{{end}} \ No newline at end of file diff --git a/service/dao/dao.go b/service/dao/dao.go index de7eb81..2873b1f 100644 --- a/service/dao/dao.go +++ b/service/dao/dao.go @@ -26,7 +26,7 @@ var SortedServerList []*model.Server var ServerLock sync.RWMutex -var Version = "v0.2.0" +var Version = "v0.2.1" func ReSortServer() { SortedServerList = []*model.Server{} diff --git a/service/monitor/monitor.go b/service/monitor/monitor.go index e2e04cc..7c9e845 100644 --- a/service/monitor/monitor.go +++ b/service/monitor/monitor.go @@ -43,6 +43,14 @@ func GetHost() *model.Host { body, _ := ioutil.ReadAll(resp.Body) json.Unmarshal(body, &ip) } + + resp, err = http.Get("https://api-ipv6.ip.sb/ip") + if err == nil { + defer resp.Body.Close() + body, _ := ioutil.ReadAll(resp.Body) + ip.IP = fmt.Sprintf("ip(v4: %s, v6: %s)", ip.IP, body) + } + return &model.Host{ Platform: hi.OS, PlatformVersion: hi.PlatformVersion, diff --git a/service/rpc/nezha.go b/service/rpc/nezha.go index cb71052..e3c1351 100644 --- a/service/rpc/nezha.go +++ b/service/rpc/nezha.go @@ -87,7 +87,8 @@ func (s *NezhaHandler) ReportSystemInfo(c context.Context, r *pb.Host) (*pb.Rece host := model.PB2Host(r) dao.ServerLock.RLock() defer dao.ServerLock.RUnlock() - if dao.ServerList[clientID].Host != nil && + if dao.Conf.EnableIPChangeNotification && + dao.ServerList[clientID].Host != nil && dao.ServerList[clientID].Host.IP != "" && host.IP != "" && dao.ServerList[clientID].Host.IP != host.IP {