diff options
author | Péter Szilágyi <peterke@gmail.com> | 2016-02-11 22:16:52 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2016-02-11 22:16:52 +0800 |
commit | b019f3ee29ce55c3d515ee8bafe0f4bb14221c0a (patch) | |
tree | 26e023be6c99a10e82a5a0ebadd1e42cefe9bd3c /Godeps/_workspace/src/github.com/rcrowley/go-metrics/registry.go | |
parent | b05e472c076d30035233d6a8b5fb3360b236e3ff (diff) | |
download | dexon-b019f3ee29ce55c3d515ee8bafe0f4bb14221c0a.tar dexon-b019f3ee29ce55c3d515ee8bafe0f4bb14221c0a.tar.gz dexon-b019f3ee29ce55c3d515ee8bafe0f4bb14221c0a.tar.bz2 dexon-b019f3ee29ce55c3d515ee8bafe0f4bb14221c0a.tar.lz dexon-b019f3ee29ce55c3d515ee8bafe0f4bb14221c0a.tar.xz dexon-b019f3ee29ce55c3d515ee8bafe0f4bb14221c0a.tar.zst dexon-b019f3ee29ce55c3d515ee8bafe0f4bb14221c0a.zip |
Godeps: update all dependencies to latest code
Diffstat (limited to 'Godeps/_workspace/src/github.com/rcrowley/go-metrics/registry.go')
-rw-r--r-- | Godeps/_workspace/src/github.com/rcrowley/go-metrics/registry.go | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/Godeps/_workspace/src/github.com/rcrowley/go-metrics/registry.go b/Godeps/_workspace/src/github.com/rcrowley/go-metrics/registry.go index 1f9d82c2a..e1f68a5dc 100644 --- a/Godeps/_workspace/src/github.com/rcrowley/go-metrics/registry.go +++ b/Godeps/_workspace/src/github.com/rcrowley/go-metrics/registry.go @@ -145,6 +145,65 @@ func (r *StandardRegistry) registered() map[string]interface{} { return metrics } +type PrefixedRegistry struct { + underlying Registry + prefix string +} + +func NewPrefixedRegistry(prefix string) Registry { + return &PrefixedRegistry{ + underlying: NewRegistry(), + prefix: prefix, + } +} + +func NewPrefixedChildRegistry(parent Registry, prefix string) Registry { + return &PrefixedRegistry{ + underlying: parent, + prefix: prefix, + } +} + +// Call the given function for each registered metric. +func (r *PrefixedRegistry) Each(fn func(string, interface{})) { + r.underlying.Each(fn) +} + +// Get the metric by the given name or nil if none is registered. +func (r *PrefixedRegistry) Get(name string) interface{} { + return r.underlying.Get(name) +} + +// Gets an existing metric or registers the given one. +// The interface can be the metric to register if not found in registry, +// or a function returning the metric for lazy instantiation. +func (r *PrefixedRegistry) GetOrRegister(name string, metric interface{}) interface{} { + realName := r.prefix + name + return r.underlying.GetOrRegister(realName, metric) +} + +// Register the given metric under the given name. The name will be prefixed. +func (r *PrefixedRegistry) Register(name string, metric interface{}) error { + realName := r.prefix + name + return r.underlying.Register(realName, metric) +} + +// Run all registered healthchecks. +func (r *PrefixedRegistry) RunHealthchecks() { + r.underlying.RunHealthchecks() +} + +// Unregister the metric with the given name. The name will be prefixed. +func (r *PrefixedRegistry) Unregister(name string) { + realName := r.prefix + name + r.underlying.Unregister(realName) +} + +// Unregister all metrics. (Mostly for testing.) +func (r *PrefixedRegistry) UnregisterAll() { + r.underlying.UnregisterAll() +} + var DefaultRegistry Registry = NewRegistry() // Call the given function for each registered metric. @@ -169,6 +228,14 @@ func Register(name string, i interface{}) error { return DefaultRegistry.Register(name, i) } +// Register the given metric under the given name. Panics if a metric by the +// given name is already registered. +func MustRegister(name string, i interface{}) { + if err := Register(name, i); err != nil { + panic(err) + } +} + // Run all registered healthchecks. func RunHealthchecks() { DefaultRegistry.RunHealthchecks() |