chore(processors.regex): Inform and warn user on operation modus (#14084)
This commit is contained in:
parent
7adcc701f9
commit
efe7112ef9
|
|
@ -9,7 +9,46 @@ import (
|
||||||
"github.com/influxdata/telegraf/filter"
|
"github.com/influxdata/telegraf/filter"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *converter) setup(ct converterType) error {
|
type converterType int
|
||||||
|
|
||||||
|
const (
|
||||||
|
convertTags = iota
|
||||||
|
convertFields
|
||||||
|
convertTagRename
|
||||||
|
convertFieldRename
|
||||||
|
convertMetricRename
|
||||||
|
)
|
||||||
|
|
||||||
|
func (ct converterType) String() string {
|
||||||
|
switch ct {
|
||||||
|
case convertTags:
|
||||||
|
return "tags"
|
||||||
|
case convertFields:
|
||||||
|
return "fields"
|
||||||
|
case convertTagRename:
|
||||||
|
return "tag_rename"
|
||||||
|
case convertFieldRename:
|
||||||
|
return "field_rename"
|
||||||
|
case convertMetricRename:
|
||||||
|
return "metric_rename"
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("unknown %d", int(ct))
|
||||||
|
}
|
||||||
|
|
||||||
|
type converter struct {
|
||||||
|
Key string `toml:"key"`
|
||||||
|
Pattern string `toml:"pattern"`
|
||||||
|
Replacement string `toml:"replacement"`
|
||||||
|
ResultKey string `toml:"result_key"`
|
||||||
|
Append bool `toml:"append"`
|
||||||
|
|
||||||
|
filter filter.Filter
|
||||||
|
re *regexp.Regexp
|
||||||
|
groups []string
|
||||||
|
apply func(m telegraf.Metric)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *converter) setup(ct converterType, log telegraf.Logger) error {
|
||||||
// Compile the pattern
|
// Compile the pattern
|
||||||
re, err := regexp.Compile(c.Pattern)
|
re, err := regexp.Compile(c.Pattern)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -39,8 +78,15 @@ func (c *converter) setup(ct converterType) error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if allNamed {
|
if allNamed {
|
||||||
|
log.Infof("%s: Using named-group mode...", ct)
|
||||||
c.groups = groups[1:]
|
c.groups = groups[1:]
|
||||||
|
} else {
|
||||||
|
msg := "Neither 'result_key' nor 'replacement' given with unnamed or mixed groups;"
|
||||||
|
msg += " using explicit, empty replacement!"
|
||||||
|
log.Warnf("%s: %s", ct, msg)
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
log.Infof("%s: Using explicit mode...", ct)
|
||||||
}
|
}
|
||||||
case convertTagRename, convertFieldRename:
|
case convertTagRename, convertFieldRename:
|
||||||
switch c.ResultKey {
|
switch c.ResultKey {
|
||||||
|
|
|
||||||
|
|
@ -4,26 +4,14 @@ package regex
|
||||||
import (
|
import (
|
||||||
_ "embed"
|
_ "embed"
|
||||||
"fmt"
|
"fmt"
|
||||||
"regexp"
|
|
||||||
|
|
||||||
"github.com/influxdata/telegraf"
|
"github.com/influxdata/telegraf"
|
||||||
"github.com/influxdata/telegraf/filter"
|
|
||||||
"github.com/influxdata/telegraf/plugins/processors"
|
"github.com/influxdata/telegraf/plugins/processors"
|
||||||
)
|
)
|
||||||
|
|
||||||
//go:embed sample.conf
|
//go:embed sample.conf
|
||||||
var sampleConfig string
|
var sampleConfig string
|
||||||
|
|
||||||
type converterType int
|
|
||||||
|
|
||||||
const (
|
|
||||||
convertTags = iota
|
|
||||||
convertFields
|
|
||||||
convertTagRename
|
|
||||||
convertFieldRename
|
|
||||||
convertMetricRename
|
|
||||||
)
|
|
||||||
|
|
||||||
type Regex struct {
|
type Regex struct {
|
||||||
Tags []converter `toml:"tags"`
|
Tags []converter `toml:"tags"`
|
||||||
Fields []converter `toml:"fields"`
|
Fields []converter `toml:"fields"`
|
||||||
|
|
@ -33,19 +21,6 @@ type Regex struct {
|
||||||
Log telegraf.Logger `toml:"-"`
|
Log telegraf.Logger `toml:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type converter struct {
|
|
||||||
Key string `toml:"key"`
|
|
||||||
Pattern string `toml:"pattern"`
|
|
||||||
Replacement string `toml:"replacement"`
|
|
||||||
ResultKey string `toml:"result_key"`
|
|
||||||
Append bool `toml:"append"`
|
|
||||||
|
|
||||||
filter filter.Filter
|
|
||||||
re *regexp.Regexp
|
|
||||||
groups []string
|
|
||||||
apply func(m telegraf.Metric)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*Regex) SampleConfig() string {
|
func (*Regex) SampleConfig() string {
|
||||||
return sampleConfig
|
return sampleConfig
|
||||||
}
|
}
|
||||||
|
|
@ -53,12 +28,12 @@ func (*Regex) SampleConfig() string {
|
||||||
func (r *Regex) Init() error {
|
func (r *Regex) Init() error {
|
||||||
// Compile the regular expressions
|
// Compile the regular expressions
|
||||||
for i := range r.Tags {
|
for i := range r.Tags {
|
||||||
if err := r.Tags[i].setup(convertTags); err != nil {
|
if err := r.Tags[i].setup(convertTags, r.Log); err != nil {
|
||||||
return fmt.Errorf("'tags' %w", err)
|
return fmt.Errorf("'tags' %w", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for i := range r.Fields {
|
for i := range r.Fields {
|
||||||
if err := r.Fields[i].setup(convertFields); err != nil {
|
if err := r.Fields[i].setup(convertFields, r.Log); err != nil {
|
||||||
return fmt.Errorf("'fields' %w", err)
|
return fmt.Errorf("'fields' %w", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -67,7 +42,7 @@ func (r *Regex) Init() error {
|
||||||
if c.Key != "" {
|
if c.Key != "" {
|
||||||
r.Log.Info("'tag_rename' section contains a key which is ignored during processing")
|
r.Log.Info("'tag_rename' section contains a key which is ignored during processing")
|
||||||
}
|
}
|
||||||
if err := r.TagRename[i].setup(convertTagRename); err != nil {
|
if err := r.TagRename[i].setup(convertTagRename, r.Log); err != nil {
|
||||||
return fmt.Errorf("'tag_rename' %w", err)
|
return fmt.Errorf("'tag_rename' %w", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -77,7 +52,7 @@ func (r *Regex) Init() error {
|
||||||
r.Log.Info("'field_rename' section contains a key which is ignored during processing")
|
r.Log.Info("'field_rename' section contains a key which is ignored during processing")
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := r.FieldRename[i].setup(convertFieldRename); err != nil {
|
if err := r.FieldRename[i].setup(convertFieldRename, r.Log); err != nil {
|
||||||
return fmt.Errorf("'field_rename' %w", err)
|
return fmt.Errorf("'field_rename' %w", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -91,7 +66,7 @@ func (r *Regex) Init() error {
|
||||||
r.Log.Info("'metric_rename' section contains a 'result_key' ignored during processing as metrics will ALWAYS the name")
|
r.Log.Info("'metric_rename' section contains a 'result_key' ignored during processing as metrics will ALWAYS the name")
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := r.MetricRename[i].setup(convertMetricRename); err != nil {
|
if err := r.MetricRename[i].setup(convertMetricRename, r.Log); err != nil {
|
||||||
return fmt.Errorf("'metric_rename' %w", err)
|
return fmt.Errorf("'metric_rename' %w", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue