influx

package
v1.18.3 Latest Latest
Warning

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

Go to latest
Published: May 20, 2021 License: MIT Imports: 9 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)

Variables

View Source
var (
	NeedMoreSpace = "need more space"
	InvalidName   = "invalid name"
	NoFields      = "no serializable fields"
)

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 FieldSortOrder

type FieldSortOrder int
const (
	NoSortFields FieldSortOrder = iota
	SortFields
)

type FieldTypeSupport

type FieldTypeSupport int
const (
	UintSupport FieldTypeSupport = 1 << iota
)

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 {
	// contains filtered or unexported fields
}

Serializer is a serializer for line protocol.

func NewSerializer

func NewSerializer() *Serializer

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) SetFieldSortOrder

func (s *Serializer) SetFieldSortOrder(order FieldSortOrder)

func (*Serializer) SetFieldTypeSupport

func (s *Serializer) SetFieldTypeSupport(typeSupport FieldTypeSupport)

func (*Serializer) SetMaxLineBytes

func (s *Serializer) SetMaxLineBytes(bytes int)

func (*Serializer) Write

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

Jump to

Keyboard shortcuts

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