1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package routes
- import (
- "net/http"
- "github.com/710leo/urlooker/modules/web/g"
- "github.com/710leo/urlooker/modules/web/http/errors"
- "github.com/710leo/urlooker/modules/web/http/param"
- "github.com/710leo/urlooker/modules/web/http/render"
- "github.com/710leo/urlooker/modules/web/model"
- "github.com/710leo/urlooker/modules/web/utils"
- )
- type Url struct {
- Ip string `json:"ip"` //agent所在机器的ip
- Status []*model.ItemStatus `json:"status"`
- }
- func UrlStatus(w http.ResponseWriter, r *http.Request) {
- sid := param.MustInt64(r, "id")
- sidIpIndex, err := model.RelSidIpRepo.GetBySid(sid)
- errors.MaybePanic(err)
- urlArr := make([]Url, 0)
- idx := 0
- var ts int64 = 0
- for i, index := range sidIpIndex {
- url := Url{
- Ip: "agent-" + index.Ip,
- }
- url.Status, err = model.ItemStatusRepo.GetByIpAndSid(index.Ip, index.Sid)
- errors.MaybePanic(err)
- if len(url.Status) > 0 && ts < url.Status[len(url.Status)-1].PushTime {
- ts = url.Status[len(url.Status)-1].PushTime
- idx = i
- }
- urlArr = append(urlArr, url)
- }
- //绘图使用,时间轴
- var timeData []string
- if len(urlArr) > 0 {
- for _, item := range urlArr[idx].Status {
- t := utils.TimeFormat(item.PushTime)
- timeData = append(timeData, t)
- }
- }
- events, err := model.EventRepo.GetByStrategyId(sid, g.Config.ShowDurationMin*60)
- errors.MaybePanic(err)
- strategy, err := model.GetStrategyById(sid)
- errors.MaybePanic(err)
- render.Put(r, "AlarmOn", g.Config.Alarm.Enable)
- render.Put(r, "TimeData", timeData)
- render.Put(r, "Id", sid)
- render.Put(r, "Url", strategy.Url)
- render.Put(r, "Events", events)
- render.Put(r, "Data", urlArr)
- render.HTML(r, w, "chart/index")
- }
|