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
orInf
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
- Variables
- func NewReader(metrics []telegraf.Metric, serializer *Serializer) io.Reader
- type FieldError
- type FieldSortOrder
- type FieldTypeSupport
- type MetricError
- type Serializer
- func (s *Serializer) Serialize(m telegraf.Metric) ([]byte, error)
- func (s *Serializer) SerializeBatch(metrics []telegraf.Metric) ([]byte, error)
- func (s *Serializer) SetFieldSortOrder(order FieldSortOrder)
- func (s *Serializer) SetFieldTypeSupport(typeSupport FieldTypeSupport)
- func (s *Serializer) SetMaxLineBytes(bytes int)
- func (s *Serializer) Write(w io.Writer, m telegraf.Metric) (int, error)
Constants ¶
const MaxInt64 = int64(^uint64(0) >> 1)
Variables ¶
var ( NeedMoreSpace = "need more space" InvalidName = "invalid name" NoFields = "no serializable fields" )
Functions ¶
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)