mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Prometheus: Update dependency to v0.52.0 (#87809)
* Prometheus: Update dependency to v0.52.0 * go work sync * fix panics in tests * go work sync * prometheus v0.52.0 * handle errors * Update pkg/services/ngalert/sender/sender_test.go Co-authored-by: Santiago <santiagohernandez.1997@gmail.com> * Update pkg/services/ngalert/sender/sender_test.go Co-authored-by: Santiago <santiagohernandez.1997@gmail.com> --------- Co-authored-by: Santiago <santiagohernandez.1997@gmail.com> Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
This commit is contained in:
@@ -22,6 +22,8 @@ import (
|
||||
alertingClusterPB "github.com/grafana/alerting/cluster/clusterpb"
|
||||
alertingNotify "github.com/grafana/alerting/notify"
|
||||
|
||||
"gopkg.in/yaml.v3"
|
||||
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
apimodels "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions"
|
||||
"github.com/grafana/grafana/pkg/services/ngalert/metrics"
|
||||
@@ -29,7 +31,6 @@ import (
|
||||
"github.com/grafana/grafana/pkg/services/ngalert/notifier"
|
||||
remoteClient "github.com/grafana/grafana/pkg/services/ngalert/remote/client"
|
||||
"github.com/grafana/grafana/pkg/services/ngalert/sender"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
type stateStore interface {
|
||||
@@ -124,7 +125,10 @@ func NewAlertmanager(cfg AlertmanagerConfig, store stateStore, decryptFn Decrypt
|
||||
return c.Do(req.WithContext(ctx))
|
||||
}
|
||||
senderLogger := log.New("ngalert.sender.external-alertmanager")
|
||||
s := sender.NewExternalAlertmanagerSender(senderLogger, prometheus.NewRegistry(), sender.WithDoFunc(doFunc))
|
||||
s, err := sender.NewExternalAlertmanagerSender(senderLogger, prometheus.NewRegistry(), sender.WithDoFunc(doFunc))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
s.Run()
|
||||
err = s.ApplyConfig(cfg.OrgID, 0, []sender.ExternalAMcfg{{URL: cfg.URL + "/alertmanager"}})
|
||||
if err != nil {
|
||||
|
||||
@@ -165,7 +165,10 @@ func (d *AlertsRouter) SyncAndApplyConfigFromDatabase(ctx context.Context) error
|
||||
// No sender and have Alertmanager(s) to send to - start a new one.
|
||||
d.logger.Info("Creating new sender for the external alertmanagers", "org", cfg.OrgID, "alertmanagers", redactedAMs)
|
||||
senderLogger := log.New("ngalert.sender.external-alertmanager")
|
||||
s := NewExternalAlertmanagerSender(senderLogger, prometheus.NewRegistry())
|
||||
s, err := NewExternalAlertmanagerSender(senderLogger, prometheus.NewRegistry())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
d.externalAlertmanagers[cfg.OrgID] = s
|
||||
s.Run()
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ func (cfg *ExternalAMcfg) headerString() string {
|
||||
return result.String()
|
||||
}
|
||||
|
||||
func NewExternalAlertmanagerSender(l log.Logger, reg prometheus.Registerer, opts ...Option) *ExternalAlertmanager {
|
||||
func NewExternalAlertmanagerSender(l log.Logger, reg prometheus.Registerer, opts ...Option) (*ExternalAlertmanager, error) {
|
||||
sdCtx, sdCancel := context.WithCancel(context.Background())
|
||||
s := &ExternalAlertmanager{
|
||||
logger: l,
|
||||
@@ -93,14 +93,22 @@ func NewExternalAlertmanagerSender(l log.Logger, reg prometheus.Registerer, opts
|
||||
&Options{QueueCapacity: defaultMaxQueueCapacity, Registerer: reg},
|
||||
s.logger,
|
||||
)
|
||||
sdMetrics, err := discovery.CreateAndRegisterSDMetrics(prometheus.NewRegistry())
|
||||
if err != nil {
|
||||
s.logger.Error("failed to register service discovery metrics", "error", err)
|
||||
return nil, err
|
||||
}
|
||||
s.sdManager = discovery.NewManager(sdCtx, s.logger, prometheus.NewRegistry(), sdMetrics)
|
||||
|
||||
s.sdManager = discovery.NewManager(sdCtx, s.logger)
|
||||
if s.sdManager == nil {
|
||||
return nil, errors.New("failed to create new discovery manager")
|
||||
}
|
||||
|
||||
for _, opt := range opts {
|
||||
opt(s)
|
||||
}
|
||||
|
||||
return s
|
||||
return s, nil
|
||||
}
|
||||
|
||||
// ApplyConfig syncs a configuration with the sender.
|
||||
|
||||
@@ -3,11 +3,12 @@ package sender
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"github.com/prometheus/alertmanager/api/v2/models"
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
"github.com/prometheus/prometheus/model/labels"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
)
|
||||
|
||||
func TestSanitizeLabelName(t *testing.T) {
|
||||
@@ -51,7 +52,8 @@ func TestSanitizeLabelName(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
logger := log.New("ngalert.sender.external-alertmanager")
|
||||
am := NewExternalAlertmanagerSender(logger, prometheus.NewRegistry())
|
||||
am, err := NewExternalAlertmanagerSender(logger, prometheus.NewRegistry())
|
||||
require.NoError(t, err)
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
res, err := am.sanitizeLabelName(tc.labelName)
|
||||
|
||||
@@ -99,7 +101,8 @@ func TestSanitizeLabelSet(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
logger := log.New("ngalert.sender.external-alertmanager")
|
||||
am := NewExternalAlertmanagerSender(logger, prometheus.NewRegistry())
|
||||
am, err := NewExternalAlertmanagerSender(logger, prometheus.NewRegistry())
|
||||
require.NoError(t, err)
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
require.Equal(t, tc.expectedResult, am.sanitizeLabelSet(tc.labelset))
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user