diff --git a/checker/worker/remote.go b/checker/worker/remote.go index a424e4e9e..77f6f1ca1 100644 --- a/checker/worker/remote.go +++ b/checker/worker/remote.go @@ -48,6 +48,7 @@ func (worker *Checker) checkRemote() error { remoteAvailable, err := source.(*remote.Remote).IsRemoteAvailable() if !remoteAvailable { worker.Logger.Infof("Remote API is unavailable. Stop checking remote triggers. Error: %s", err.Error()) + worker.Metrics.RemoteAvailabilityCheckFailed.Mark(1) } else { worker.Logger.Debug("Checking remote triggers") triggerIds, err := worker.Database.GetRemoteTriggerIDs() diff --git a/metrics/checker.go b/metrics/checker.go index 0d92592c3..5fcdd449f 100644 --- a/metrics/checker.go +++ b/metrics/checker.go @@ -4,11 +4,12 @@ import "github.com/moira-alert/moira" // CheckerMetrics is a collection of metrics used in checker type CheckerMetrics struct { - LocalMetrics *CheckMetrics - RemoteMetrics *CheckMetrics - MetricEventsChannelLen Histogram - UnusedTriggersCount Histogram - MetricEventsHandleTime Timer + LocalMetrics *CheckMetrics + RemoteMetrics *CheckMetrics + MetricEventsChannelLen Histogram + UnusedTriggersCount Histogram + MetricEventsHandleTime Timer + RemoteAvailabilityCheckFailed Meter } // GetCheckMetrics return check metrics dependent on given trigger type @@ -37,6 +38,7 @@ func ConfigureCheckerMetrics(registry Registry, remoteEnabled bool) *CheckerMetr } if remoteEnabled { m.RemoteMetrics = configureCheckMetrics(registry, "remote") + m.RemoteAvailabilityCheckFailed = registry.NewMeter("remote", "unavailable") } return m }