raftsnap: support structured logger

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
This commit is contained in:
Gyuho Lee 2018-04-16 03:59:06 -07:00
parent c68f625353
commit ce8348e3e0
3 changed files with 24 additions and 9 deletions

View File

@ -23,6 +23,8 @@ import (
"path/filepath"
"github.com/coreos/etcd/pkg/fileutil"
humanize "github.com/dustin/go-humanize"
"go.uber.org/zap"
)
var ErrNoDBSnapshot = errors.New("snap: snapshot file doesn't exist")
@ -55,7 +57,15 @@ func (s *Snapshotter) SaveDBFrom(r io.Reader, id uint64) (int64, error) {
return n, err
}
plog.Infof("saved database snapshot to disk [total bytes: %d]", n)
if s.lg != nil {
s.lg.Info(
"saved database snapshot to disk",
zap.Int64("bytes", n),
zap.String("size", humanize.Bytes(uint64(n))),
)
} else {
plog.Infof("saved database snapshot to disk [total bytes: %d]", n)
}
return n, nil
}

View File

@ -32,6 +32,7 @@ import (
"github.com/coreos/etcd/raftsnap/snappb"
"github.com/coreos/pkg/capnslog"
"go.uber.org/zap"
)
const (
@ -53,11 +54,13 @@ var (
)
type Snapshotter struct {
lg *zap.Logger
dir string
}
func New(dir string) *Snapshotter {
func New(lg *zap.Logger, dir string) *Snapshotter {
return &Snapshotter{
lg: lg,
dir: dir,
}
}

View File

@ -24,6 +24,8 @@ import (
"testing"
"github.com/coreos/etcd/raft/raftpb"
"go.uber.org/zap"
)
var testSnap = &raftpb.Snapshot{
@ -44,7 +46,7 @@ func TestSaveAndLoad(t *testing.T) {
t.Fatal(err)
}
defer os.RemoveAll(dir)
ss := New(dir)
ss := New(zap.NewExample(), dir)
err = ss.save(testSnap)
if err != nil {
t.Fatal(err)
@ -66,7 +68,7 @@ func TestBadCRC(t *testing.T) {
t.Fatal(err)
}
defer os.RemoveAll(dir)
ss := New(dir)
ss := New(zap.NewExample(), dir)
err = ss.save(testSnap)
if err != nil {
t.Fatal(err)
@ -96,7 +98,7 @@ func TestFailback(t *testing.T) {
t.Fatal(err)
}
ss := New(dir)
ss := New(zap.NewExample(), dir)
err = ss.save(testSnap)
if err != nil {
t.Fatal(err)
@ -131,7 +133,7 @@ func TestSnapNames(t *testing.T) {
f.Close()
}
}
ss := New(dir)
ss := New(zap.NewExample(), dir)
names, err := ss.snapNames()
if err != nil {
t.Errorf("err = %v, want nil", err)
@ -152,7 +154,7 @@ func TestLoadNewestSnap(t *testing.T) {
t.Fatal(err)
}
defer os.RemoveAll(dir)
ss := New(dir)
ss := New(zap.NewExample(), dir)
err = ss.save(testSnap)
if err != nil {
t.Fatal(err)
@ -181,7 +183,7 @@ func TestNoSnapshot(t *testing.T) {
t.Fatal(err)
}
defer os.RemoveAll(dir)
ss := New(dir)
ss := New(zap.NewExample(), dir)
_, err = ss.Load()
if err != ErrNoSnapshot {
t.Errorf("err = %v, want %v", err, ErrNoSnapshot)
@ -222,7 +224,7 @@ func TestAllSnapshotBroken(t *testing.T) {
t.Fatal(err)
}
ss := New(dir)
ss := New(zap.NewExample(), dir)
_, err = ss.Load()
if err != ErrNoSnapshot {
t.Errorf("err = %v, want %v", err, ErrNoSnapshot)