influx

package
v1.27.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 31, 2023 License: MIT Imports: 11 Imported by: 60

README

Influx

The influx data format outputs metrics into InfluxDB Line Protocol. This is the recommended format unless another format is required for interoperability.

Configuration

[[outputs.file]]
  ## Files to write to, "stdout" is a specially handled file.
  files = ["stdout", "/tmp/metrics.out"]

  ## Data format to output.
  ## Each data format has its own unique set of configuration options, read
  ## more about them here:
  ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
  data_format = "influx"

  ## 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

Metrics

Conversion is direct taking into account some limitations of the Line Protocol format:

  • Float fields that are NaN or Inf are skipped.
  • Trailing backslash \ characters are removed from tag keys and values.
  • Tags with a key or value that is the empty string are skipped.
  • When not using influx_uint_support, unsigned integers are capped at the max int64.

Documentation

Index

Constants

View Source
const (
	MaxInt64      = int64(^uint64(0) >> 1)
	NeedMoreSpace = "need more space"
	InvalidName   = "invalid name"
	NoFields      = "no serializable fields"
)

Variables

This section is empty.

Functions

func NewReader

func NewReader(metrics []telegraf.Metric, serializer *Serializer) io.Reader

NewReader creates a new reader over the given metrics.

Types

type FieldError

type FieldError struct {
	// contains filtered or unexported fields
}

FieldError is an error causing a field to be unserializable.

func (FieldError) Error

func (e FieldError) Error() string

type MetricError

type MetricError struct {
	// contains filtered or unexported fields
}

MetricError is an error causing an entire metric to be unserializable.

func (MetricError) Error

func (e MetricError) Error() string

type Serializer

type Serializer struct {
	MaxLineBytes int  `toml:"influx_max_line_bytes"`
	SortFields   bool `toml:"influx_sort_fields"`
	UintSupport  bool `toml:"influx_uint_support"`
	// contains filtered or unexported fields
}

Serializer is a serializer for line protocol.

func (*Serializer) Init added in v1.27.0

func (s *Serializer) Init() error

func (*Serializer) InitFromConfig added in v1.27.0

func (s *Serializer) InitFromConfig(cfg *serializers.Config) error

InitFromConfig is a compatibility function to construct the parser the old way

func (*Serializer) Serialize

func (s *Serializer) Serialize(m telegraf.Metric) ([]byte, error)

Serialize writes the telegraf.Metric to a byte slice. May produce multiple lines of output if longer than maximum line length. Lines are terminated with a newline (LF) char.

func (*Serializer) SerializeBatch

func (s *Serializer) SerializeBatch(metrics []telegraf.Metric) ([]byte, error)

SerializeBatch writes the slice of metrics and returns a byte slice of the results. The returned byte slice may contain multiple lines of data.

func (*Serializer) Write

func (s *Serializer) Write(w io.Writer, m telegraf.Metric) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL