Openstatus www.openstatus.dev
6
fork

Configure Feed

Select the types of activity you want to include in your feed.

๐Ÿ› update status (#1021)

authored by

Thibault Le Ouay and committed by
GitHub
87be3ed3 9e01c0b4

+50 -27
+50 -27
apps/checker/handlers/checker.go
··· 177 177 178 178 data.Assertions = assertionAsString 179 179 180 - if !isSuccessfull && req.Status == "active" { 181 - // Q: Why here we do not check if the status was previously active? 182 - checker.UpdateStatus(ctx, checker.UpdateData{ 183 - MonitorId: req.MonitorID, 184 - Status: "error", 185 - StatusCode: res.Status, 186 - Region: h.Region, 187 - Message: res.Error, 188 - CronTimestamp: req.CronTimestamp, 189 - }) 180 + if req.Status == "active" { 181 + if !isSuccessfull { 182 + // Q: Why here we do not check if the status was previously active? 183 + checker.UpdateStatus(ctx, checker.UpdateData{ 184 + MonitorId: req.MonitorID, 185 + Status: "error", 186 + StatusCode: res.Status, 187 + Region: h.Region, 188 + Message: res.Error, 189 + CronTimestamp: req.CronTimestamp, 190 + }) 191 + } 192 + // Check if the status is degraded 193 + if isSuccessfull && req.DegradedAfter > 0 && res.Latency > req.DegradedAfter { 194 + checker.UpdateStatus(ctx, checker.UpdateData{ 195 + MonitorId: req.MonitorID, 196 + Status: "degraded", 197 + Region: h.Region, 198 + StatusCode: res.Status, 199 + CronTimestamp: req.CronTimestamp, 200 + }) 201 + } 190 202 } 191 - // Check if the status is degraded 192 - if isSuccessfull && req.Status == "active" { 193 - if req.DegradedAfter > 0 && res.Latency > req.DegradedAfter { 203 + 204 + // We were in error 205 + if req.Status == "error" { 206 + if isSuccessfull && req.DegradedAfter > 0 && res.Latency > req.DegradedAfter { 194 207 checker.UpdateStatus(ctx, checker.UpdateData{ 195 208 MonitorId: req.MonitorID, 196 209 Status: "degraded", ··· 199 212 CronTimestamp: req.CronTimestamp, 200 213 }) 201 214 } 202 - } 203 - // We were in error and now we are successful don't check for degraded 204 - if isSuccessfull && req.Status == "error" { 205 - // Q: Why here we check the data before updating the status in this scenario? 206 - checker.UpdateStatus(ctx, checker.UpdateData{ 207 - MonitorId: req.MonitorID, 208 - Status: "active", 209 - Region: h.Region, 210 - StatusCode: res.Status, 211 - CronTimestamp: req.CronTimestamp, 212 - }) 215 + 216 + if isSuccessfull && req.DegradedAfter > 0 && res.Latency < req.DegradedAfter { 217 + checker.UpdateStatus(ctx, checker.UpdateData{ 218 + MonitorId: req.MonitorID, 219 + Status: "active", 220 + Region: h.Region, 221 + StatusCode: res.Status, 222 + CronTimestamp: req.CronTimestamp, 223 + }) 224 + } 213 225 } 214 - // if we were in degraded and now we are successful, we should update the status to active 215 - if isSuccessfull && req.Status == "degraded" { 216 - if req.DegradedAfter > 0 && res.Latency <= req.DegradedAfter { 226 + 227 + if req.Status == "degraded" { 228 + // if we were in degraded and now we are successful, we should update the status to active 229 + if isSuccessfull && req.DegradedAfter > 0 && res.Latency <= req.DegradedAfter { 217 230 checker.UpdateStatus(ctx, checker.UpdateData{ 218 231 MonitorId: req.MonitorID, 219 232 Status: "active", 233 + Region: h.Region, 234 + StatusCode: res.Status, 235 + CronTimestamp: req.CronTimestamp, 236 + }) 237 + } 238 + 239 + if !isSuccessfull { 240 + checker.UpdateStatus(ctx, checker.UpdateData{ 241 + MonitorId: req.MonitorID, 242 + Status: "error", 220 243 Region: h.Region, 221 244 StatusCode: res.Status, 222 245 CronTimestamp: req.CronTimestamp,