package graphite import ( "fmt" "math" "sort" "strconv" "strings" "time" "github.com/influxdb/influxdb/tsdb" ) var defaultTemplate *template func init() { var err error defaultTemplate, err = NewTemplate("measurement*", nil, DefaultSeparator) if err != nil { panic(err) } } // Parser encapsulates a Graphite Parser. type Parser struct { matcher *matcher tags tsdb.Tags } // Options are configurable values that can be provided to a Parser type Options struct { Separator string Templates []string DefaultTags tsdb.Tags } // NewParserWithOptions returns a graphite parser using the given options func NewParserWithOptions(options Options) (*Parser, error) { matcher := newMatcher() matcher.AddDefaultTemplate(defaultTemplate) for _, pattern := range options.Templates { template := pattern filter := "" // Format is [filter]