Alerting: Update references to alertmanager (#40904)

* update module reference for alertmanager
* remove workaround
This commit is contained in:
Yuriy Tseretyan
2021-10-29 10:03:51 -04:00
committed by GitHub
parent 24db1efa9d
commit a1e1a728ad
3 changed files with 55 additions and 33 deletions
+8 -28
View File
@@ -8,7 +8,6 @@ import (
"errors"
"fmt"
"net/url"
"os"
"path/filepath"
"regexp"
"strconv"
@@ -31,6 +30,8 @@ import (
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/common/model"
pb "github.com/prometheus/alertmanager/silence/silencepb"
"github.com/grafana/grafana/pkg/infra/kvstore"
"github.com/grafana/grafana/pkg/infra/log"
apimodels "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions"
@@ -40,7 +41,6 @@ import (
"github.com/grafana/grafana/pkg/services/ngalert/notifier/channels"
"github.com/grafana/grafana/pkg/services/ngalert/store"
"github.com/grafana/grafana/pkg/setting"
pb "github.com/prometheus/alertmanager/silence/silencepb"
)
const (
@@ -165,7 +165,12 @@ func newAlertmanager(orgID int64, cfg *setting.Cfg, store store.AlertingStore, k
c := am.peer.AddState(fmt.Sprintf("notificationlog:%d", am.orgID), am.notificationLog, m.Registerer)
am.notificationLog.SetBroadcast(c.Broadcast)
am.silences, err = newSilences(silencesFilePath, m.Registerer)
// Initialize silences
am.silences, err = silence.New(silence.Options{
Metrics: m.Registerer,
SnapshotFile: silencesFilePath,
Retention: retentionNotificationsAndSilences,
})
if err != nil {
return nil, fmt.Errorf("unable to initialize the silencing component of alerting: %w", err)
}
@@ -190,31 +195,6 @@ func newAlertmanager(orgID int64, cfg *setting.Cfg, store store.AlertingStore, k
return am, nil
}
// newSilences initializes returns *silence.Silences (from the Alertmanager) with silences taken from the file by path silencesFilePath and specific metrics registerer.
func newSilences(silencesFilePath string, registerer prometheus.Registerer) (*silence.Silences, error) {
//TODO yuriy: Replace with silencesFilePath when fix in https://github.com/prometheus/alertmanager/pull/2710 is merged.
silenceOpts := silence.Options{
Metrics: registerer,
Retention: retentionNotificationsAndSilences,
}
//The path is generated by the filestore. So presumably it should be safe
//nolint:gosec
silencesFileReader, err := os.Open(silencesFilePath)
if err != nil && !os.IsNotExist(err) {
return nil, err
}
if silencesFileReader != nil {
silenceOpts.SnapshotReader = silencesFileReader
defer func(file *os.File) {
_ = file.Close()
}(silencesFileReader)
}
// Initialize silences
return silence.New(silenceOpts)
}
func (am *Alertmanager) Ready() bool {
// We consider AM as ready only when the config has been
// applied at least once successfully. Until then, some objects