Version: v0.0.0-...-bdb06d8 Latest Latest

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

Go to latest
Published: Mar 17, 2018 License: MIT Imports: 9 Imported by: 0




This section is empty.


This section is empty.


This section is empty.


type Config

type Config struct {
	// Dataformat can be one of: json, influx, graphite, value, nagios
	DataFormat string

	// Separator only applied to Graphite data.
	Separator string
	// Templates only apply to Graphite data.
	Templates []string

	// TagKeys only apply to JSON data
	TagKeys []string
	// MetricName applies to JSON & value. This will be the name of the measurement.
	MetricName string

	// Authentication file for collectd
	CollectdAuthFile string
	// One of none (default), sign, or encrypt
	CollectdSecurityLevel string
	// Dataset specification for collectd
	CollectdTypesDB []string

	// DataType only applies to value, this will be the type to parse value to
	DataType string

	// DefaultTags are the default tags that will be added to all parsed metrics.
	DefaultTags map[string]string

	// an optional json path containing the metric registry object
	// if left empty, the whole json object is parsed as a metric registry
	DropwizardMetricRegistryPath string
	// an optional json path containing the default time of the metrics
	// if left empty, the processing time is used
	DropwizardTimePath string
	// time format to use for parsing the time field
	// defaults to time.RFC3339
	DropwizardTimeFormat string
	// an optional json path pointing to a json object with tag key/value pairs
	// takes precedence over DropwizardTagPathsMap
	DropwizardTagsPath string
	// an optional map containing tag names as keys and json paths to retrieve the tag values from as values
	// used if TagsPath is empty or doesn't return any tags
	DropwizardTagPathsMap map[string]string

Config is a struct that covers the data types needed for all parser types, and can be used to instantiate _any_ of the parsers.

type Parser

type Parser interface {
	// Parse takes a byte buffer separated by newlines
	// ie, `cpu.usage.idle 90\ncpu.usage.busy 10`
	// and parses it into telegraf metrics
	Parse(buf []byte) ([]tinymonitor.Metric, error)

	// ParseLine takes a single string metric
	// ie, "cpu.usage.idle 90"
	// and parses it into a telegraf metric.
	ParseLine(line string) (tinymonitor.Metric, error)

	// SetDefaultTags tells the parser to add all of the given tags
	// to each parsed metric.
	// NOTE: do _not_ modify the map after you've passed it here!!
	SetDefaultTags(tags map[string]string)

Parser is an interface defining functions that a parser plugin must satisfy.

func NewCollectdParser

func NewCollectdParser(
	authFile string,
	securityLevel string,
	typesDB []string,
) (Parser, error)

func NewDropwizardParser

func NewDropwizardParser(
	metricRegistryPath string,
	timePath string,
	timeFormat string,
	tagsPath string,
	tagPathsMap map[string]string,
	defaultTags map[string]string,
	separator string,
	templates []string,

) (Parser, error)

func NewGraphiteParser

func NewGraphiteParser(
	separator string,
	templates []string,
	defaultTags map[string]string,
) (Parser, error)

func NewInfluxParser

func NewInfluxParser() (Parser, error)

func NewJSONParser

func NewJSONParser(
	metricName string,
	tagKeys []string,
	defaultTags map[string]string,
) (Parser, error)

func NewNagiosParser

func NewNagiosParser() (Parser, error)

func NewParser

func NewParser(config *Config) (Parser, error)

NewParser returns a Parser interface based on the given config.

func NewValueParser

func NewValueParser(
	metricName string,
	dataType string,
	defaultTags map[string]string,
) (Parser, error)

type ParserInput

type ParserInput interface {
	// SetParser sets the parser function for the interface
	SetParser(parser Parser)

ParserInput is an interface for input plugins that are able to parse arbitrary data formats.

Source Files


Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL