feat(processors.printer): Embed Influx serializer options (#15434)

This commit is contained in:
Thomas Casteleyn 2024-06-04 10:32:38 +02:00 committed by GitHub
parent b0cf21e236
commit ca525d69f8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 40 additions and 7 deletions

View File

@ -16,6 +16,25 @@ See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
```toml @sample.conf ```toml @sample.conf
# Print all metrics that pass through this filter. # Print all metrics that pass through this filter.
[[processors.printer]] [[processors.printer]]
## Maximum line length in bytes. Useful only for debugging.
# influx_max_line_bytes = 0
## When true, fields will be output in ascending lexical order. Enabling
## this option will result in decreased performance and is only recommended
## when you need predictable ordering while debugging.
# influx_sort_fields = false
## When true, Telegraf will output unsigned integers as unsigned values,
## i.e.: `42u`. You will need a version of InfluxDB supporting unsigned
## integer values. Enabling this option will result in field type errors if
## existing data has been written.
# influx_uint_support = false
## When true, Telegraf will omit the timestamp on data to allow InfluxDB
## to set the timestamp of the data during ingestion. This is generally NOT
## what you want as it can lead to data points captured at different times
## getting omitted due to similar data.
# influx_omit_timestamp = false
``` ```
## Tags ## Tags

View File

@ -14,21 +14,16 @@ import (
var sampleConfig string var sampleConfig string
type Printer struct { type Printer struct {
serializer *influx.Serializer influx.Serializer
} }
func (*Printer) SampleConfig() string { func (*Printer) SampleConfig() string {
return sampleConfig return sampleConfig
} }
func (p *Printer) Init() error {
p.serializer = &influx.Serializer{}
return p.serializer.Init()
}
func (p *Printer) Apply(in ...telegraf.Metric) []telegraf.Metric { func (p *Printer) Apply(in ...telegraf.Metric) []telegraf.Metric {
for _, metric := range in { for _, metric := range in {
octets, err := p.serializer.Serialize(metric) octets, err := p.Serialize(metric)
if err != nil { if err != nil {
continue continue
} }

View File

@ -1,2 +1,21 @@
# Print all metrics that pass through this filter. # Print all metrics that pass through this filter.
[[processors.printer]] [[processors.printer]]
## Maximum line length in bytes. Useful only for debugging.
# influx_max_line_bytes = 0
## When true, fields will be output in ascending lexical order. Enabling
## this option will result in decreased performance and is only recommended
## when you need predictable ordering while debugging.
# influx_sort_fields = false
## When true, Telegraf will output unsigned integers as unsigned values,
## i.e.: `42u`. You will need a version of InfluxDB supporting unsigned
## integer values. Enabling this option will result in field type errors if
## existing data has been written.
# influx_uint_support = false
## When true, Telegraf will omit the timestamp on data to allow InfluxDB
## to set the timestamp of the data during ingestion. This is generally NOT
## what you want as it can lead to data points captured at different times
## getting omitted due to similar data.
# influx_omit_timestamp = false