fix: Update prometheus parser to be a new style parser plugin (#11440)

This commit is contained in:
reimda 2022-07-06 10:07:53 -06:00 committed by GitHub
parent 8c0cf660c9
commit c25f9a0e83
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 17 deletions

View File

@ -1429,7 +1429,6 @@ func (c *Config) missingTomlField(_ reflect.Type, key string) error {
"grok_custom_pattern_files", "grok_custom_patterns", "grok_named_patterns", "grok_patterns",
"grok_timezone", "grok_unique_timestamp",
"influx_parser_type",
"prometheus_ignore_timestamp", // not used anymore?
"value_field_name":
// Serializer options to ignore

View File

@ -12,6 +12,7 @@ import (
_ "github.com/influxdata/telegraf/plugins/parsers/json_v2"
_ "github.com/influxdata/telegraf/plugins/parsers/logfmt"
_ "github.com/influxdata/telegraf/plugins/parsers/nagios"
_ "github.com/influxdata/telegraf/plugins/parsers/prometheus"
_ "github.com/influxdata/telegraf/plugins/parsers/value"
_ "github.com/influxdata/telegraf/plugins/parsers/wavefront"
_ "github.com/influxdata/telegraf/plugins/parsers/xpath"

View File

@ -16,13 +16,14 @@ import (
"github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/metric"
"github.com/influxdata/telegraf/plugins/parsers"
"github.com/influxdata/telegraf/plugins/parsers/prometheus/common"
)
type Parser struct {
DefaultTags map[string]string
Header http.Header
IgnoreTimestamp bool
DefaultTags map[string]string `toml:"-"`
Header http.Header `toml:"-"` // set by the prometheus input
IgnoreTimestamp bool `toml:"prometheus_ignore_timestamp"`
}
func (p *Parser) Parse(buf []byte) ([]telegraf.Metric, error) {
@ -186,3 +187,15 @@ func (p *Parser) GetTimestamp(m *dto.Metric, now time.Time) time.Time {
}
return t
}
func (p *Parser) InitFromConfig(config *parsers.Config) error {
p.IgnoreTimestamp = config.PrometheusIgnoreTimestamp
return nil
}
func init() {
parsers.Add("prometheus",
func(defaultMetricName string) telegraf.Parser {
return &Parser{}
})
}

View File

@ -6,7 +6,6 @@ import (
"github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/plugins/parsers/influx"
"github.com/influxdata/telegraf/plugins/parsers/influx/influx_upstream"
"github.com/influxdata/telegraf/plugins/parsers/prometheus"
"github.com/influxdata/telegraf/plugins/parsers/prometheusremotewrite"
"github.com/influxdata/telegraf/plugins/parsers/temporary/json_v2"
"github.com/influxdata/telegraf/plugins/parsers/temporary/xpath"
@ -202,11 +201,6 @@ func NewParser(config *Config) (Parser, error) {
} else {
parser, err = NewInfluxParser()
}
case "prometheus":
parser, err = NewPrometheusParser(
config.DefaultTags,
config.PrometheusIgnoreTimestamp,
)
case "prometheusremotewrite":
parser, err = NewPrometheusRemoteWriteParser(config.DefaultTags)
default:
@ -236,13 +230,6 @@ func NewInfluxUpstreamParser() (Parser, error) {
return influx_upstream.NewParser(), nil
}
func NewPrometheusParser(defaultTags map[string]string, ignoreTimestamp bool) (Parser, error) {
return &prometheus.Parser{
DefaultTags: defaultTags,
IgnoreTimestamp: ignoreTimestamp,
}, nil
}
func NewPrometheusRemoteWriteParser(defaultTags map[string]string) (Parser, error) {
return &prometheusremotewrite.Parser{
DefaultTags: defaultTags,