Documentation ¶
Index ¶
- Variables
- func Add(name string, creator Creator)
- type Config
- type Creator
- type JSONV2Config
- type Parser
- func NewCollectdParser(authFile string, securityLevel string, typesDB []string, split string) (Parser, error)
- func NewDropwizardParser(metricRegistryPath string, timePath string, timeFormat string, tagsPath string, ...) (Parser, error)
- func NewFormUrlencodedParser(metricName string, defaultTags map[string]string, tagKeys []string) (Parser, error)
- func NewGraphiteParser(separator string, templates []string, defaultTags map[string]string) (Parser, error)
- func NewInfluxParser() (Parser, error)
- func NewInfluxUpstreamParser() (Parser, error)
- func NewJSONPathParser(jsonv2config []JSONV2Config) (Parser, error)
- func NewLogFmtParser(metricName string, defaultTags map[string]string, tagKeys []string) (Parser, error)
- func NewNagiosParser() (Parser, error)
- func NewParser(config *Config) (Parser, error)
- func NewPrometheusParser(defaultTags map[string]string, ignoreTimestamp bool) (Parser, error)
- func NewPrometheusRemoteWriteParser(defaultTags map[string]string) (Parser, error)
- func NewValueParser(metricName string, dataType string, fieldName string, ...) (Parser, error)
- func NewWavefrontParser(defaultTags map[string]string) (Parser, error)
- type ParserCompatibility
- type ParserFunc
- type ParserFuncInput
- type ParserInput
- type XPathConfig
Constants ¶
This section is empty.
Variables ¶
var Parsers = map[string]Creator{}
Parsers contains the registry of all known parsers (following the new style)
Functions ¶
Types ¶
type Config ¶
type Config struct { // DataFormat can be one of: json, influx, graphite, value, nagios DataFormat string `toml:"data_format"` // Separator only applied to Graphite data. Separator string `toml:"separator"` // Templates only apply to Graphite data. Templates []string `toml:"templates"` // TagKeys only apply to JSON data TagKeys []string `toml:"tag_keys"` // Array of glob pattern strings keys that should be added as string fields. JSONStringFields []string `toml:"json_string_fields"` JSONNameKey string `toml:"json_name_key"` // MetricName applies to JSON & value. This will be the name of the measurement. MetricName string `toml:"metric_name"` // holds a gjson path for json parser JSONQuery string `toml:"json_query"` // key of time JSONTimeKey string `toml:"json_time_key"` // time format JSONTimeFormat string `toml:"json_time_format"` // default timezone JSONTimezone string `toml:"json_timezone"` // Whether to continue if a JSON object can't be coerced JSONStrict bool `toml:"json_strict"` // Authentication file for collectd CollectdAuthFile string `toml:"collectd_auth_file"` // One of none (default), sign, or encrypt CollectdSecurityLevel string `toml:"collectd_security_level"` // Dataset specification for collectd CollectdTypesDB []string `toml:"collectd_types_db"` // whether to split or join multivalue metrics CollectdSplit string `toml:"collectd_split"` // DataType only applies to value, this will be the type to parse value to DataType string `toml:"data_type"` // DefaultTags are the default tags that will be added to all parsed metrics. DefaultTags map[string]string `toml:"default_tags"` // an optional json path containing the metric registry object // if left empty, the whole json object is parsed as a metric registry DropwizardMetricRegistryPath string `toml:"dropwizard_metric_registry_path"` // an optional json path containing the default time of the metrics // if left empty, the processing time is used DropwizardTimePath string `toml:"dropwizard_time_path"` // time format to use for parsing the time field // defaults to time.RFC3339 DropwizardTimeFormat string `toml:"dropwizard_time_format"` // an optional json path pointing to a json object with tag key/value pairs // takes precedence over DropwizardTagPathsMap DropwizardTagsPath string `toml:"dropwizard_tags_path"` // 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 `toml:"dropwizard_tag_paths_map"` //grok patterns GrokPatterns []string `toml:"grok_patterns"` GrokNamedPatterns []string `toml:"grok_named_patterns"` GrokCustomPatterns string `toml:"grok_custom_patterns"` GrokCustomPatternFiles []string `toml:"grok_custom_pattern_files"` GrokTimezone string `toml:"grok_timezone"` GrokUniqueTimestamp string `toml:"grok_unique_timestamp"` //csv configuration CSVColumnNames []string `toml:"csv_column_names"` CSVColumnTypes []string `toml:"csv_column_types"` CSVComment string `toml:"csv_comment"` CSVDelimiter string `toml:"csv_delimiter"` CSVHeaderRowCount int `toml:"csv_header_row_count"` CSVMeasurementColumn string `toml:"csv_measurement_column"` CSVSkipColumns int `toml:"csv_skip_columns"` CSVSkipRows int `toml:"csv_skip_rows"` CSVTagColumns []string `toml:"csv_tag_columns"` CSVTimestampColumn string `toml:"csv_timestamp_column"` CSVTimestampFormat string `toml:"csv_timestamp_format"` CSVTimezone string `toml:"csv_timezone"` CSVTrimSpace bool `toml:"csv_trim_space"` CSVSkipValues []string `toml:"csv_skip_values"` CSVSkipErrors bool `toml:"csv_skip_errors"` CSVMetadataRows int `toml:"csv_metadata_rows"` CSVMetadataSeparators []string `toml:"csv_metadata_separators"` CSVMetadataTrimSet string `toml:"csv_metadata_trim_set"` // FormData configuration FormUrlencodedTagKeys []string `toml:"form_urlencoded_tag_keys"` // Prometheus configuration PrometheusIgnoreTimestamp bool `toml:"prometheus_ignore_timestamp"` // Value configuration ValueFieldName string `toml:"value_field_name"` // XPath configuration XPathPrintDocument bool `toml:"xpath_print_document"` XPathProtobufFile string `toml:"xpath_protobuf_file"` XPathProtobufType string `toml:"xpath_protobuf_type"` XPathProtobufImportPaths []string `toml:"xpath_protobuf_import_paths"` XPathAllowEmptySelection bool `toml:"xpath_allow_empty_selection"` XPathConfig []XPathConfig `toml:"xpath"` // JSONPath configuration JSONV2Config []JSONV2Config `toml:"json_v2"` // Influx configuration InfluxParserType string `toml:"influx_parser_type"` // LogFmt configuration LogFmtTagKeys []string `toml:"logfmt_tag_keys"` }
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 JSONV2Config ¶ added in v1.19.0
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 // // Must be thread-safe. Parse(buf []byte) ([]telegraf.Metric, error) // ParseLine takes a single string metric // ie, "cpu.usage.idle 90" // and parses it into a telegraf metric. // // Must be thread-safe. // This function is only called by plugins that expect line based protocols // Doesn't need to be implemented by non-linebased parsers (e.g. json, xml) ParseLine(line string) (telegraf.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 NewDropwizardParser ¶
func NewFormUrlencodedParser ¶
func NewGraphiteParser ¶
func NewInfluxParser ¶
func NewInfluxUpstreamParser ¶ added in v1.22.0
func NewJSONPathParser ¶ added in v1.19.0
func NewJSONPathParser(jsonv2config []JSONV2Config) (Parser, error)
func NewLogFmtParser ¶
func NewLogFmtParser(metricName string, defaultTags map[string]string, tagKeys []string) (Parser, error)
NewLogFmtParser returns a logfmt parser with the default options.
func NewNagiosParser ¶
func NewPrometheusParser ¶ added in v1.17.0
func NewPrometheusRemoteWriteParser ¶ added in v1.18.3
func NewValueParser ¶
type ParserCompatibility ¶ added in v1.22.0
type ParserCompatibility interface { // InitFromConfig sets the parser internal variables from the old-style config InitFromConfig(config *Config) error }
ParserCompatibility is an interface for backward-compatible initialization of new parsers
type ParserFunc ¶
type ParserFuncInput ¶
type ParserFuncInput interface { // SetParserFunc returns a new parser. SetParserFunc(fn ParserFunc) }
ParserFuncInput is an interface for input plugins that are able to parse arbitrary data formats.
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.
type XPathConfig ¶ added in v1.20.0
type XPathConfig struct { MetricQuery string `toml:"metric_name"` Selection string `toml:"metric_selection"` Timestamp string `toml:"timestamp"` TimestampFmt string `toml:"timestamp_format"` Tags map[string]string `toml:"tags"` Fields map[string]string `toml:"fields"` FieldsInt map[string]string `toml:"fields_int"` FieldSelection string `toml:"field_selection"` FieldNameQuery string `toml:"field_name"` FieldValueQuery string `toml:"field_value"` FieldNameExpand bool `toml:"field_name_expansion"` TagSelection string `toml:"tag_selection"` TagNameQuery string `toml:"tag_name"` TagValueQuery string `toml:"tag_value"` TagNameExpand bool `toml:"tag_name_expansion"` }
XPathConfig definition for backward compatibitlity ONLY. We need this here to avoid cyclic dependencies. However, we need to move this to plugins/parsers/xpath once we deprecate parser construction via `NewParser()`.