0
0

Merge pull request #458 from mschoch/metricswork

Metrics Work
This commit is contained in:
Marty Schoch 2016-09-30 16:34:55 -04:00 committed by GitHub
commit 30b5cb86d1
6 changed files with 47 additions and 47 deletions

View File

@ -16,7 +16,7 @@ func (b *Batch) Delete(key []byte) {
} }
func (b *Batch) Merge(key, val []byte) { func (b *Batch) Merge(key, val []byte) {
b.s.TimerBatchMerge.Time(func() { b.s.timerBatchMerge.Time(func() {
b.o.Merge(key, val) b.o.Merge(key, val)
}) })
} }

View File

@ -8,13 +8,13 @@ type Iterator struct {
} }
func (i *Iterator) Seek(x []byte) { func (i *Iterator) Seek(x []byte) {
i.s.TimerIteratorSeek.Time(func() { i.s.timerIteratorSeek.Time(func() {
i.o.Seek(x) i.o.Seek(x)
}) })
} }
func (i *Iterator) Next() { func (i *Iterator) Next() {
i.s.TimerIteratorNext.Time(func() { i.s.timerIteratorNext.Time(func() {
i.o.Next() i.o.Next()
}) })
} }

View File

@ -8,7 +8,7 @@ type Reader struct {
} }
func (r *Reader) Get(key []byte) (v []byte, err error) { func (r *Reader) Get(key []byte) (v []byte, err error) {
r.s.TimerReaderGet.Time(func() { r.s.timerReaderGet.Time(func() {
v, err = r.o.Get(key) v, err = r.o.Get(key)
if err != nil { if err != nil {
r.s.AddError("Reader.Get", err, key) r.s.AddError("Reader.Get", err, key)
@ -18,7 +18,7 @@ func (r *Reader) Get(key []byte) (v []byte, err error) {
} }
func (r *Reader) MultiGet(keys [][]byte) (vals [][]byte, err error) { func (r *Reader) MultiGet(keys [][]byte) (vals [][]byte, err error) {
r.s.TimerReaderMultiGet.Time(func() { r.s.timerReaderMultiGet.Time(func() {
vals, err = r.o.MultiGet(keys) vals, err = r.o.MultiGet(keys)
if err != nil { if err != nil {
r.s.AddError("Reader.MultiGet", err, nil) r.s.AddError("Reader.MultiGet", err, nil)
@ -28,14 +28,14 @@ func (r *Reader) MultiGet(keys [][]byte) (vals [][]byte, err error) {
} }
func (r *Reader) PrefixIterator(prefix []byte) (i store.KVIterator) { func (r *Reader) PrefixIterator(prefix []byte) (i store.KVIterator) {
r.s.TimerReaderPrefixIterator.Time(func() { r.s.timerReaderPrefixIterator.Time(func() {
i = &Iterator{s: r.s, o: r.o.PrefixIterator(prefix)} i = &Iterator{s: r.s, o: r.o.PrefixIterator(prefix)}
}) })
return return
} }
func (r *Reader) RangeIterator(start, end []byte) (i store.KVIterator) { func (r *Reader) RangeIterator(start, end []byte) (i store.KVIterator) {
r.s.TimerReaderRangeIterator.Time(func() { r.s.timerReaderRangeIterator.Time(func() {
i = &Iterator{s: r.s, o: r.o.RangeIterator(start, end)} i = &Iterator{s: r.s, o: r.o.RangeIterator(start, end)}
}) })
return return

View File

@ -23,14 +23,14 @@ func (s *stats) statsMap() map[string]interface{} {
ms := map[string]interface{}{} ms := map[string]interface{}{}
ms["metrics"] = map[string]interface{}{ ms["metrics"] = map[string]interface{}{
"reader_get": TimerMap(s.s.TimerReaderGet), "reader_get": TimerMap(s.s.timerReaderGet),
"reader_multi_get": TimerMap(s.s.TimerReaderMultiGet), "reader_multi_get": TimerMap(s.s.timerReaderMultiGet),
"reader_prefix_iterator": TimerMap(s.s.TimerReaderPrefixIterator), "reader_prefix_iterator": TimerMap(s.s.timerReaderPrefixIterator),
"reader_range_iterator": TimerMap(s.s.TimerReaderRangeIterator), "reader_range_iterator": TimerMap(s.s.timerReaderRangeIterator),
"writer_execute_batch": TimerMap(s.s.TimerWriterExecuteBatch), "writer_execute_batch": TimerMap(s.s.timerWriterExecuteBatch),
"iterator_seek": TimerMap(s.s.TimerIteratorSeek), "iterator_seek": TimerMap(s.s.timerIteratorSeek),
"iterator_next": TimerMap(s.s.TimerIteratorNext), "iterator_next": TimerMap(s.s.timerIteratorNext),
"batch_merge": TimerMap(s.s.TimerBatchMerge), "batch_merge": TimerMap(s.s.timerBatchMerge),
} }
if o, ok := s.s.o.(store.KVStoreStats); ok { if o, ok := s.s.o.(store.KVStoreStats); ok {

View File

@ -32,14 +32,14 @@ const Name = "metrics"
type Store struct { type Store struct {
o store.KVStore o store.KVStore
TimerReaderGet metrics.Timer timerReaderGet metrics.Timer
TimerReaderMultiGet metrics.Timer timerReaderMultiGet metrics.Timer
TimerReaderPrefixIterator metrics.Timer timerReaderPrefixIterator metrics.Timer
TimerReaderRangeIterator metrics.Timer timerReaderRangeIterator metrics.Timer
TimerWriterExecuteBatch metrics.Timer timerWriterExecuteBatch metrics.Timer
TimerIteratorSeek metrics.Timer timerIteratorSeek metrics.Timer
TimerIteratorNext metrics.Timer timerIteratorNext metrics.Timer
TimerBatchMerge metrics.Timer timerBatchMerge metrics.Timer
m sync.Mutex // Protects the fields that follow. m sync.Mutex // Protects the fields that follow.
errors *list.List // Capped list of StoreError's. errors *list.List // Capped list of StoreError's.
@ -73,14 +73,14 @@ func New(mo store.MergeOperator, config map[string]interface{}) (store.KVStore,
rv := &Store{ rv := &Store{
o: kvs, o: kvs,
TimerReaderGet: metrics.NewTimer(), timerReaderGet: metrics.NewTimer(),
TimerReaderMultiGet: metrics.NewTimer(), timerReaderMultiGet: metrics.NewTimer(),
TimerReaderPrefixIterator: metrics.NewTimer(), timerReaderPrefixIterator: metrics.NewTimer(),
TimerReaderRangeIterator: metrics.NewTimer(), timerReaderRangeIterator: metrics.NewTimer(),
TimerWriterExecuteBatch: metrics.NewTimer(), timerWriterExecuteBatch: metrics.NewTimer(),
TimerIteratorSeek: metrics.NewTimer(), timerIteratorSeek: metrics.NewTimer(),
TimerIteratorNext: metrics.NewTimer(), timerIteratorNext: metrics.NewTimer(),
TimerBatchMerge: metrics.NewTimer(), timerBatchMerge: metrics.NewTimer(),
errors: list.New(), errors: list.New(),
} }
@ -148,42 +148,42 @@ func (s *Store) WriteJSON(w io.Writer) (err error) {
if err != nil { if err != nil {
return return
} }
WriteTimerJSON(w, s.TimerReaderGet) WriteTimerJSON(w, s.timerReaderGet)
_, err = w.Write([]byte(`,"TimerReaderMultiGet":`)) _, err = w.Write([]byte(`,"TimerReaderMultiGet":`))
if err != nil { if err != nil {
return return
} }
WriteTimerJSON(w, s.TimerReaderMultiGet) WriteTimerJSON(w, s.timerReaderMultiGet)
_, err = w.Write([]byte(`,"TimerReaderPrefixIterator":`)) _, err = w.Write([]byte(`,"TimerReaderPrefixIterator":`))
if err != nil { if err != nil {
return return
} }
WriteTimerJSON(w, s.TimerReaderPrefixIterator) WriteTimerJSON(w, s.timerReaderPrefixIterator)
_, err = w.Write([]byte(`,"TimerReaderRangeIterator":`)) _, err = w.Write([]byte(`,"TimerReaderRangeIterator":`))
if err != nil { if err != nil {
return return
} }
WriteTimerJSON(w, s.TimerReaderRangeIterator) WriteTimerJSON(w, s.timerReaderRangeIterator)
_, err = w.Write([]byte(`,"TimerWriterExecuteBatch":`)) _, err = w.Write([]byte(`,"TimerWriterExecuteBatch":`))
if err != nil { if err != nil {
return return
} }
WriteTimerJSON(w, s.TimerWriterExecuteBatch) WriteTimerJSON(w, s.timerWriterExecuteBatch)
_, err = w.Write([]byte(`,"TimerIteratorSeek":`)) _, err = w.Write([]byte(`,"TimerIteratorSeek":`))
if err != nil { if err != nil {
return return
} }
WriteTimerJSON(w, s.TimerIteratorSeek) WriteTimerJSON(w, s.timerIteratorSeek)
_, err = w.Write([]byte(`,"TimerIteratorNext":`)) _, err = w.Write([]byte(`,"TimerIteratorNext":`))
if err != nil { if err != nil {
return return
} }
WriteTimerJSON(w, s.TimerIteratorNext) WriteTimerJSON(w, s.timerIteratorNext)
_, err = w.Write([]byte(`,"TimerBatchMerge":`)) _, err = w.Write([]byte(`,"TimerBatchMerge":`))
if err != nil { if err != nil {
return return
} }
WriteTimerJSON(w, s.TimerBatchMerge) WriteTimerJSON(w, s.timerBatchMerge)
_, err = w.Write([]byte(`,"Errors":[`)) _, err = w.Write([]byte(`,"Errors":[`))
if err != nil { if err != nil {
@ -252,13 +252,13 @@ func (s *Store) WriteCSVHeader(w io.Writer) {
} }
func (s *Store) WriteCSV(w io.Writer) { func (s *Store) WriteCSV(w io.Writer) {
WriteTimerCSV(w, s.TimerReaderGet) WriteTimerCSV(w, s.timerReaderGet)
WriteTimerCSV(w, s.TimerReaderPrefixIterator) WriteTimerCSV(w, s.timerReaderPrefixIterator)
WriteTimerCSV(w, s.TimerReaderRangeIterator) WriteTimerCSV(w, s.timerReaderRangeIterator)
WriteTimerCSV(w, s.TimerWriterExecuteBatch) WriteTimerCSV(w, s.timerWriterExecuteBatch)
WriteTimerCSV(w, s.TimerIteratorSeek) WriteTimerCSV(w, s.timerIteratorSeek)
WriteTimerCSV(w, s.TimerIteratorNext) WriteTimerCSV(w, s.timerIteratorNext)
WriteTimerCSV(w, s.TimerBatchMerge) WriteTimerCSV(w, s.timerBatchMerge)
} }
func (s *Store) Stats() json.Marshaler { func (s *Store) Stats() json.Marshaler {

View File

@ -36,7 +36,7 @@ func (w *Writer) ExecuteBatch(b store.KVBatch) (err error) {
if !ok { if !ok {
return fmt.Errorf("wrong type of batch") return fmt.Errorf("wrong type of batch")
} }
w.s.TimerWriterExecuteBatch.Time(func() { w.s.timerWriterExecuteBatch.Time(func() {
err = w.o.ExecuteBatch(batch.o) err = w.o.ExecuteBatch(batch.o)
if err != nil { if err != nil {
w.s.AddError("Writer.ExecuteBatch", err, nil) w.s.AddError("Writer.ExecuteBatch", err, nil)