2015-04-25 15:54:17 +03:00
|
|
|
package main
|
|
|
|
|
|
|
|
import "time"
|
|
|
|
|
2015-05-01 14:37:28 +03:00
|
|
|
// UIData represents data to be passed to UI.
|
|
|
|
type UIData struct {
|
2015-05-01 20:12:23 +03:00
|
|
|
Services []*Service
|
2015-05-01 18:48:34 +03:00
|
|
|
Vars []VarName
|
2015-04-25 15:54:17 +03:00
|
|
|
LastTimestamp time.Time
|
2016-11-11 00:29:06 +01:00
|
|
|
|
|
|
|
SparklineData []*SparklineData
|
2015-04-25 15:54:17 +03:00
|
|
|
}
|
|
|
|
|
2016-11-11 00:29:06 +01:00
|
|
|
// SparklineData holds additional data needed for sparklines.
|
|
|
|
type SparklineData struct {
|
|
|
|
Stacks map[VarName]*Stack
|
|
|
|
Stats map[VarName]*Stat
|
|
|
|
}
|
|
|
|
|
|
|
|
// NewSparklineData inits new Sparkline data object.
|
|
|
|
func NewSparklineData(vars []VarName) *SparklineData {
|
2016-11-10 22:34:31 +01:00
|
|
|
stacks := make(map[VarName]*Stack)
|
|
|
|
stats := make(map[VarName]*Stat)
|
|
|
|
for _, v := range vars {
|
|
|
|
stacks[v] = NewStack()
|
|
|
|
stats[v] = NewStat()
|
|
|
|
}
|
2016-11-11 00:29:06 +01:00
|
|
|
return &SparklineData{
|
2016-11-10 22:34:31 +01:00
|
|
|
Stacks: stacks,
|
|
|
|
Stats: stats,
|
2015-05-01 16:49:19 +03:00
|
|
|
}
|
2015-04-25 15:54:17 +03:00
|
|
|
}
|
2016-11-11 00:29:06 +01:00
|
|
|
|
|
|
|
// NewUIData inits and return new data object.
|
|
|
|
func NewUIData(vars []VarName, services []*Service) *UIData {
|
|
|
|
sp := make([]*SparklineData, len(services))
|
|
|
|
for i, _ := range services {
|
|
|
|
sp[i] = NewSparklineData(vars)
|
|
|
|
}
|
|
|
|
return &UIData{
|
|
|
|
Services: services,
|
|
|
|
Vars: vars,
|
|
|
|
SparklineData: sp,
|
|
|
|
}
|
|
|
|
}
|