unit test

This commit is contained in:
Nan Deng 2014-06-16 20:49:40 -07:00
parent 00f17b5068
commit 51eabfcfa7

View File

@ -24,12 +24,12 @@ import (
) )
type percentilesContainerHandlerWrapper struct { type percentilesContainerHandlerWrapper struct {
handler ContainerHandler handler ContainerHandler
containerPercentiles *info.ContainerStatsPercentiles prevStats *info.ContainerStats
prevStats *info.ContainerStats numStats uint64
numStats uint64 maxMemUsage uint64
sampler sampling.Sampler sampler sampling.Sampler
lock sync.Mutex lock sync.Mutex
} }
func (self *percentilesContainerHandlerWrapper) GetSpec() (*info.ContainerSpec, error) { func (self *percentilesContainerHandlerWrapper) GetSpec() (*info.ContainerSpec, error) {
@ -86,13 +86,10 @@ func (self *percentilesContainerHandlerWrapper) GetStats() (*info.ContainerStats
} }
} }
self.updatePrevStats(stats) self.updatePrevStats(stats)
if self.containerPercentiles == nil {
self.containerPercentiles = new(info.ContainerStatsPercentiles)
}
self.numStats++ self.numStats++
if stats.Memory != nil { if stats.Memory != nil {
if stats.Memory.Usage > self.containerPercentiles.MaxMemoryUsage { if stats.Memory.Usage > self.maxMemUsage {
self.containerPercentiles.MaxMemoryUsage = stats.Memory.Usage self.maxMemUsage = stats.Memory.Usage
} }
} }
return stats, nil return stats, nil
@ -118,13 +115,13 @@ func (self *percentilesContainerHandlerWrapper) StatsPercentiles() (*info.Contai
stats := d.(*info.ContainerStatsSample) stats := d.(*info.ContainerStatsSample)
samples = append(samples, stats) samples = append(samples, stats)
}) })
// XXX(dengnan): probably add to StatsParameter? ret := info.NewPercentiles(
self.containerPercentiles.FillPercentiles(
samples, samples,
[]int{50, 80, 90, 95, 99}, []int{50, 80, 90, 95, 99},
[]int{50, 80, 90, 95, 99}, []int{50, 80, 90, 95, 99},
) )
return self.containerPercentiles, nil ret.MaxMemoryUsage = self.maxMemUsage
return ret, nil
} }
type StatsParameter struct { type StatsParameter struct {
@ -140,8 +137,7 @@ func AddStatsSummary(handler ContainerHandler, parameter *StatsParameter) (Conta
return nil, err return nil, err
} }
return &percentilesContainerHandlerWrapper{ return &percentilesContainerHandlerWrapper{
handler: handler, handler: handler,
containerPercentiles: &info.ContainerStatsPercentiles{}, sampler: sampler,
sampler: sampler,
}, nil }, nil
} }