Commit 8bb363e5 authored by Steven Allen's avatar Steven Allen

implement GetSize

parent 267c04fd
...@@ -43,6 +43,10 @@ func New(prefix string, ds datastore.Datastore) *measure { ...@@ -43,6 +43,10 @@ func New(prefix string, ds datastore.Datastore) *measure {
hasErr: metrics.New(prefix+".has.errors_total", "Number of errored Datastore.Has calls").Counter(), hasErr: metrics.New(prefix+".has.errors_total", "Number of errored Datastore.Has calls").Counter(),
hasLatency: metrics.New(prefix+".has.latency_seconds", hasLatency: metrics.New(prefix+".has.latency_seconds",
"Latency distribution of Datastore.Has calls").Histogram(datastoreLatencyBuckets), "Latency distribution of Datastore.Has calls").Histogram(datastoreLatencyBuckets),
getsizeNum: metrics.New(prefix+".getsize_total", "Total number of Datastore.GetSize calls").Counter(),
getsizeErr: metrics.New(prefix+".getsize.errors_total", "Number of errored Datastore.GetSize calls").Counter(),
getsizeLatency: metrics.New(prefix+".getsize.latency_seconds",
"Latency distribution of Datastore.GetSize calls").Histogram(datastoreLatencyBuckets),
deleteNum: metrics.New(prefix+".delete_total", "Total number of Datastore.Delete calls").Counter(), deleteNum: metrics.New(prefix+".delete_total", "Total number of Datastore.Delete calls").Counter(),
deleteErr: metrics.New(prefix+".delete.errors_total", "Number of errored Datastore.Delete calls").Counter(), deleteErr: metrics.New(prefix+".delete.errors_total", "Number of errored Datastore.Delete calls").Counter(),
...@@ -94,6 +98,10 @@ type measure struct { ...@@ -94,6 +98,10 @@ type measure struct {
hasErr metrics.Counter hasErr metrics.Counter
hasLatency metrics.Histogram hasLatency metrics.Histogram
getsizeNum metrics.Counter
getsizeErr metrics.Counter
getsizeLatency metrics.Histogram
deleteNum metrics.Counter deleteNum metrics.Counter
deleteErr metrics.Counter deleteErr metrics.Counter
deleteLatency metrics.Histogram deleteLatency metrics.Histogram
...@@ -160,6 +168,18 @@ func (m *measure) Has(key datastore.Key) (exists bool, err error) { ...@@ -160,6 +168,18 @@ func (m *measure) Has(key datastore.Key) (exists bool, err error) {
return exists, err return exists, err
} }
func (m *measure) GetSize(key datastore.Key) (size int, err error) {
defer recordLatency(m.getsizeLatency, time.Now())
m.hasNum.Inc()
size, err = m.backend.GetSize(key)
switch err {
case nil, datastore.ErrNotFound:
default:
m.getsizeErr.Inc()
}
return size, err
}
func (m *measure) Delete(key datastore.Key) error { func (m *measure) Delete(key datastore.Key) error {
defer recordLatency(m.deleteLatency, time.Now()) defer recordLatency(m.deleteLatency, time.Now())
m.deleteNum.Inc() m.deleteNum.Inc()
......
...@@ -15,9 +15,9 @@ ...@@ -15,9 +15,9 @@
}, },
{ {
"author": "jbenet", "author": "jbenet",
"hash": "QmUyz7JTJzgegC6tiJrfby3mPhzcdswVtG4x58TQ6pq8jV", "hash": "QmaRb5yNXKonhbkpNxNawoydk4N6es6b4fPj19sjEKsh5D",
"name": "go-datastore", "name": "go-datastore",
"version": "3.2.0" "version": "3.4.0"
} }
], ],
"gxVersion": "0.8.0", "gxVersion": "0.8.0",
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment