Create public models for telegraf metrics, accumlator, plugins

This will basically make the root directory a place for storing the
major telegraf interfaces, which will make telegraf's godoc looks quite
a bit nicer. And make it easier for contributors to lookup the few data
types that they actually care about.

closes #564
This commit is contained in:
Cameron Sparr
2016-01-27 14:21:36 -07:00
parent a822d942cd
commit 9c0d14bb60
83 changed files with 699 additions and 525 deletions

View File

@@ -11,6 +11,7 @@ import (
"github.com/influxdata/influxdb/client/v2"
"github.com/influxdata/telegraf/internal"
"github.com/influxdata/telegraf/plugins/outputs"
"github.com/influxdata/telegraf"
)
type Amon struct {
@@ -151,7 +152,7 @@ func (a *Amon) Close() error {
}
func init() {
outputs.Add("amon", func() outputs.Output {
outputs.Add("amon", func() telegraf.Output {
return &Amon{}
})
}

View File

@@ -12,6 +12,7 @@ import (
"github.com/influxdata/influxdb/client/v2"
"github.com/influxdata/telegraf/plugins/outputs"
"github.com/influxdata/telegraf"
"github.com/streadway/amqp"
)
@@ -190,7 +191,7 @@ func (q *AMQP) Write(points []*client.Point) error {
}
func init() {
outputs.Add("amqp", func() outputs.Output {
outputs.Add("amqp", func() telegraf.Output {
return &AMQP{
Database: DefaultDatabase,
Precision: DefaultPrecision,

View File

@@ -16,6 +16,7 @@ import (
"github.com/influxdata/influxdb/client/v2"
"github.com/influxdata/telegraf/plugins/outputs"
"github.com/influxdata/telegraf"
)
type CloudWatch struct {
@@ -230,7 +231,7 @@ func BuildDimensions(ptTags map[string]string) []*cloudwatch.Dimension {
}
func init() {
outputs.Add("cloudwatch", func() outputs.Output {
outputs.Add("cloudwatch", func() telegraf.Output {
return &CloudWatch{}
})
}

View File

@@ -13,6 +13,7 @@ import (
"github.com/influxdata/influxdb/client/v2"
"github.com/influxdata/telegraf/internal"
"github.com/influxdata/telegraf/plugins/outputs"
"github.com/influxdata/telegraf"
)
type Datadog struct {
@@ -173,7 +174,7 @@ func (d *Datadog) Close() error {
}
func init() {
outputs.Add("datadog", func() outputs.Output {
outputs.Add("datadog", func() telegraf.Output {
return NewDatadog(datadog_api)
})
}

View File

@@ -5,6 +5,7 @@ import (
"fmt"
"github.com/influxdata/influxdb/client/v2"
"github.com/influxdata/telegraf/plugins/outputs"
"github.com/influxdata/telegraf"
"log"
"math/rand"
"net"
@@ -128,7 +129,7 @@ func (g *Graphite) Write(points []*client.Point) error {
}
func init() {
outputs.Add("graphite", func() outputs.Output {
outputs.Add("graphite", func() telegraf.Output {
return &Graphite{}
})
}

View File

@@ -12,6 +12,7 @@ import (
"github.com/influxdata/influxdb/client/v2"
"github.com/influxdata/telegraf/internal"
"github.com/influxdata/telegraf/plugins/outputs"
"github.com/influxdata/telegraf"
)
type InfluxDB struct {
@@ -156,7 +157,7 @@ func (i *InfluxDB) Write(points []*client.Point) error {
}
func init() {
outputs.Add("influxdb", func() outputs.Output {
outputs.Add("influxdb", func() telegraf.Output {
return &InfluxDB{}
})
}

View File

@@ -8,6 +8,7 @@ import (
"github.com/Shopify/sarama"
"github.com/influxdata/influxdb/client/v2"
"github.com/influxdata/telegraf/plugins/outputs"
"github.com/influxdata/telegraf"
"io/ioutil"
)
@@ -140,7 +141,7 @@ func (k *Kafka) Write(points []*client.Point) error {
}
func init() {
outputs.Add("kafka", func() outputs.Output {
outputs.Add("kafka", func() telegraf.Output {
return &Kafka{}
})
}

View File

@@ -16,6 +16,7 @@ import (
"github.com/influxdata/influxdb/client/v2"
"github.com/influxdata/telegraf/plugins/outputs"
"github.com/influxdata/telegraf"
)
type KinesisOutput struct {
@@ -172,7 +173,7 @@ func (k *KinesisOutput) Write(points []*client.Point) error {
}
func init() {
outputs.Add("kinesis", func() outputs.Output {
outputs.Add("kinesis", func() telegraf.Output {
return &KinesisOutput{}
})
}

View File

@@ -10,6 +10,7 @@ import (
"github.com/influxdata/influxdb/client/v2"
"github.com/influxdata/telegraf/internal"
"github.com/influxdata/telegraf/plugins/outputs"
"github.com/influxdata/telegraf"
)
type Librato struct {
@@ -169,7 +170,7 @@ func (l *Librato) Close() error {
}
func init() {
outputs.Add("librato", func() outputs.Output {
outputs.Add("librato", func() telegraf.Output {
return NewLibrato(librato_api)
})
}

View File

@@ -13,6 +13,7 @@ import (
"github.com/influxdata/influxdb/client/v2"
"github.com/influxdata/telegraf/internal"
"github.com/influxdata/telegraf/plugins/outputs"
"github.com/influxdata/telegraf"
)
const MaxClientIdLen = 8
@@ -184,7 +185,7 @@ func getCertPool(pemPath string) (*x509.CertPool, error) {
}
func init() {
outputs.Add("mqtt", func() outputs.Output {
outputs.Add("mqtt", func() telegraf.Output {
return &MQTT{}
})
}

View File

@@ -4,6 +4,7 @@ import (
"fmt"
"github.com/influxdata/influxdb/client/v2"
"github.com/influxdata/telegraf/plugins/outputs"
"github.com/influxdata/telegraf"
"github.com/nsqio/go-nsq"
)
@@ -65,7 +66,7 @@ func (n *NSQ) Write(points []*client.Point) error {
}
func init() {
outputs.Add("nsq", func() outputs.Output {
outputs.Add("nsq", func() telegraf.Output {
return &NSQ{}
})
}

View File

@@ -10,6 +10,7 @@ import (
"github.com/influxdata/influxdb/client/v2"
"github.com/influxdata/telegraf/plugins/outputs"
"github.com/influxdata/telegraf"
)
type OpenTSDB struct {
@@ -162,7 +163,7 @@ func (o *OpenTSDB) Close() error {
}
func init() {
outputs.Add("opentsdb", func() outputs.Output {
outputs.Add("opentsdb", func() telegraf.Output {
return &OpenTSDB{}
})
}

View File

@@ -7,6 +7,7 @@ import (
"github.com/influxdata/influxdb/client/v2"
"github.com/influxdata/telegraf/plugins/outputs"
"github.com/influxdata/telegraf"
"github.com/prometheus/client_golang/prometheus"
)
@@ -119,7 +120,7 @@ func (p *PrometheusClient) Write(points []*client.Point) error {
}
func init() {
outputs.Add("prometheus_client", func() outputs.Output {
outputs.Add("prometheus_client", func() telegraf.Output {
return &PrometheusClient{}
})
}

View File

@@ -1,40 +1,10 @@
package outputs
import (
"github.com/influxdata/influxdb/client/v2"
"github.com/influxdata/telegraf"
)
type Output interface {
// Connect to the Output
Connect() error
// Close any connections to the Output
Close() error
// Description returns a one-sentence description on the Output
Description() string
// SampleConfig returns the default configuration of the Output
SampleConfig() string
// Write takes in group of points to be written to the Output
Write(points []*client.Point) error
}
type ServiceOutput interface {
// Connect to the Output
Connect() error
// Close any connections to the Output
Close() error
// Description returns a one-sentence description on the Output
Description() string
// SampleConfig returns the default configuration of the Output
SampleConfig() string
// Write takes in group of points to be written to the Output
Write(points []*client.Point) error
// Start the "service" that will provide an Output
Start() error
// Stop the "service" that will provide an Output
Stop()
}
type Creator func() Output
type Creator func() telegraf.Output
var Outputs = map[string]Creator{}

View File

@@ -8,6 +8,7 @@ import (
"github.com/amir/raidman"
"github.com/influxdata/influxdb/client/v2"
"github.com/influxdata/telegraf/plugins/outputs"
"github.com/influxdata/telegraf"
)
type Riemann struct {
@@ -95,7 +96,7 @@ func buildEvents(p *client.Point) []*raidman.Event {
}
func init() {
outputs.Add("riemann", func() outputs.Output {
outputs.Add("riemann", func() telegraf.Output {
return &Riemann{}
})
}