1
0
Fork 0

More DB and Snapshot stats

master
Philip O'Toole 1 year ago
parent ee482f3661
commit 53b432a391

@ -29,6 +29,8 @@ const (
const ( const (
numCheckpoints = "checkpoints" numCheckpoints = "checkpoints"
numCheckpointErrors = "checkpoint_errors" numCheckpointErrors = "checkpoint_errors"
numCheckpointedPages = "checkpointed_pages"
numCheckpointedMoves = "checkpointed_moves"
checkpointDuration = "checkpoint_duration_ns" checkpointDuration = "checkpoint_duration_ns"
numExecutions = "executions" numExecutions = "executions"
numExecutionErrors = "execution_errors" numExecutionErrors = "execution_errors"
@ -61,6 +63,8 @@ func ResetStats() {
stats.Init() stats.Init()
stats.Add(numCheckpoints, 0) stats.Add(numCheckpoints, 0)
stats.Add(numCheckpointErrors, 0) stats.Add(numCheckpointErrors, 0)
stats.Add(numCheckpointedPages, 0)
stats.Add(numCheckpointedMoves, 0)
stats.Add(checkpointDuration, 0) stats.Add(checkpointDuration, 0)
stats.Add(numExecutions, 0) stats.Add(numExecutions, 0)
stats.Add(numExecutionErrors, 0) stats.Add(numExecutionErrors, 0)
@ -482,6 +486,8 @@ func (db *DB) CheckpointWithTimeout(dur time.Duration) (err error) {
f := func() error { f := func() error {
err := db.rwDB.QueryRow("PRAGMA wal_checkpoint(TRUNCATE)").Scan(&ok, &nPages, &nMoved) err := db.rwDB.QueryRow("PRAGMA wal_checkpoint(TRUNCATE)").Scan(&ok, &nPages, &nMoved)
stats.Add(numCheckpointedPages, int64(nPages))
stats.Add(numCheckpointedMoves, int64(nMoved))
if err != nil { if err != nil {
return fmt.Errorf("error checkpointing WAL: %s", err.Error()) return fmt.Errorf("error checkpointing WAL: %s", err.Error())
} }

@ -82,7 +82,9 @@ const (
) )
const ( const (
numSnaphots = "num_snapshots" numSnapshots = "num_snapshots"
numSnapshotsFull = "num_snapshots_full"
numSnapshotsIncremental = "num_snapshots_incremental"
numProvides = "num_provides" numProvides = "num_provides"
numBackups = "num_backups" numBackups = "num_backups"
numLoads = "num_loads" numLoads = "num_loads"
@ -119,7 +121,9 @@ func init() {
// ResetStats resets the expvar stats for this module. Mostly for test purposes. // ResetStats resets the expvar stats for this module. Mostly for test purposes.
func ResetStats() { func ResetStats() {
stats.Init() stats.Init()
stats.Add(numSnaphots, 0) stats.Add(numSnapshots, 0)
stats.Add(numSnapshotsFull, 0)
stats.Add(numSnapshotsIncremental, 0)
stats.Add(numProvides, 0) stats.Add(numProvides, 0)
stats.Add(numBackups, 0) stats.Add(numBackups, 0)
stats.Add(numRestores, 0) stats.Add(numRestores, 0)
@ -1645,6 +1649,7 @@ func (s *Store) Snapshot() (raft.FSMSnapshot, error) {
return nil, err return nil, err
} }
fsmSnapshot = snapshot.NewFullSnapshot(s.db.Path()) fsmSnapshot = snapshot.NewFullSnapshot(s.db.Path())
stats.Add(numSnapshotsFull, 1)
} else { } else {
var b []byte var b []byte
var err error var err error
@ -1663,9 +1668,10 @@ func (s *Store) Snapshot() (raft.FSMSnapshot, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
stats.Add(numSnapshotsIncremental, 1)
} }
stats.Add(numSnaphots, 1) stats.Add(numSnapshots, 1)
dur := time.Since(startT) dur := time.Since(startT)
stats.Get(snapshotCreateDuration).(*expvar.Int).Set(dur.Milliseconds()) stats.Get(snapshotCreateDuration).(*expvar.Int).Set(dur.Milliseconds())
s.logger.Printf("%s snapshot created in %s on node ID %s", fPLog, dur, s.raftID) s.logger.Printf("%s snapshot created in %s on node ID %s", fPLog, dur, s.raftID)

Loading…
Cancel
Save