Qihoo360 / doraemon

Doraemon is a Prometheus based monitor system
GNU General Public License v3.0
656 stars 207 forks source link

关于alter-gateway中model/alert.go查询已经有的报警信息 时,为什么只取queryres[0]第一条信息? #95

Open sunism opened 3 years ago

sunism commented 3 years ago

_, err := Ormer().Raw("SELECT id,status FROM alert WHERE rule_id =? AND labels=? AND fired_at=?", a.ruleId, a.label, a.firedAt).QueryRows(&queryres) if err == nil { if len(queryres) > 0 { // alert has been triggered by post requests before ------> if queryres[0].Status != 0 { //为什么只取第一条查询到的信息,有多条信息如何处理

sunism commented 3 years ago

_, err := Ormer().Raw("SELECT id,status FROM alert WHERE rule_id =? AND labels=? AND fired_at=?", a.ruleId, a.label, a.firedAt).QueryRows(&queryres), 按照这种查询方式,rule_id, labels,和 fired_at都要同时满足的情况,只可能查出一条数据吧,为什么queryres要用数组呢

jayryu commented 3 years ago

_, err := Ormer().Raw("SELECT id,status FROM alert WHERE rule_id =? AND labels=? AND fired_at=?", a.ruleId, a.label, a.firedAt).QueryRows(&queryres), 按照这种查询方式,rule_id, labels,和 fired_at都要同时满足的情况,只可能查出一条数据吧,为什么queryres要用数组呢 你说的对,这里就是个人习惯用数组了