Documentation ¶
Index ¶
- Constants
- Variables
- func NewMachine(handler Handler) *machine
- func NewSeriesMachine(handler Handler) *machine
- func NewStreamMachine(r io.Reader, handler Handler) *streamMachine
- type Handler
- type MetricHandler
- func (h *MetricHandler) AddBool(key []byte, value []byte) error
- func (h *MetricHandler) AddFloat(key []byte, value []byte) error
- func (h *MetricHandler) AddInt(key []byte, value []byte) error
- func (h *MetricHandler) AddString(key []byte, value []byte) error
- func (h *MetricHandler) AddTag(key []byte, value []byte) error
- func (h *MetricHandler) AddUint(key []byte, value []byte) error
- func (h *MetricHandler) Metric() (telegraf.Metric, error)
- func (h *MetricHandler) SetMeasurement(name []byte) error
- func (h *MetricHandler) SetTimeFunc(f TimeFunc)
- func (h *MetricHandler) SetTimePrecision(p time.Duration)
- func (h *MetricHandler) SetTimestamp(tm []byte) error
- type ParseError
- type Parser
- func (m Parser) Column() int
- func (m Parser) LineNumber() int
- func (m Parser) LineOffset() int
- func (m Parser) Next() error
- func (p *Parser) Parse(input []byte) ([]telegraf.Metric, error)
- func (p *Parser) ParseLine(line string) (telegraf.Metric, error)
- func (m Parser) Position() int
- func (m Parser) SetData(data []byte)
- func (p *Parser) SetDefaultTags(tags map[string]string)
- func (h *Parser) SetTimeFunc(f TimeFunc)
- type StreamParser
- func (p *StreamParser) Column() int
- func (p *StreamParser) LineNumber() int
- func (p *StreamParser) LineOffset() int
- func (p *StreamParser) LineText() string
- func (p *StreamParser) Next() (telegraf.Metric, error)
- func (p *StreamParser) Position() int
- func (h *StreamParser) SetTimeFunc(f TimeFunc)
- func (h *StreamParser) SetTimePrecision(u time.Duration)
- type TimeFunc
Constants ¶
const LineProtocol_en_align int = 739
const LineProtocol_en_discard_line int = 257
const LineProtocol_en_main int = 269
const LineProtocol_en_series int = 260
const LineProtocol_error int = 0
const LineProtocol_first_final int = 269
const LineProtocol_start int = 269
Variables ¶
var ( ErrNameParse = errors.New("expected measurement name") ErrFieldParse = errors.New("expected field") ErrTagParse = errors.New("expected tag") ErrTimestampParse = errors.New("expected timestamp") ErrParse = errors.New("parse error") EOF = errors.New("EOF") )
var (
ErrNoMetric = errors.New("no metric in line")
)
Functions ¶
func NewMachine ¶
func NewMachine(handler Handler) *machine
func NewSeriesMachine ¶
func NewSeriesMachine(handler Handler) *machine
func NewStreamMachine ¶
Types ¶
type Handler ¶
type Handler interface { SetMeasurement(name []byte) error AddTag(key []byte, value []byte) error AddInt(key []byte, value []byte) error AddUint(key []byte, value []byte) error AddFloat(key []byte, value []byte) error AddString(key []byte, value []byte) error AddBool(key []byte, value []byte) error SetTimestamp(tm []byte) error }
type MetricHandler ¶
type MetricHandler struct {
// contains filtered or unexported fields
}
MetricHandler implements the Handler interface and produces telegraf.Metric.
func NewMetricHandler ¶
func NewMetricHandler() *MetricHandler
func (*MetricHandler) SetMeasurement ¶
func (h *MetricHandler) SetMeasurement(name []byte) error
func (*MetricHandler) SetTimeFunc ¶
func (h *MetricHandler) SetTimeFunc(f TimeFunc)
func (*MetricHandler) SetTimePrecision ¶
func (h *MetricHandler) SetTimePrecision(p time.Duration)
func (*MetricHandler) SetTimestamp ¶
func (h *MetricHandler) SetTimestamp(tm []byte) error
type ParseError ¶
type ParseError struct { Offset int LineOffset int LineNumber int Column int // contains filtered or unexported fields }
ParseError indicates a error in the parsing of the text.
func (*ParseError) Error ¶
func (e *ParseError) Error() string
type Parser ¶
type Parser struct { DefaultTags map[string]string sync.Mutex // contains filtered or unexported fields }
Parser is an InfluxDB Line Protocol parser that implements the parsers.Parser interface.
func NewParser ¶
func NewParser(handler *MetricHandler) *Parser
NewParser returns a Parser than accepts line protocol
func NewSeriesParser ¶
func NewSeriesParser(handler *MetricHandler) *Parser
NewSeriesParser returns a Parser than accepts a measurement and tagset
func (Parser) LineNumber ¶
func (m Parser) LineNumber() int
LineNumber returns the current line number. Lines are counted based on the regular expression `\r?\n`.
func (Parser) LineOffset ¶
func (m Parser) LineOffset() int
LineOffset returns the byte offset of the current line.
func (Parser) Next ¶
func (m Parser) Next() error
Next parses the next metric line and returns nil if it was successfully processed. If the line contains a syntax error an error is returned, otherwise if the end of file is reached before finding a metric line then EOF is returned.
func (Parser) Position ¶
func (m Parser) Position() int
Position returns the current byte offset into the data.
func (*Parser) SetDefaultTags ¶
func (*Parser) SetTimeFunc ¶
type StreamParser ¶
type StreamParser struct {
// contains filtered or unexported fields
}
StreamParser is an InfluxDB Line Protocol parser. It is not safe for concurrent use in multiple goroutines.
func NewStreamParser ¶
func NewStreamParser(r io.Reader) *StreamParser
func (*StreamParser) Column ¶
func (p *StreamParser) Column() int
Column returns the current column.
func (*StreamParser) LineNumber ¶
func (p *StreamParser) LineNumber() int
LineNumber returns the current line number. Lines are counted based on the regular expression `\r?\n`.
func (*StreamParser) LineOffset ¶
func (p *StreamParser) LineOffset() int
LineOffset returns the byte offset of the current line.
func (*StreamParser) LineText ¶
func (p *StreamParser) LineText() string
LineText returns the text of the current line that has been parsed so far.
func (*StreamParser) Next ¶
func (p *StreamParser) Next() (telegraf.Metric, error)
Next parses the next item from the stream. You can repeat calls to this function if it returns ParseError to get the next metric or error.
func (*StreamParser) Position ¶
func (p *StreamParser) Position() int
Position returns the current byte offset into the data.
func (*StreamParser) SetTimeFunc ¶
func (h *StreamParser) SetTimeFunc(f TimeFunc)
SetTimeFunc changes the function used to determine the time of metrics without a timestamp. The default TimeFunc is time.Now. Useful mostly for testing, or perhaps if you want all metrics to have the same timestamp.
func (*StreamParser) SetTimePrecision ¶
func (h *StreamParser) SetTimePrecision(u time.Duration)