0.3.0 unit tests: procstat, prometheus, puppetagent

This commit is contained in:
Cameron Sparr 2016-01-06 17:56:30 -07:00
parent 6eb49dee5d
commit ccbd7bb785
5 changed files with 41 additions and 64 deletions

View File

@ -5,6 +5,8 @@
- **breaking change** Plugin measurements aggregated into a single measurement. - **breaking change** Plugin measurements aggregated into a single measurement.
- **breaking change** `jolokia` plugin: must use global tag/drop/pass parameters - **breaking change** `jolokia` plugin: must use global tag/drop/pass parameters
for configuration. for configuration.
- **breaking change** `procstat` plugin has `*cpu*` fields renamed to
`*cpu_time*`
- `twemproxy` plugin: `prefix` option removed. - `twemproxy` plugin: `prefix` option removed.
- `procstat` cpu measurements are now prepended with `cpu_time_` instead of - `procstat` cpu measurements are now prepended with `cpu_time_` instead of
only `cpu_` only `cpu_`

View File

@ -20,11 +20,11 @@ func TestGather(t *testing.T) {
file.Write([]byte(strconv.Itoa(pid))) file.Write([]byte(strconv.Itoa(pid)))
file.Close() file.Close()
defer os.Remove(file.Name()) defer os.Remove(file.Name())
specifications := []*Specification{&Specification{PidFile: file.Name(), Prefix: "foo"}}
p := Procstat{ p := Procstat{
Specifications: specifications, PidFile: file.Name(),
Prefix: "foo",
} }
p.Gather(&acc) p.Gather(&acc)
assert.True(t, acc.HasFloatValue("foo_cpu_user")) assert.True(t, acc.HasFloatField("procstat", "foo_cpu_time_user"))
assert.True(t, acc.HasUIntValue("foo_memory_vms")) assert.True(t, acc.HasUIntField("procstat", "foo_memory_vms"))
} }

View File

@ -77,7 +77,8 @@ func (g *Prometheus) gatherURL(url string, acc plugins.Accumulator) error {
if err == io.EOF { if err == io.EOF {
break break
} else if err != nil { } else if err != nil {
return fmt.Errorf("error getting processing samples for %s: %s", url, err) return fmt.Errorf("error getting processing samples for %s: %s",
url, err)
} }
for _, sample := range samples { for _, sample := range samples {
tags := make(map[string]string) tags := make(map[string]string)

View File

@ -45,11 +45,11 @@ func TestPrometheusGeneratesMetrics(t *testing.T) {
value float64 value float64
tags map[string]string tags map[string]string
}{ }{
{"go_gc_duration_seconds_count", 7, map[string]string{}}, {"prometheus_go_gc_duration_seconds_count", 7, map[string]string{}},
{"go_goroutines", 15, map[string]string{}}, {"prometheus_go_goroutines", 15, map[string]string{}},
} }
for _, e := range expected { for _, e := range expected {
assert.NoError(t, acc.ValidateValue(e.name, e.value)) assert.True(t, acc.HasFloatField(e.name, "value"))
} }
} }

View File

@ -2,7 +2,6 @@ package puppetagent
import ( import (
"github.com/influxdb/telegraf/testutil" "github.com/influxdb/telegraf/testutil"
"github.com/stretchr/testify/assert"
"testing" "testing"
) )
@ -14,61 +13,36 @@ func TestGather(t *testing.T) {
} }
pa.Gather(&acc) pa.Gather(&acc)
checkInt := []struct { tags := map[string]string{"location": "last_run_summary.yaml"}
name string fields := map[string]interface{}{
value int64 "events_failure": int64(0),
}{ "events_total": int64(0),
{"events_failure", 0}, "events_success": int64(0),
{"events_total", 0}, "resources_failed": int64(0),
{"events_success", 0}, "resources_scheduled": int64(0),
{"resources_failed", 0}, "resources_changed": int64(0),
{"resources_scheduled", 0}, "resources_skipped": int64(0),
{"resources_changed", 0}, "resources_total": int64(109),
{"resources_skipped", 0}, "resources_failedtorestart": int64(0),
{"resources_total", 109}, "resources_restarted": int64(0),
{"resources_failedtorestart", 0}, "resources_outofsync": int64(0),
{"resources_restarted", 0}, "changes_total": int64(0),
{"resources_outofsync", 0}, "time_lastrun": int64(1444936531),
{"changes_total", 0}, "version_config": int64(1444936521),
{"time_lastrun", 1444936531}, "time_user": float64(0.004331),
{"version_config", 1444936521}, "time_schedule": float64(0.001123),
} "time_filebucket": float64(0.000353),
"time_file": float64(0.441472),
for _, c := range checkInt { "time_exec": float64(0.508123),
assert.Equal(t, true, acc.CheckValue(c.name, c.value)) "time_anchor": float64(0.000555),
} "time_sshauthorizedkey": float64(0.000764),
"time_service": float64(1.807795),
checkFloat := []struct { "time_package": float64(1.325788),
name string "time_total": float64(8.85354707064819),
value float64 "time_configretrieval": float64(4.75567007064819),
}{ "time_cron": float64(0.000584),
{"time_user", 0.004331}, "version_puppet": "3.7.5",
{"time_schedule", 0.001123},
{"time_filebucket", 0.000353},
{"time_file", 0.441472},
{"time_exec", 0.508123},
{"time_anchor", 0.000555},
{"time_sshauthorizedkey", 0.000764},
{"time_service", 1.807795},
{"time_package", 1.325788},
{"time_total", 8.85354707064819},
{"time_configretrieval", 4.75567007064819},
{"time_cron", 0.000584},
}
for _, f := range checkFloat {
assert.Equal(t, true, acc.CheckValue(f.name, f.value))
}
checkString := []struct {
name string
value string
}{
{"version_puppet", "3.7.5"},
}
for _, s := range checkString {
assert.Equal(t, true, acc.CheckValue(s.name, s.value))
} }
acc.AssertContainsTaggedFields(t, "puppetagent", fields, tags)
} }