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" "path/filepath"
"github.com/coreos/etcd/pkg/fileutil" "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") 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 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 return n, nil
} }

View File

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

View File

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