From 57f9dcf44ad9f02c44b8d7376ad102e2530a20de Mon Sep 17 00:00:00 2001 From: Alan Bernstein Date: Fri, 21 Apr 2017 12:13:45 -0500 Subject: [PATCH] Move logging and reporting back to defer'd track() --- fragment.go | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/fragment.go b/fragment.go index 1dbc2c64d..f58f2b50f 100644 --- a/fragment.go +++ b/fragment.go @@ -995,11 +995,26 @@ func (f *Fragment) Snapshot() error { defer f.mu.Unlock() return f.snapshot() } +func track(start time.Time, message string, stats StatsClient, logger *log.Logger) { + elapsed := time.Since(start) + logger.Printf("%s took %s", message, elapsed) + stats.Count("snapshot.count", 1) + stats.Histogram("snapshot.duration", elapsed.Seconds()) +} func (f *Fragment) snapshot() error { logger := f.logger() logger.Printf("fragment: snapshotting %s/%s/%s/%d", f.db, f.frame, f.view, f.slice) + completeMessage := fmt.Sprintf("fragment: snapshot complete %s/%s/%s/%d", f.db, f.frame, f.view, f.slice) + statsTags := []string{ + "db:" + f.db, + "frame:" + f.frame, + "view:" + f.view, + fmt.Sprintf("slice:%d", f.slice), + } + stats := f.stats.WithTags(statsTags...) start := time.Now() + defer track(start, completeMessage, stats, logger) // Create a temporary file to snapshot to. snapshotPath := f.path + SnapshotExt @@ -1035,19 +1050,6 @@ func (f *Fragment) snapshot() error { // Reset operation count. f.opN = 0 - elapsed := time.Since(start) - message := fmt.Sprintf("fragment: snapshot complete %s/%s/%s/%d", f.db, f.frame, f.view, f.slice) - logger.Printf("%s took %s", message, elapsed) - - statsTags := []string{ - "db:" + f.db, - "frame:" + f.frame, - "view:" + f.view, - fmt.Sprintf("slice:%d", f.slice), - } - stats := f.stats.WithTags(statsTags...) - stats.Count("snapshot.count", 1) - stats.Histogram("snapshot.duration", elapsed.Seconds()) return nil }