Forgot to update exec plugin which depended on modified encoding parser engine... To Fix it.
This commit is contained in:
parent
4d7f5eacf0
commit
074b43c0f2
|
@ -95,8 +95,11 @@ Now let's say we have the following configuration:
|
||||||
|
|
||||||
```
|
```
|
||||||
[[inputs.exec]]
|
[[inputs.exec]]
|
||||||
# the command to run
|
# Shell/commands array
|
||||||
command = "/usr/bin/line_protocol_collector"
|
# compatible with old version
|
||||||
|
# we can still use the old command configuration
|
||||||
|
# command = "/usr/bin/line_protocol_collector"
|
||||||
|
commands = ["/usr/bin/line_protocol_collector","/tmp/test2.sh"]
|
||||||
|
|
||||||
# Data format to consume. This can be "json" or "influx" (line-protocol)
|
# Data format to consume. This can be "json" or "influx" (line-protocol)
|
||||||
# NOTE json only reads numerical measurements, strings and booleans are ignored.
|
# NOTE json only reads numerical measurements, strings and booleans are ignored.
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
package exec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/influxdata/telegraf/internal/encoding/graphite"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Config represents the configuration for Graphite endpoints.
|
|
||||||
type Config struct {
|
|
||||||
Commands []string
|
|
||||||
graphite.Config
|
|
||||||
}
|
|
||||||
|
|
||||||
// New Config instance.
|
|
||||||
func NewConfig(commands, templates []string, separator string) *Config {
|
|
||||||
c := &Config{}
|
|
||||||
if separator == "" {
|
|
||||||
separator = graphite.DefaultSeparator
|
|
||||||
}
|
|
||||||
|
|
||||||
c.Commands = commands
|
|
||||||
c.Templates = templates
|
|
||||||
c.Separator = separator
|
|
||||||
|
|
||||||
return c
|
|
||||||
}
|
|
|
@ -10,8 +10,11 @@ import (
|
||||||
|
|
||||||
"github.com/influxdata/telegraf"
|
"github.com/influxdata/telegraf"
|
||||||
"github.com/influxdata/telegraf/internal/encoding"
|
"github.com/influxdata/telegraf/internal/encoding"
|
||||||
"github.com/influxdata/telegraf/internal/encoding/graphite"
|
|
||||||
"github.com/influxdata/telegraf/plugins/inputs"
|
"github.com/influxdata/telegraf/plugins/inputs"
|
||||||
|
|
||||||
|
_ "github.com/influxdata/telegraf/internal/encoding/graphite"
|
||||||
|
_ "github.com/influxdata/telegraf/internal/encoding/influx"
|
||||||
|
_ "github.com/influxdata/telegraf/internal/encoding/json"
|
||||||
)
|
)
|
||||||
|
|
||||||
const sampleConfig = `
|
const sampleConfig = `
|
||||||
|
@ -57,9 +60,7 @@ type Exec struct {
|
||||||
Separator string
|
Separator string
|
||||||
Templates []string
|
Templates []string
|
||||||
|
|
||||||
encodingParser *encoding.Parser
|
encodingParser encoding.Parser
|
||||||
|
|
||||||
config *Config
|
|
||||||
|
|
||||||
initedConfig bool
|
initedConfig bool
|
||||||
|
|
||||||
|
@ -107,8 +108,13 @@ func (e *Exec) ProcessCommand(command string, acc telegraf.Accumulator) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = e.encodingParser.Parse(e.DataFormat, out, acc); err != nil {
|
metrics, err := e.encodingParser.Parse(out)
|
||||||
|
if err != nil {
|
||||||
e.errc <- err
|
e.errc <- err
|
||||||
|
} else {
|
||||||
|
for _, metric := range metrics {
|
||||||
|
acc.AddFields(metric.Name(), metric.Fields(), metric.Tags(), metric.Time())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,23 +126,22 @@ func (e *Exec) initConfig() error {
|
||||||
e.Commands = []string{e.Command}
|
e.Commands = []string{e.Command}
|
||||||
}
|
}
|
||||||
|
|
||||||
c := NewConfig(e.Commands, e.Templates, e.Separator)
|
if e.DataFormat == "" {
|
||||||
if err := c.Validate(); err != nil {
|
e.DataFormat = "json"
|
||||||
return fmt.Errorf("exec configuration is error: %s ", err.Error())
|
|
||||||
|
|
||||||
}
|
}
|
||||||
e.config = c
|
|
||||||
|
|
||||||
graphiteParser, err := graphite.NewParserWithOptions(graphite.Options{
|
var err error
|
||||||
Templates: e.config.Templates,
|
|
||||||
Separator: e.config.Separator})
|
configs := make(map[string]interface{})
|
||||||
|
configs["Separator"] = e.Separator
|
||||||
|
configs["Templates"] = e.Templates
|
||||||
|
|
||||||
|
e.encodingParser, err = encoding.NewParser(e.DataFormat, configs)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("exec input parser config is error: %s ", err.Error())
|
return fmt.Errorf("exec configuration is error: %s ", err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
e.encodingParser = encoding.NewParser(graphiteParser)
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue