Skip to content

Commit b7fc8a1

Browse files
authored
Merge pull request #56 from weaveworks/check-replication-config
Check replication config at startup
2 parents 3ba14c0 + f1c4d1a commit b7fc8a1

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

cmd/prism/main.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,10 @@ func setupDistributor(
190190
chunkStore chunk.Store,
191191
logSuccess bool,
192192
) {
193-
distributor := prism.NewDistributor(cfg)
193+
distributor, err := prism.NewDistributor(cfg)
194+
if err != nil {
195+
log.Fatal(err)
196+
}
194197
prometheus.MustRegister(distributor)
195198

196199
prefix := "/api/prom"

distributor.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,16 @@ type DistributorConfig struct {
7777
}
7878

7979
// NewDistributor constructs a new Distributor
80-
func NewDistributor(cfg DistributorConfig) *Distributor {
80+
func NewDistributor(cfg DistributorConfig) (*Distributor, error) {
81+
if 0 > cfg.ReplicationFactor {
82+
return nil, fmt.Errorf("ReplicationFactor must be greater than zero: %d", cfg.ReplicationFactor)
83+
}
84+
if cfg.MinWriteSuccesses > cfg.ReplicationFactor {
85+
return nil, fmt.Errorf("MinWriteSuccesses > ReplicationFactor: %d > %d", cfg.MinWriteSuccesses, cfg.ReplicationFactor)
86+
}
87+
if cfg.MinReadSuccesses > cfg.ReplicationFactor {
88+
return nil, fmt.Errorf("MinReadSuccesses > ReplicationFactor: %d > %d", cfg.MinReadSuccesses, cfg.ReplicationFactor)
89+
}
8190
return &Distributor{
8291
cfg: cfg,
8392
clients: map[string]*IngesterClient{},
@@ -118,7 +127,7 @@ func NewDistributor(cfg DistributorConfig) *Distributor {
118127
Name: "distributor_ingester_appends_total",
119128
Help: "The total number of failed queries sent to ingesters.",
120129
}, []string{"ingester"}),
121-
}
130+
}, nil
122131
}
123132

124133
func (d *Distributor) getClientFor(hostname string) (*IngesterClient, error) {

0 commit comments

Comments
 (0)