···177177178178 data.Assertions = assertionAsString
179179180180- if !isSuccessfull && req.Status == "active" {
181181- // Q: Why here we do not check if the status was previously active?
182182- checker.UpdateStatus(ctx, checker.UpdateData{
183183- MonitorId: req.MonitorID,
184184- Status: "error",
185185- StatusCode: res.Status,
186186- Region: h.Region,
187187- Message: res.Error,
188188- CronTimestamp: req.CronTimestamp,
189189- })
180180+ if req.Status == "active" {
181181+ if !isSuccessfull {
182182+ // Q: Why here we do not check if the status was previously active?
183183+ checker.UpdateStatus(ctx, checker.UpdateData{
184184+ MonitorId: req.MonitorID,
185185+ Status: "error",
186186+ StatusCode: res.Status,
187187+ Region: h.Region,
188188+ Message: res.Error,
189189+ CronTimestamp: req.CronTimestamp,
190190+ })
191191+ }
192192+ // Check if the status is degraded
193193+ if isSuccessfull && req.DegradedAfter > 0 && res.Latency > req.DegradedAfter {
194194+ checker.UpdateStatus(ctx, checker.UpdateData{
195195+ MonitorId: req.MonitorID,
196196+ Status: "degraded",
197197+ Region: h.Region,
198198+ StatusCode: res.Status,
199199+ CronTimestamp: req.CronTimestamp,
200200+ })
201201+ }
190202 }
191191- // Check if the status is degraded
192192- if isSuccessfull && req.Status == "active" {
193193- if req.DegradedAfter > 0 && res.Latency > req.DegradedAfter {
203203+204204+ // We were in error
205205+ if req.Status == "error" {
206206+ if isSuccessfull && req.DegradedAfter > 0 && res.Latency > req.DegradedAfter {
194207 checker.UpdateStatus(ctx, checker.UpdateData{
195208 MonitorId: req.MonitorID,
196209 Status: "degraded",
···199212 CronTimestamp: req.CronTimestamp,
200213 })
201214 }
202202- }
203203- // We were in error and now we are successful don't check for degraded
204204- if isSuccessfull && req.Status == "error" {
205205- // Q: Why here we check the data before updating the status in this scenario?
206206- checker.UpdateStatus(ctx, checker.UpdateData{
207207- MonitorId: req.MonitorID,
208208- Status: "active",
209209- Region: h.Region,
210210- StatusCode: res.Status,
211211- CronTimestamp: req.CronTimestamp,
212212- })
215215+216216+ if isSuccessfull && req.DegradedAfter > 0 && res.Latency < req.DegradedAfter {
217217+ checker.UpdateStatus(ctx, checker.UpdateData{
218218+ MonitorId: req.MonitorID,
219219+ Status: "active",
220220+ Region: h.Region,
221221+ StatusCode: res.Status,
222222+ CronTimestamp: req.CronTimestamp,
223223+ })
224224+ }
213225 }
214214- // if we were in degraded and now we are successful, we should update the status to active
215215- if isSuccessfull && req.Status == "degraded" {
216216- if req.DegradedAfter > 0 && res.Latency <= req.DegradedAfter {
226226+227227+ if req.Status == "degraded" {
228228+ // if we were in degraded and now we are successful, we should update the status to active
229229+ if isSuccessfull && req.DegradedAfter > 0 && res.Latency <= req.DegradedAfter {
217230 checker.UpdateStatus(ctx, checker.UpdateData{
218231 MonitorId: req.MonitorID,
219232 Status: "active",
233233+ Region: h.Region,
234234+ StatusCode: res.Status,
235235+ CronTimestamp: req.CronTimestamp,
236236+ })
237237+ }
238238+239239+ if !isSuccessfull {
240240+ checker.UpdateStatus(ctx, checker.UpdateData{
241241+ MonitorId: req.MonitorID,
242242+ Status: "error",
220243 Region: h.Region,
221244 StatusCode: res.Status,
222245 CronTimestamp: req.CronTimestamp,