1
0
mirror of https://github.com/divan/expvarmon.git synced 2025-04-27 13:48:55 +08:00

Fix max bug

This commit is contained in:
Ivan Daniluk 2016-11-13 21:29:14 +01:00
parent 2b46055e00
commit 66d5746c6f
3 changed files with 11 additions and 12 deletions

17
stat.go
View File

@ -3,25 +3,24 @@ package main
// Stat holds basic statistics data for // Stat holds basic statistics data for
// integer data used for sparklines. // integer data used for sparklines.
type Stat struct { type Stat struct {
max IntVar max int
// TODO: implement running median maxStr string
} }
// NewStat inits new Stat object. // NewStat inits new Stat object.
func NewStat() *Stat { func NewStat() *Stat {
return &Stat{ return &Stat{}
max: &Number{},
}
} }
// Update updates stats on each push. // Update updates stats on each push.
func (s *Stat) Update(v IntVar) { func (s *Stat) Update(v IntVar) {
if v.Value() > s.max.Value() { if v.Value() > s.max {
s.max = v s.max = v.Value()
s.maxStr = v.String()
} }
} }
// Max returns maximum recorded value. // Max returns maximum recorded value.
func (s *Stat) Max() IntVar { func (s *Stat) Max() string {
return s.max return s.maxStr
} }

View File

@ -118,7 +118,7 @@ func (t *TermUI) Update(data UIData) {
if ok { if ok {
data.SparklineData[i].Stacks[name].Push(v) data.SparklineData[i].Stacks[name].Push(v)
data.SparklineData[i].Stats[name].Update(v) data.SparklineData[i].Stats[name].Update(v)
max := data.SparklineData[i].Stats[name].Max().String() max := data.SparklineData[i].Stats[name].Max()
t.Sparkline1.Lines[i].Title = fmt.Sprintf("%s (max: %s)", service.Name, max) t.Sparkline1.Lines[i].Title = fmt.Sprintf("%s (max: %s)", service.Name, max)
t.Sparkline1.Lines[i].Data = data.SparklineData[i].Stacks[name].Values() t.Sparkline1.Lines[i].Data = data.SparklineData[i].Stacks[name].Values()
@ -133,7 +133,7 @@ func (t *TermUI) Update(data UIData) {
if ok { if ok {
data.SparklineData[i].Stacks[name].Push(v) data.SparklineData[i].Stacks[name].Push(v)
data.SparklineData[i].Stats[name].Update(v) data.SparklineData[i].Stats[name].Update(v)
max := data.SparklineData[i].Stats[name].Max().String() max := data.SparklineData[i].Stats[name].Max()
t.Sparkline2.Lines[i].Title = fmt.Sprintf("%s (max: %s)", service.Name, max) t.Sparkline2.Lines[i].Title = fmt.Sprintf("%s (max: %s)", service.Name, max)
t.Sparkline2.Lines[i].Data = data.SparklineData[i].Stacks[name].Values() t.Sparkline2.Lines[i].Data = data.SparklineData[i].Stacks[name].Values()

View File

@ -147,7 +147,7 @@ func (t *TermUISingle) Update(data UIData) {
spl := &t.Sparkline.Lines[i] spl := &t.Sparkline.Lines[i]
max := data.SparklineData[0].Stats[name].Max().String() max := data.SparklineData[0].Stats[name].Max()
spl.Title = fmt.Sprintf("%s: %v (max: %v)", name.Long(), service.Value(name), max) spl.Title = fmt.Sprintf("%s: %v (max: %v)", name.Long(), service.Value(name), max)
spl.TitleColor = colorByKind(name.Kind()) spl.TitleColor = colorByKind(name.Kind())
spl.LineColor = colorByKind(name.Kind()) spl.LineColor = colorByKind(name.Kind())