Move Registerer to Config Struct in Notifier

This commit is contained in:
Goutham Veeramachaneni 2017-03-31 21:20:12 +05:30
parent af222b63fc
commit 0d0c9d5440
No known key found for this signature in database
GPG Key ID: F1C217E8E9023CAD
4 changed files with 15 additions and 9 deletions

View File

@ -26,6 +26,7 @@ import (
"unicode" "unicode"
"github.com/asaskevich/govalidator" "github.com/asaskevich/govalidator"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/common/log" "github.com/prometheus/common/log"
"github.com/prometheus/common/model" "github.com/prometheus/common/model"
"github.com/prometheus/prometheus/config" "github.com/prometheus/prometheus/config"
@ -56,6 +57,9 @@ var cfg = struct {
prometheusURL string prometheusURL string
}{ }{
alertmanagerURLs: stringset{}, alertmanagerURLs: stringset{},
notifier: notifier.Options{
Registerer: prometheus.DefaultRegisterer,
},
} }
// Value type for flags that are now unused, but which are kept around to // Value type for flags that are now unused, but which are kept around to

View File

@ -97,7 +97,7 @@ func Main() int {
reloadables = append(reloadables, remoteStorage) reloadables = append(reloadables, remoteStorage)
var ( var (
notifier = notifier.New(&cfg.notifier, prometheus.DefaultRegisterer) notifier = notifier.New(&cfg.notifier)
targetManager = retrieval.NewTargetManager(sampleAppender) targetManager = retrieval.NewTargetManager(sampleAppender)
queryEngine = promql.NewEngine(localStorage, &cfg.queryEngine) queryEngine = promql.NewEngine(localStorage, &cfg.queryEngine)
ctx, cancelCtx = context.WithCancel(context.Background()) ctx, cancelCtx = context.WithCancel(context.Background())

View File

@ -74,6 +74,8 @@ type Options struct {
RelabelConfigs []*config.RelabelConfig RelabelConfigs []*config.RelabelConfig
// Used for sending HTTP requests to the Alertmanager. // Used for sending HTTP requests to the Alertmanager.
Do func(ctx context.Context, client *http.Client, req *http.Request) (*http.Response, error) Do func(ctx context.Context, client *http.Client, req *http.Request) (*http.Response, error)
Registerer prometheus.Registerer
} }
type alertMetrics struct { type alertMetrics struct {
@ -147,7 +149,7 @@ func newAlertMetrics(r prometheus.Registerer, o *Options) *alertMetrics {
} }
// New constructs a new Notifier. // New constructs a new Notifier.
func New(o *Options, r prometheus.Registerer) *Notifier { func New(o *Options) *Notifier {
ctx, cancel := context.WithCancel(context.Background()) ctx, cancel := context.WithCancel(context.Background())
if o.Do == nil { if o.Do == nil {
@ -160,7 +162,7 @@ func New(o *Options, r prometheus.Registerer) *Notifier {
cancel: cancel, cancel: cancel,
more: make(chan struct{}, 1), more: make(chan struct{}, 1),
opts: o, opts: o,
metrics: newAlertMetrics(r, o), metrics: newAlertMetrics(o.Registerer, o),
} }
} }

View File

@ -63,7 +63,7 @@ func TestPostPath(t *testing.T) {
} }
func TestHandlerNextBatch(t *testing.T) { func TestHandlerNextBatch(t *testing.T) {
h := New(&Options{}, prometheus.DefaultRegisterer) h := New(&Options{})
defer unregisterMetrics() defer unregisterMetrics()
for i := range make([]struct{}, 2*maxBatchSize+1) { for i := range make([]struct{}, 2*maxBatchSize+1) {
@ -159,7 +159,7 @@ func TestHandlerSendAll(t *testing.T) {
defer server1.Close() defer server1.Close()
defer server2.Close() defer server2.Close()
h := New(&Options{}, prometheus.DefaultRegisterer) h := New(&Options{})
defer unregisterMetrics() defer unregisterMetrics()
h.alertmanagers = append(h.alertmanagers, &alertmanagerSet{ h.alertmanagers = append(h.alertmanagers, &alertmanagerSet{
ams: []alertmanager{ ams: []alertmanager{
@ -227,7 +227,7 @@ func TestCustomDo(t *testing.T) {
Body: ioutil.NopCloser(nil), Body: ioutil.NopCloser(nil),
}, nil }, nil
}, },
}, prometheus.DefaultRegisterer) })
defer unregisterMetrics() defer unregisterMetrics()
h.sendOne(context.Background(), nil, testURL, []byte(testBody)) h.sendOne(context.Background(), nil, testURL, []byte(testBody))
@ -250,7 +250,7 @@ func TestExternalLabels(t *testing.T) {
Replacement: "c", Replacement: "c",
}, },
}, },
}, prometheus.DefaultRegisterer) })
defer unregisterMetrics() defer unregisterMetrics()
// This alert should get the external label attached. // This alert should get the external label attached.
@ -305,7 +305,7 @@ func TestHandlerRelabel(t *testing.T) {
Replacement: "renamed", Replacement: "renamed",
}, },
}, },
}, prometheus.DefaultRegisterer) })
defer unregisterMetrics() defer unregisterMetrics()
// This alert should be dropped due to the configuration // This alert should be dropped due to the configuration
@ -360,7 +360,7 @@ func TestHandlerQueueing(t *testing.T) {
h := New(&Options{ h := New(&Options{
QueueCapacity: 3 * maxBatchSize, QueueCapacity: 3 * maxBatchSize,
}, prometheus.DefaultRegisterer) })
defer unregisterMetrics() defer unregisterMetrics()
h.alertmanagers = append(h.alertmanagers, &alertmanagerSet{ h.alertmanagers = append(h.alertmanagers, &alertmanagerSet{
ams: []alertmanager{ ams: []alertmanager{