Move expvar under the registry section
For consistency with other systems, the redis and caching monitoring data has been moved under the "registry" section in expvar. This ensures the entire registry state is kept to a single section. Signed-off-by: Stephen J Day <stephen.day@docker.com>
This commit is contained in:
parent
919d972e65
commit
09d48c7192
2 changed files with 27 additions and 3 deletions
|
@ -272,13 +272,18 @@ func (app *App) configureRedis(configuration *configuration.Configuration) {
|
||||||
|
|
||||||
app.redis = pool
|
app.redis = pool
|
||||||
|
|
||||||
expvar.Publish("redis", expvar.Func(func() interface{} {
|
// setup expvar
|
||||||
|
registry := expvar.Get("registry")
|
||||||
|
if registry == nil {
|
||||||
|
registry = expvar.NewMap("registry")
|
||||||
|
}
|
||||||
|
|
||||||
|
registry.(*expvar.Map).Set("redis", expvar.Func(func() interface{} {
|
||||||
return map[string]interface{}{
|
return map[string]interface{}{
|
||||||
"Config": configuration.Redis,
|
"Config": configuration.Redis,
|
||||||
"Active": app.redis.ActiveCount(),
|
"Active": app.redis.ActiveCount(),
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (app *App) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
func (app *App) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
|
@ -174,7 +174,26 @@ var layerInfoCacheMetrics struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
expvar.Publish("layerinfocache", expvar.Func(func() interface{} {
|
registry := expvar.Get("registry")
|
||||||
|
if registry == nil {
|
||||||
|
registry = expvar.NewMap("registry")
|
||||||
|
}
|
||||||
|
|
||||||
|
cache := registry.(*expvar.Map).Get("cache")
|
||||||
|
if cache == nil {
|
||||||
|
cache = &expvar.Map{}
|
||||||
|
cache.(*expvar.Map).Init()
|
||||||
|
registry.(*expvar.Map).Set("cache", cache)
|
||||||
|
}
|
||||||
|
|
||||||
|
storage := cache.(*expvar.Map).Get("storage")
|
||||||
|
if storage == nil {
|
||||||
|
storage = &expvar.Map{}
|
||||||
|
storage.(*expvar.Map).Init()
|
||||||
|
cache.(*expvar.Map).Set("storage", storage)
|
||||||
|
}
|
||||||
|
|
||||||
|
storage.(*expvar.Map).Set("layerinfo", expvar.Func(func() interface{} {
|
||||||
// no need for synchronous access: the increments are atomic and
|
// no need for synchronous access: the increments are atomic and
|
||||||
// during reading, we don't care if the data is up to date. The
|
// during reading, we don't care if the data is up to date. The
|
||||||
// numbers will always *eventually* be reported correctly.
|
// numbers will always *eventually* be reported correctly.
|
||||||
|
|
Loading…
Reference in a new issue