mirror of https://github.com/statping/statping
updated logic
parent
b64811a991
commit
a8e8d2da06
|
@ -547,25 +547,21 @@ func apiAllServicesStatusHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
var srvs []services.ServiceWithDowntime
|
var srvs []services.ServiceWithDowntime
|
||||||
m := make(map[int64]downtimes.Downtime)
|
m := make(map[int64]downtimes.Downtime)
|
||||||
if t == "" {
|
if t == "" {
|
||||||
timeNow := time.Now()
|
dtime := downtimes.FindDowntime2()
|
||||||
dtime:=downtimes.FindDowntime2()
|
|
||||||
for i := 0; i < len(dtime); i++ {
|
for i := 0; i < len(dtime); i++ {
|
||||||
downtimeVar := dtime[i]
|
downtimeVar := dtime[i]
|
||||||
serviceVar,_ := services.Find(downtimeVar.ServiceId)
|
serviceVar, _ := services.Find(downtimeVar.ServiceId)
|
||||||
checkInterval := time.Duration(serviceVar.Interval)
|
if serviceVar.Online == false {
|
||||||
timeInstance := timeNow.Add(-time.Second * checkInterval)
|
|
||||||
if downtimeVar.End == nil || timeInstance.Before(*(downtimeVar.End)) || timeInstance.Equal(*(downtimeVar.End)) {
|
|
||||||
m[downtimeVar.ServiceId] = downtimeVar
|
m[downtimeVar.ServiceId] = downtimeVar
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
dtime := findAllDowntimes(t)
|
dtime := findAllDowntimes(t)
|
||||||
for i := 0; i < len(dtime); i += 1 {
|
for i := 0; i < len(dtime); i += 1 {
|
||||||
m[dtime[i].ServiceId] = dtime[i]
|
m[dtime[i].ServiceId] = dtime[i]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for _, v := range services.AllInOrder() {
|
for _, v := range services.AllInOrder() {
|
||||||
var serviceDowntimeVar services.ServiceWithDowntime
|
var serviceDowntimeVar services.ServiceWithDowntime
|
||||||
serviceDowntimeVar.Service = v
|
serviceDowntimeVar.Service = v
|
||||||
|
|
|
@ -67,7 +67,7 @@ func FindDowntime(timeVar time.Time) []Downtime {
|
||||||
return downtime
|
return downtime
|
||||||
}
|
}
|
||||||
|
|
||||||
func FindDowntime2()[]Downtime {
|
func FindDowntime2() []Downtime {
|
||||||
var downtime []Downtime
|
var downtime []Downtime
|
||||||
db.Raw("SELECT DISTINCT ON (downtimes.service) downtimes.* FROM downtimes ORDER BY service ASC, start DESC;").Scan(&downtime)
|
db.Raw("SELECT DISTINCT ON (downtimes.service) downtimes.* FROM downtimes ORDER BY service ASC, start DESC;").Scan(&downtime)
|
||||||
//db.Select("downtimes.*").Joins("left join downtimes as d2 on d2.service = downtimes.service AND downtimes.start < d2.start").Where("d2.end = ?",nil).Find(&downtime)
|
//db.Select("downtimes.*").Joins("left join downtimes as d2 on d2.service = downtimes.service AND downtimes.start < d2.start").Where("d2.end = ?",nil).Find(&downtime)
|
||||||
|
|
Loading…
Reference in New Issue