fix: Update prometheus parser to be a new style parser plugin (#11440)
This commit is contained in:
parent
8c0cf660c9
commit
c25f9a0e83
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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{}
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in New Issue