Tests for LoadDirectory.

closes #295
This commit is contained in:
Ellison Marks 2015-10-19 14:28:10 -07:00 committed by Cameron Sparr
parent c938523cd5
commit 4395a46190
5 changed files with 99 additions and 2 deletions

View File

@ -7,7 +7,9 @@ import (
"time" "time"
"github.com/influxdb/telegraf/plugins" "github.com/influxdb/telegraf/plugins"
"github.com/influxdb/telegraf/plugins/exec"
"github.com/influxdb/telegraf/plugins/kafka_consumer" "github.com/influxdb/telegraf/plugins/kafka_consumer"
"github.com/influxdb/telegraf/plugins/procstat"
"github.com/naoina/toml" "github.com/naoina/toml"
"github.com/naoina/toml/ast" "github.com/naoina/toml/ast"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
@ -236,7 +238,7 @@ func TestConfig_parsePlugin(t *testing.T) {
kafka.ZookeeperPeers = []string{"test.example.com:2181"} kafka.ZookeeperPeers = []string{"test.example.com:2181"}
kafka.BatchSize = 1000 kafka.BatchSize = 1000
pConfig := &ConfiguredPlugin{ kConfig := &ConfiguredPlugin{
Name: "kafka", Name: "kafka",
Drop: []string{"other", "stuff"}, Drop: []string{"other", "stuff"},
Pass: []string{"some", "strings"}, Pass: []string{"some", "strings"},
@ -256,5 +258,76 @@ func TestConfig_parsePlugin(t *testing.T) {
} }
assert.Equal(t, kafka, c.plugins["kafka"], "Testdata did not produce a correct kafka struct.") assert.Equal(t, kafka, c.plugins["kafka"], "Testdata did not produce a correct kafka struct.")
assert.Equal(t, pConfig, c.pluginConfigurations["kafka"], "Testdata did not produce correct config metadata.") assert.Equal(t, kConfig, c.pluginConfigurations["kafka"], "Testdata did not produce correct kafka metadata.")
}
func TestConfig_LoadDirectory(t *testing.T) {
c, err := LoadConfig("./testdata/telegraf-agent.toml")
if err != nil {
t.Error(err)
}
err = c.LoadDirectory("./testdata/subconfig")
if err != nil {
t.Error(err)
}
kafka := plugins.Plugins["kafka"]().(*kafka_consumer.Kafka)
kafka.ConsumerGroupName = "telegraf_metrics_consumers"
kafka.Topic = "topic_with_metrics"
kafka.ZookeeperPeers = []string{"localhost:2181", "test.example.com:2181"}
kafka.BatchSize = 10000
kConfig := &ConfiguredPlugin{
Name: "kafka",
Drop: []string{"other", "stuff"},
Pass: []string{"some", "strings"},
TagDrop: []TagFilter{
TagFilter{
Name: "badtag",
Filter: []string{"othertag"},
},
},
TagPass: []TagFilter{
TagFilter{
Name: "goodtag",
Filter: []string{"mytag"},
},
},
Interval: 5 * time.Second,
}
ex := plugins.Plugins["exec"]().(*exec.Exec)
ex.Commands = []*exec.Command{
&exec.Command{
Command: "/usr/bin/mycollector --foo=bar",
Name: "mycollector",
},
&exec.Command{
Command: "/usr/bin/myothercollector --foo=bar",
Name: "myothercollector",
},
}
eConfig := &ConfiguredPlugin{Name: "exec"}
pstat := plugins.Plugins["procstat"]().(*procstat.Procstat)
pstat.Specifications = []*procstat.Specification{
&procstat.Specification{
PidFile: "/var/run/grafana-server.pid",
},
&procstat.Specification{
PidFile: "/var/run/influxdb/influxd.pid",
},
}
pConfig := &ConfiguredPlugin{Name: "procstat"}
assert.Equal(t, kafka, c.plugins["kafka"], "Merged Testdata did not produce a correct kafka struct.")
assert.Equal(t, kConfig, c.pluginConfigurations["kafka"], "Merged Testdata did not produce correct kafka metadata.")
assert.Equal(t, ex, c.plugins["exec"], "Merged Testdata did not produce a correct exec struct.")
assert.Equal(t, eConfig, c.pluginConfigurations["exec"], "Merged Testdata did not produce correct exec metadata.")
assert.Equal(t, pstat, c.plugins["procstat"], "Merged Testdata did not produce a correct procstat struct.")
assert.Equal(t, pConfig, c.pluginConfigurations["procstat"], "Merged Testdata did not produce correct procstat metadata.")
} }

8
testdata/subconfig/exec.conf vendored Normal file
View File

@ -0,0 +1,8 @@
[exec]
# specify commands via an array of tables
[[exec.commands]]
# the command to run
command = "/usr/bin/myothercollector --foo=bar"
# name of the command (used as a prefix for measurements)
name = "myothercollector"

10
testdata/subconfig/kafka.conf vendored Normal file
View File

@ -0,0 +1,10 @@
[kafka]
zookeeperPeers = ["test.example.com:2181"]
batchSize = 10000
pass = ["some", "strings"]
drop = ["other", "stuff"]
interval = "5s"
[kafka.tagpass]
goodtag = ["mytag"]
[kafka.tagdrop]
badtag = ["othertag"]

View File

@ -0,0 +1,3 @@
[procstat]
[[procstat.specifications]]
pid_file = "/var/run/grafana-server.pid"

View File

@ -0,0 +1,3 @@
[procstat]
[[procstat.specifications]]
pid_file = "/var/run/influxdb/influxd.pid"