dashboard v0.2.4
优化当前状态数据
This commit is contained in:
parent
998724112e
commit
904b926187
@ -196,7 +196,7 @@ URL 里面也可放置占位符,请求时会进行简单的字符串替换。
|
|||||||
|
|
||||||
## 变更日志
|
## 变更日志
|
||||||
|
|
||||||
最新:`dashboard 0.2.3` `agent 0.2.3`,只记录最后一次更新导致必须更新面板的说明。
|
最新:`dashboard 0.2.4` `agent 0.2.3`,只记录最后一次更新导致必须更新面板的说明。
|
||||||
|
|
||||||
- `dashboard 0.2.0` `agent 0.2.0` **重大更新**
|
- `dashboard 0.2.0` `agent 0.2.0` **重大更新**
|
||||||
|
|
||||||
|
@ -28,6 +28,8 @@ type ServiceItem struct {
|
|||||||
Monitor model.Monitor
|
Monitor model.Monitor
|
||||||
TotalUp uint64
|
TotalUp uint64
|
||||||
TotalDown uint64
|
TotalDown uint64
|
||||||
|
CurrentUp uint64
|
||||||
|
CurrentDown uint64
|
||||||
Delay *[30]float32
|
Delay *[30]float32
|
||||||
Up *[30]int
|
Up *[30]int
|
||||||
Down *[30]int
|
Down *[30]int
|
||||||
@ -52,10 +54,13 @@ func (p *commonPage) service(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 整合数据
|
// 整合数据
|
||||||
|
todayStatus := make(map[uint64][]bool)
|
||||||
for i := 0; i < len(mhs); i++ {
|
for i := 0; i < len(mhs); i++ {
|
||||||
dayIndex := 29
|
dayIndex := 29
|
||||||
if mhs[i].CreatedAt.Before(today) {
|
if mhs[i].CreatedAt.Before(today) {
|
||||||
dayIndex = 28 - (int(today.Sub(mhs[i].CreatedAt).Hours()) / 24)
|
dayIndex = 28 - (int(today.Sub(mhs[i].CreatedAt).Hours()) / 24)
|
||||||
|
} else {
|
||||||
|
todayStatus[mhs[i].MonitorID] = append(todayStatus[mhs[i].MonitorID], mhs[i].Successful)
|
||||||
}
|
}
|
||||||
if mhs[i].Successful {
|
if mhs[i].Successful {
|
||||||
msm[mhs[i].MonitorID].TotalUp++
|
msm[mhs[i].MonitorID].TotalUp++
|
||||||
@ -67,6 +72,17 @@ func (p *commonPage) service(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 当日最后 20 个采样作为当前状态
|
||||||
|
for _, m := range msm {
|
||||||
|
for i := len(todayStatus[m.Monitor.ID]) - 1; i >= 0 && i >= (len(todayStatus[m.Monitor.ID])-1-20); i-- {
|
||||||
|
if todayStatus[m.Monitor.ID][i] {
|
||||||
|
m.CurrentUp++
|
||||||
|
} else {
|
||||||
|
m.CurrentDown++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
c.HTML(http.StatusOK, "theme-"+dao.Conf.Site.Theme+"/service", mygin.CommonEnvironment(c, gin.H{
|
c.HTML(http.StatusOK, "theme-"+dao.Conf.Site.Theme+"/service", mygin.CommonEnvironment(c, gin.H{
|
||||||
"Title": "服务状态",
|
"Title": "服务状态",
|
||||||
"Services": msm,
|
"Services": msm,
|
||||||
|
@ -78,26 +78,28 @@
|
|||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
|
|
||||||
.service-status .danger.button {
|
.service-status .delay-today {
|
||||||
background-color: crimson;
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.service-status .good.button {
|
.service-status .delay-today>i {
|
||||||
background-color: rgb(0, 235, 139);
|
display: inline-block;
|
||||||
|
width: 1.2em;
|
||||||
|
height: 1.2em;
|
||||||
|
border-radius: .6em;
|
||||||
|
background-color: grey;
|
||||||
|
margin-right: .3em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.service-status .warning.button {
|
.service-status .danger {
|
||||||
background-color: orange;
|
background-color: crimson !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.service-status .danger>i {
|
.service-status .good {
|
||||||
background-color: crimson;
|
background-color: rgb(0, 235, 139) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.service-status .good>i {
|
.service-status .warning {
|
||||||
background-color: rgb(0, 235, 139);
|
background-color: orange !important;
|
||||||
}
|
|
||||||
|
|
||||||
.service-status .warning>i {
|
|
||||||
background-color: orange;
|
|
||||||
}
|
}
|
@ -24,15 +24,11 @@
|
|||||||
<td class="ui center aligned">{{range $i,$d := $service.Delay}}
|
<td class="ui center aligned">{{range $i,$d := $service.Delay}}
|
||||||
<div class="ui icon button {{className (div (index $service.Up $i) (add (index $service.Up $i) (index $service.Down $i)))}}"
|
<div class="ui icon button {{className (div (index $service.Up $i) (add (index $service.Up $i) (index $service.Down $i)))}}"
|
||||||
data-tooltip="{{dayBefore $i}},平均延迟:{{float32f $d}}ms">
|
data-tooltip="{{dayBefore $i}},平均延迟:{{float32f $d}}ms">
|
||||||
<i class="delay"></i>
|
|
||||||
</div> {{end}}
|
</div> {{end}}
|
||||||
</td>
|
</td>
|
||||||
<td class="ui center aligned">
|
<td class="ui center aligned delay-today">
|
||||||
<div
|
<i class="delay-today {{className (divU64 $service.CurrentUp (addU64 $service.CurrentUp $service.CurrentDown))}}"></i>
|
||||||
class="round {{className (div (index $service.Up 29) (add (index $service.Up 29) (index $service.Down 29)))}}">
|
{{statusName (divU64 $service.CurrentUp (addU64 $service.CurrentUp $service.CurrentDown))}}
|
||||||
<i></i>
|
|
||||||
{{statusName (div (index $service.Up 29) (add (index $service.Up 29) (index $service.Down 29)))}}
|
|
||||||
</div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr> {{end}}
|
</tr> {{end}}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -24,15 +24,11 @@
|
|||||||
<td class="ui center aligned">{{range $i,$d := $service.Delay}}
|
<td class="ui center aligned">{{range $i,$d := $service.Delay}}
|
||||||
<div class="ui icon button {{className (div (index $service.Up $i) (add (index $service.Up $i) (index $service.Down $i)))}}"
|
<div class="ui icon button {{className (div (index $service.Up $i) (add (index $service.Up $i) (index $service.Down $i)))}}"
|
||||||
data-tooltip="{{dayBefore $i}},平均延迟:{{float32f $d}}ms">
|
data-tooltip="{{dayBefore $i}},平均延迟:{{float32f $d}}ms">
|
||||||
<i class="delay"></i>
|
|
||||||
</div> {{end}}
|
</div> {{end}}
|
||||||
</td>
|
</td>
|
||||||
<td class="ui center aligned">
|
<td class="ui center aligned delay-today">
|
||||||
<div
|
<i class="delay-today {{className (divU64 $service.CurrentUp (addU64 $service.CurrentUp $service.CurrentDown))}}"></i>
|
||||||
class="round {{className (div (index $service.Up 29) (add (index $service.Up 29) (index $service.Down 29)))}}">
|
{{statusName (divU64 $service.CurrentUp (addU64 $service.CurrentUp $service.CurrentDown))}}
|
||||||
<i></i>
|
|
||||||
{{statusName (div (index $service.Up 29) (add (index $service.Up 29) (index $service.Down 29)))}}
|
|
||||||
</div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr> {{end}}
|
</tr> {{end}}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -26,7 +26,7 @@ var SortedServerList []*model.Server
|
|||||||
|
|
||||||
var ServerLock sync.RWMutex
|
var ServerLock sync.RWMutex
|
||||||
|
|
||||||
var Version = "v0.2.3"
|
var Version = "v0.2.4"
|
||||||
|
|
||||||
func ReSortServer() {
|
func ReSortServer() {
|
||||||
SortedServerList = []*model.Server{}
|
SortedServerList = []*model.Server{}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user