| Index: alertserver/go/alertserver/alertroutines.go
|
| diff --git a/alertserver/go/alertserver/alertroutines.go b/alertserver/go/alertserver/alertroutines.go
|
| index d512c3303c2293230c4d2328397f804507545696..42ec9ddace7d60d2b77af318b9acb009b6d29503 100644
|
| --- a/alertserver/go/alertserver/alertroutines.go
|
| +++ b/alertserver/go/alertserver/alertroutines.go
|
| @@ -10,6 +10,7 @@ import (
|
| "github.com/skia-dev/glog"
|
| "github.com/skia-dev/influxdb/client"
|
| "go.skia.org/infra/alertserver/go/alerting"
|
| + "go.skia.org/infra/go/autoroll"
|
| "go.skia.org/infra/go/buildbot"
|
| "go.skia.org/infra/go/util"
|
| )
|
| @@ -191,4 +192,30 @@ func StartAlertRoutines(am *alerting.AlertManager, tickInterval time.Duration, c
|
| }
|
| }
|
| }()
|
| +
|
| + // AutoRoll failure.
|
| + go func() {
|
| + lastSearch := time.Now()
|
| + for now := range time.Tick(time.Minute) {
|
| + glog.Infof("Searching for DEPS rolls.")
|
| + results, err := autoroll.GetRecentRolls(lastSearch)
|
| + if err != nil {
|
| + glog.Errorf("Failed to search for DEPS rolls: %v", err)
|
| + continue
|
| + }
|
| + lastSearch = now
|
| + for _, issue := range results {
|
| + if issue.Closed && !issue.Committed {
|
| + if err := am.AddAlert(&alerting.Alert{
|
| + Name: "AutoRoll Failed",
|
| + Message: fmt.Sprintf("DEPS roll failed: %s/%d", autoroll.RIETVELD_URL, issue.Issue),
|
| + Nag: int64(3 * time.Hour),
|
| + Actions: actions,
|
| + }); err != nil {
|
| + glog.Error(err)
|
| + }
|
| + }
|
| + }
|
| + }
|
| + }()
|
| }
|
|
|