Update api structs for metrics endpoint

This commit is contained in:
Kyle Havlovitz 2017-08-08 12:33:59 -07:00
parent 6fed5dc490
commit 879651a4ea
No known key found for this signature in database
GPG Key ID: 8A5E6B173056AD6C
2 changed files with 32 additions and 6 deletions

View File

@ -99,10 +99,37 @@ type AgentToken struct {
// Metrics info is used to store different types of metric values from the agent.
type MetricsInfo struct {
Timestamp string
Gauges []map[string]interface{}
Points []map[string]interface{}
Counters []map[string]interface{}
Samples []map[string]interface{}
Gauges []GaugeValue
Points []PointValue
Counters []SampledValue
Samples []SampledValue
}
// GaugeValue stores one value that is updated as time goes on, such as
// the amount of memory allocated.
type GaugeValue struct {
Name string
Value float32
Labels map[string]string
}
// PointValue holds a series of points for a metric.
type PointValue struct {
Name string
Points []float32
}
// SampledValue stores info about a metric that is incremented over time,
// such as the number of requests to an HTTP endpoint.
type SampledValue struct {
Name string
Count int
Sum float64
Min float64
Max float64
Mean float64
Stddev float64
Labels map[string]string
}
// Agent can be used to query the Agent endpoints

View File

@ -44,8 +44,7 @@ func TestAPI_AgentMetrics(t *testing.T) {
t.Fatalf("bad: %v", metrics)
}
name := metrics.Gauges[0]["Name"]
if name != "consul.runtime.alloc_bytes" {
if metrics.Gauges[0].Name != "consul.runtime.alloc_bytes" {
t.Fatalf("bad: %v", metrics.Gauges[0])
}
}