Skip to content
This repository was archived by the owner on Aug 13, 2019. It is now read-only.

Commit 972da3d

Browse files
committed
WAL Watcher needs to take in and pass a Registerer to LiveReader.
Signed-off-by: Callum Styan <[email protected]>
1 parent c6e5979 commit 972da3d

File tree

2 files changed

+26
-8
lines changed

2 files changed

+26
-8
lines changed

wal/wal_watcher.go

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ type WALWatcher struct {
105105
logger log.Logger
106106
walDir string
107107
lastCheckpoint string
108+
reg prometheus.Registerer
108109

109110
startTime int64
110111

@@ -121,12 +122,21 @@ type WALWatcher struct {
121122
}
122123

123124
// NewWALWatcher creates a new WAL watcher for a given WriteTo.
124-
func NewWALWatcher(logger log.Logger, name string, writer writeTo, walDir string) *WALWatcher {
125+
func NewWALWatcher(logger log.Logger, reg prometheus.Registerer, name string, writer writeTo, walDir string) *WALWatcher {
125126
if logger == nil {
126127
logger = log.NewNopLogger()
127128
}
129+
if reg != nil {
130+
// We can't use MustRegister because WALWatcher's are recreated on config changes within Prometheus.
131+
reg.Register(watcherRecordsRead)
132+
reg.Register(watcherRecordDecodeFails)
133+
reg.Register(watcherSamplesSentPreTailing)
134+
reg.Register(watcherCurrentSegment)
135+
}
136+
128137
return &WALWatcher{
129138
logger: logger,
139+
reg: reg,
130140
writer: writer,
131141
walDir: path.Join(walDir, "wal"),
132142
name: name,
@@ -298,7 +308,11 @@ func (w *WALWatcher) watch(segmentNum int, tail bool) error {
298308
}
299309
defer segment.Close()
300310

311+
<<<<<<< HEAD
301312
reader := NewLiveReader(w.logger, prometheus.DefaultRegisterer, segment)
313+
=======
314+
reader := NewLiveReader(w.logger, w.reg, segment)
315+
>>>>>>> WAL Watcher needs to take in and pass a Registerer to LiveReader.
302316

303317
readTicker := time.NewTicker(readPeriod)
304318
defer readTicker.Stop()
@@ -513,7 +527,11 @@ func (w *WALWatcher) readCheckpoint(checkpointDir string) error {
513527
}
514528
defer sr.Close()
515529

530+
<<<<<<< HEAD
516531
r := NewLiveReader(w.logger, prometheus.DefaultRegisterer, sr)
532+
=======
533+
r := NewLiveReader(w.logger, w.reg, sr)
534+
>>>>>>> WAL Watcher needs to take in and pass a Registerer to LiveReader.
517535
if err := w.readSegment(r, index, false); err != io.EOF && err != nil {
518536
return errors.Wrap(err, "readSegment")
519537
}

wal/wal_watcher_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ func TestTailSamples(t *testing.T) {
135135
testutil.Ok(t, err)
136136

137137
wt := newWriteToMock()
138-
watcher := NewWALWatcher(nil, "", wt, dir)
138+
watcher := NewWALWatcher(nil, nil, "", wt, dir)
139139
watcher.startTime = now.UnixNano()
140140

141141
// Set the Watcher's metrics so they're not nil pointers.
@@ -145,7 +145,7 @@ func TestTailSamples(t *testing.T) {
145145
testutil.Ok(t, err)
146146
defer segment.Close()
147147

148-
reader := NewLiveReader(nil, prometheus.DefaultRegisterer, segment)
148+
reader := NewLiveReader(nil, nil, segment)
149149
// Use tail true so we can ensure we got the right number of samples.
150150
watcher.readSegment(reader, i, true)
151151
}
@@ -210,7 +210,7 @@ func TestReadToEndNoCheckpoint(t *testing.T) {
210210
testutil.Ok(t, err)
211211

212212
wt := newWriteToMock()
213-
watcher := NewWALWatcher(nil, "", wt, dir)
213+
watcher := NewWALWatcher(nil, nil, "", wt, dir)
214214
go watcher.Start()
215215

216216
expected := seriesCount
@@ -292,7 +292,7 @@ func TestReadToEndWithCheckpoint(t *testing.T) {
292292
_, _, err = w.Segments()
293293
testutil.Ok(t, err)
294294
wt := newWriteToMock()
295-
watcher := NewWALWatcher(nil, "", wt, dir)
295+
watcher := NewWALWatcher(nil, nil, "", wt, dir)
296296
go watcher.Start()
297297

298298
expected := seriesCount * 2
@@ -353,7 +353,7 @@ func TestReadCheckpoint(t *testing.T) {
353353
testutil.Ok(t, err)
354354

355355
wt := newWriteToMock()
356-
watcher := NewWALWatcher(nil, "", wt, dir)
356+
watcher := NewWALWatcher(nil, nil, "", wt, dir)
357357
// watcher.
358358
go watcher.Start()
359359

@@ -420,7 +420,7 @@ func TestReadCheckpointMultipleSegments(t *testing.T) {
420420
}
421421

422422
wt := newWriteToMock()
423-
watcher := NewWALWatcher(nil, "", wt, dir)
423+
watcher := NewWALWatcher(nil, nil, "", wt, dir)
424424
watcher.maxSegment = -1
425425

426426
// Set the Watcher's metrics so they're not nil pointers.
@@ -480,7 +480,7 @@ func TestCheckpointSeriesReset(t *testing.T) {
480480
testutil.Ok(t, err)
481481

482482
wt := newWriteToMock()
483-
watcher := NewWALWatcher(nil, "", wt, dir)
483+
watcher := NewWALWatcher(nil, nil, "", wt, dir)
484484
watcher.maxSegment = -1
485485
go watcher.Start()
486486

0 commit comments

Comments
 (0)