2016-06-01 10:02:28 +00:00
|
|
|
package consul
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/hashicorp/consul/api"
|
|
|
|
"github.com/influxdata/telegraf/testutil"
|
|
|
|
)
|
|
|
|
|
|
|
|
var sampleChecks = []*api.HealthCheck{
|
|
|
|
&api.HealthCheck{
|
|
|
|
Node: "localhost",
|
|
|
|
CheckID: "foo.health123",
|
|
|
|
Name: "foo.health",
|
|
|
|
Status: "passing",
|
|
|
|
Notes: "lorem ipsum",
|
|
|
|
Output: "OK",
|
|
|
|
ServiceID: "foo.123",
|
|
|
|
ServiceName: "foo",
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestGatherHealtCheck(t *testing.T) {
|
|
|
|
expectedFields := map[string]interface{}{
|
|
|
|
"check_name": "foo.health",
|
|
|
|
"status": "passing",
|
2017-01-29 00:47:25 +00:00
|
|
|
"passing": 1,
|
|
|
|
"critical": 0,
|
|
|
|
"warning": 0,
|
2016-06-01 10:02:28 +00:00
|
|
|
"service_id": "foo.123",
|
|
|
|
}
|
|
|
|
|
|
|
|
expectedTags := map[string]string{
|
|
|
|
"node": "localhost",
|
|
|
|
"service_name": "foo",
|
2016-12-20 13:03:31 +00:00
|
|
|
"check_id": "foo.health123",
|
2016-06-01 10:02:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
var acc testutil.Accumulator
|
|
|
|
|
|
|
|
consul := &Consul{}
|
|
|
|
consul.GatherHealthCheck(&acc, sampleChecks)
|
|
|
|
|
|
|
|
acc.AssertContainsTaggedFields(t, "consul_health_checks", expectedFields, expectedTags)
|
|
|
|
}
|