Update influxdb dependency for new models.Tags

This commit is contained in:
Cameron Sparr 2016-10-06 13:29:46 +01:00
parent cace663bbf
commit 9540a6532f
5 changed files with 33 additions and 18 deletions

6
Godeps
View File

@ -19,7 +19,7 @@ github.com/eclipse/paho.mqtt.golang 0f7a459f04f13a41b7ed752d47944528d4bf9a86
github.com/go-sql-driver/mysql 1fca743146605a172a266e1654e01e5cd5669bee github.com/go-sql-driver/mysql 1fca743146605a172a266e1654e01e5cd5669bee
github.com/gobwas/glob 49571a1557cd20e6a2410adc6421f85b66c730b5 github.com/gobwas/glob 49571a1557cd20e6a2410adc6421f85b66c730b5
github.com/golang/protobuf 552c7b9542c194800fd493123b3798ef0a832032 github.com/golang/protobuf 552c7b9542c194800fd493123b3798ef0a832032
github.com/golang/snappy 427fb6fc07997f43afa32f35e850833760e489a7 github.com/golang/snappy d9eb7a3d35ec988b8585d4a0068e462c27d28380
github.com/gonuts/go-shellquote e842a11b24c6abfb3dd27af69a17f482e4b483c2 github.com/gonuts/go-shellquote e842a11b24c6abfb3dd27af69a17f482e4b483c2
github.com/gorilla/context 1ea25387ff6f684839d82767c1733ff4d4d15d0a github.com/gorilla/context 1ea25387ff6f684839d82767c1733ff4d4d15d0a
github.com/gorilla/mux c9e326e2bdec29039a3761c07bece13133863e1e github.com/gorilla/mux c9e326e2bdec29039a3761c07bece13133863e1e
@ -27,7 +27,7 @@ github.com/hailocab/go-hostpool e80d13ce29ede4452c43dea11e79b9bc8a15b478
github.com/hashicorp/consul 5aa90455ce78d4d41578bafc86305e6e6b28d7d2 github.com/hashicorp/consul 5aa90455ce78d4d41578bafc86305e6e6b28d7d2
github.com/hpcloud/tail b2940955ab8b26e19d43a43c4da0475dd81bdb56 github.com/hpcloud/tail b2940955ab8b26e19d43a43c4da0475dd81bdb56
github.com/influxdata/config b79f6829346b8d6e78ba73544b1e1038f1f1c9da github.com/influxdata/config b79f6829346b8d6e78ba73544b1e1038f1f1c9da
github.com/influxdata/influxdb e094138084855d444195b252314dfee9eae34cab github.com/influxdata/influxdb fc57c0f7c635df3873f3d64f0ed2100ddc94d5ae
github.com/influxdata/toml af4df43894b16e3fd2b788d01bd27ad0776ef2d0 github.com/influxdata/toml af4df43894b16e3fd2b788d01bd27ad0776ef2d0
github.com/influxdata/wlog 7c63b0a71ef8300adc255344d275e10e5c3a71ec github.com/influxdata/wlog 7c63b0a71ef8300adc255344d275e10e5c3a71ec
github.com/kardianos/osext 29ae4ffbc9a6fe9fb2bc5029050ce6996ea1d3bc github.com/kardianos/osext 29ae4ffbc9a6fe9fb2bc5029050ce6996ea1d3bc
@ -56,7 +56,7 @@ github.com/wvanbergen/kafka 46f9a1cf3f670edec492029fadded9c2d9e18866
github.com/wvanbergen/kazoo-go 0f768712ae6f76454f987c3356177e138df258f8 github.com/wvanbergen/kazoo-go 0f768712ae6f76454f987c3356177e138df258f8
github.com/yuin/gopher-lua bf3808abd44b1e55143a2d7f08571aaa80db1808 github.com/yuin/gopher-lua bf3808abd44b1e55143a2d7f08571aaa80db1808
github.com/zensqlmonitor/go-mssqldb ffe5510c6fa5e15e6d983210ab501c815b56b363 github.com/zensqlmonitor/go-mssqldb ffe5510c6fa5e15e6d983210ab501c815b56b363
golang.org/x/crypto 5dc8cb4b8a8eb076cbb5a06bc3b8682c15bdbbd3 golang.org/x/crypto c197bcf24cde29d3f73c7b4ac6fd41f4384e8af6
golang.org/x/net 6acef71eb69611914f7a30939ea9f6e194c78172 golang.org/x/net 6acef71eb69611914f7a30939ea9f6e194c78172
golang.org/x/text a71fd10341b064c10f4a81ceac72bcf70f26ea34 golang.org/x/text a71fd10341b064c10f4a81ceac72bcf70f26ea34
gopkg.in/dancannon/gorethink.v1 7d1af5be49cb5ecc7b177bf387d232050299d6ef gopkg.in/dancannon/gorethink.v1 7d1af5be49cb5ecc7b177bf387d232050299d6ef

View File

@ -829,12 +829,15 @@ func (c *Config) addInput(name string, table *ast.Table) error {
return nil return nil
} }
// buildAggregator TODO doc // buildAggregator parses Aggregator specific items from the ast.Table,
// builds the filter and returns a
// models.AggregatorConfig to be inserted into models.RunningAggregator
func buildAggregator(name string, tbl *ast.Table) (*models.AggregatorConfig, error) { func buildAggregator(name string, tbl *ast.Table) (*models.AggregatorConfig, error) {
unsupportedFields := []string{"tagexclude", "taginclude"} unsupportedFields := []string{"tagexclude", "taginclude"}
for _, field := range unsupportedFields { for _, field := range unsupportedFields {
if _, ok := tbl.Fields[field]; ok { if _, ok := tbl.Fields[field]; ok {
// TODO raise error because field is not supported return nil, fmt.Errorf("%s is not supported for aggregator plugins (%s).",
field, name)
} }
} }
@ -926,13 +929,16 @@ func buildAggregator(name string, tbl *ast.Table) (*models.AggregatorConfig, err
return conf, nil return conf, nil
} }
// buildProcessor TODO doc // buildProcessor parses Processor specific items from the ast.Table,
// builds the filter and returns a
// models.ProcessorConfig to be inserted into models.RunningProcessor
func buildProcessor(name string, tbl *ast.Table) (*models.ProcessorConfig, error) { func buildProcessor(name string, tbl *ast.Table) (*models.ProcessorConfig, error) {
conf := &models.ProcessorConfig{Name: name} conf := &models.ProcessorConfig{Name: name}
unsupportedFields := []string{"tagexclude", "taginclude", "fielddrop", "fieldpass"} unsupportedFields := []string{"tagexclude", "taginclude", "fielddrop", "fieldpass"}
for _, field := range unsupportedFields { for _, field := range unsupportedFields {
if _, ok := tbl.Fields[field]; ok { if _, ok := tbl.Fields[field]; ok {
// TODO raise error because field is not supported return nil, fmt.Errorf("%s is not supported for processor plugins (%s).",
field, name)
} }
} }

View File

@ -65,6 +65,13 @@ type metric struct {
isaggregate bool isaggregate bool
} }
func NewMetricFromPoint(pt models.Point) Metric {
return &metric{
pt: pt,
mType: Untyped,
}
}
// NewMetric returns an untyped metric. // NewMetric returns an untyped metric.
func NewMetric( func NewMetric(
name string, name string,
@ -72,7 +79,7 @@ func NewMetric(
fields map[string]interface{}, fields map[string]interface{},
t time.Time, t time.Time,
) (Metric, error) { ) (Metric, error) {
pt, err := models.NewPoint(name, tags, fields, t) pt, err := models.NewPoint(name, models.NewTags(tags), fields, t)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -91,7 +98,7 @@ func NewGaugeMetric(
fields map[string]interface{}, fields map[string]interface{},
t time.Time, t time.Time,
) (Metric, error) { ) (Metric, error) {
pt, err := models.NewPoint(name, tags, fields, t) pt, err := models.NewPoint(name, models.NewTags(tags), fields, t)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -110,7 +117,7 @@ func NewCounterMetric(
fields map[string]interface{}, fields map[string]interface{},
t time.Time, t time.Time,
) (Metric, error) { ) (Metric, error) {
pt, err := models.NewPoint(name, tags, fields, t) pt, err := models.NewPoint(name, models.NewTags(tags), fields, t)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -125,7 +132,7 @@ func (m *metric) Name() string {
} }
func (m *metric) Tags() map[string]string { func (m *metric) Tags() map[string]string {
return m.pt.Tags() return m.pt.Tags().Map()
} }
func (m *metric) Time() time.Time { func (m *metric) Time() time.Time {

View File

@ -24,8 +24,12 @@ type minmax struct {
} }
var sampleConfig = ` var sampleConfig = `
## TODO doc ## General Aggregator Arguments:
## The period on which to flush & clear the aggregator.
period = "30s" period = "30s"
## If true, the original metric will be dropped by the
## aggregator and will not get sent to the output plugins.
drop_original = false
` `
func (m *MinMax) SampleConfig() string { func (m *MinMax) SampleConfig() string {

View File

@ -26,17 +26,15 @@ func (p *InfluxParser) Parse(buf []byte) ([]telegraf.Metric, error) {
points, err := models.ParsePoints(buf) points, err := models.ParsePoints(buf)
metrics := make([]telegraf.Metric, len(points)) metrics := make([]telegraf.Metric, len(points))
for i, point := range points { for i, point := range points {
tags := point.Tags()
for k, v := range p.DefaultTags { for k, v := range p.DefaultTags {
// Only set tags not in parsed metric // only set the default tag if it doesn't already exist:
if _, ok := tags[k]; !ok { if tmp := point.Tags().GetString(k); tmp == "" {
tags[k] = v point.AddTag(k, v)
} }
} }
// Ignore error here because it's impossible that a model.Point // Ignore error here because it's impossible that a model.Point
// wouldn't parse into client.Point properly // wouldn't parse into client.Point properly
metrics[i], _ = telegraf.NewMetric(point.Name(), tags, metrics[i] = telegraf.NewMetricFromPoint(point)
point.Fields(), point.Time())
} }
return metrics, err return metrics, err
} }