diff --git a/metrics/mock.go b/metrics/mock.go index adeb3ca..d81bc60 100644 --- a/metrics/mock.go +++ b/metrics/mock.go @@ -10,14 +10,16 @@ import ( // Mock collector type Mock struct { Metrics - stream chan Metrics - done bool - running bool + stream chan Metrics + done bool + running bool + aggression int64 } -func NewMock() *Mock { +func NewMock(a int64) *Mock { c := &Mock{ - Metrics: Metrics{}, + Metrics: Metrics{}, + aggression: a, } c.MemLimit = 2147483648 return c @@ -47,13 +49,14 @@ func (c *Mock) run() { defer close(c.stream) for { - c.CPUUtil += rand.Intn(2) - if c.CPUUtil > 100 { + c.CPUUtil += rand.Intn(2) * int(c.aggression) + if c.CPUUtil >= 100 { c.CPUUtil = 0 } - c.NetTx += rand.Int63n(600) - c.NetRx += rand.Int63n(600) - c.MemUsage += rand.Int63n(c.MemLimit / 32) + + c.NetTx += rand.Int63n(60) * c.aggression + c.NetRx += rand.Int63n(60) * c.aggression + c.MemUsage += rand.Int63n(c.MemLimit/16) * c.aggression if c.MemUsage > c.MemLimit { c.MemUsage = 0 } diff --git a/mocksource.go b/mocksource.go index 7ac3633..e3d3f8c 100644 --- a/mocksource.go +++ b/mocksource.go @@ -26,18 +26,26 @@ func NewMockContainerSource() *MockContainerSource { // Create Mock containers func (cs *MockContainerSource) Init() { - total := 20 rand.Seed(int64(time.Now().Nanosecond())) - for i := 0; i < total; i++ { - //time.Sleep(1 * time.Second) - collector := metrics.NewMock() - c := NewContainer(makeID(), collector) - c.SetMeta("name", makeName()) - c.SetState(makeState()) - cs.containers = append(cs.containers, c) + for i := 0; i < 4; i++ { + time.Sleep(500 * time.Millisecond) + cs.makeContainer(3) } + for i := 0; i < 16; i++ { + time.Sleep(500 * time.Millisecond) + cs.makeContainer(1) + } + +} + +func (cs *MockContainerSource) makeContainer(aggression int64) { + collector := metrics.NewMock(aggression) + c := NewContainer(makeID(), collector) + c.SetMeta("name", makeName()) + c.SetState(makeState()) + cs.containers = append(cs.containers, c) } func (cs *MockContainerSource) Loop() {