move plugin interfaces into separate package

This commit is contained in:
David Norton
2016-12-23 10:18:27 -05:00
parent 3e6c4a53a4
commit 81caa56859
182 changed files with 817 additions and 817 deletions

View File

@@ -3,7 +3,7 @@ package buffer
import (
"sync"
"github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/plugins"
"github.com/influxdata/telegraf/selfstat"
)
@@ -14,7 +14,7 @@ var (
// Buffer is an object for storing metrics in a circular buffer.
type Buffer struct {
buf chan telegraf.Metric
buf chan plugins.Metric
mu sync.Mutex
}
@@ -24,7 +24,7 @@ type Buffer struct {
// called when the buffer is full, then the oldest metric(s) will be dropped.
func NewBuffer(size int) *Buffer {
return &Buffer{
buf: make(chan telegraf.Metric, size),
buf: make(chan plugins.Metric, size),
}
}
@@ -39,7 +39,7 @@ func (b *Buffer) Len() int {
}
// Add adds metrics to the buffer.
func (b *Buffer) Add(metrics ...telegraf.Metric) {
func (b *Buffer) Add(metrics ...plugins.Metric) {
for i, _ := range metrics {
MetricsWritten.Incr(1)
select {
@@ -55,10 +55,10 @@ func (b *Buffer) Add(metrics ...telegraf.Metric) {
// Batch returns a batch of metrics of size batchSize.
// the batch will be of maximum length batchSize. It can be less than batchSize,
// if the length of Buffer is less than batchSize.
func (b *Buffer) Batch(batchSize int) []telegraf.Metric {
func (b *Buffer) Batch(batchSize int) []plugins.Metric {
b.mu.Lock()
n := min(len(b.buf), batchSize)
out := make([]telegraf.Metric, n)
out := make([]plugins.Metric, n)
for i := 0; i < n; i++ {
out[i] = <-b.buf
}

View File

@@ -3,13 +3,13 @@ package buffer
import (
"testing"
"github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/plugins"
"github.com/influxdata/telegraf/testutil"
"github.com/stretchr/testify/assert"
)
var metricList = []telegraf.Metric{
var metricList = []plugins.Metric{
testutil.TestMetric(2, "mymetric1"),
testutil.TestMetric(1, "mymetric2"),
testutil.TestMetric(11, "mymetric3"),

View File

@@ -15,9 +15,9 @@ import (
"strings"
"time"
"github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/internal"
"github.com/influxdata/telegraf/internal/models"
"github.com/influxdata/telegraf/plugins"
"github.com/influxdata/telegraf/plugins/aggregators"
"github.com/influxdata/telegraf/plugins/inputs"
"github.com/influxdata/telegraf/plugins/outputs"
@@ -399,7 +399,7 @@ func printFilteredInputs(inputFilters []string, commented bool) {
sort.Strings(pnames)
// cache service inputs to print them at the end
servInputs := make(map[string]telegraf.ServiceInput)
servInputs := make(map[string]plugins.ServiceInput)
// for alphabetical looping:
servInputNames := []string{}
@@ -409,7 +409,7 @@ func printFilteredInputs(inputFilters []string, commented bool) {
input := creator()
switch p := input.(type) {
case telegraf.ServiceInput:
case plugins.ServiceInput:
servInputs[pname] = p
servInputNames = append(servInputNames, pname)
continue

View File

@@ -5,8 +5,8 @@ import (
"math"
"time"
"github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/metric"
"github.com/influxdata/telegraf/plugins"
)
// makemetric is used by both RunningAggregator & RunningInput
@@ -32,9 +32,9 @@ func makemetric(
daemonTags map[string]string,
filter Filter,
applyFilter bool,
mType telegraf.ValueType,
mType plugins.ValueType,
t time.Time,
) telegraf.Metric {
) plugins.Metric {
if len(fields) == 0 || len(measurement) == 0 {
return nil
}

View File

@@ -3,28 +3,28 @@ package models
import (
"time"
"github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/metric"
"github.com/influxdata/telegraf/plugins"
)
type RunningAggregator struct {
a telegraf.Aggregator
a plugins.Aggregator
Config *AggregatorConfig
metrics chan telegraf.Metric
metrics chan plugins.Metric
periodStart time.Time
periodEnd time.Time
}
func NewRunningAggregator(
a telegraf.Aggregator,
a plugins.Aggregator,
conf *AggregatorConfig,
) *RunningAggregator {
return &RunningAggregator{
a: a,
Config: conf,
metrics: make(chan telegraf.Metric, 100),
metrics: make(chan plugins.Metric, 100),
}
}
@@ -52,9 +52,9 @@ func (r *RunningAggregator) MakeMetric(
measurement string,
fields map[string]interface{},
tags map[string]string,
mType telegraf.ValueType,
mType plugins.ValueType,
t time.Time,
) telegraf.Metric {
) plugins.Metric {
m := makemetric(
measurement,
fields,
@@ -80,7 +80,7 @@ func (r *RunningAggregator) MakeMetric(
// Add applies the given metric to the aggregator.
// Before applying to the plugin, it will run any defined filters on the metric.
// Apply returns true if the original metric should be dropped.
func (r *RunningAggregator) Add(in telegraf.Metric) bool {
func (r *RunningAggregator) Add(in plugins.Metric) bool {
if r.Config.Filter.IsActive() {
// check if the aggregator should apply this metric
name := in.Name()
@@ -98,11 +98,11 @@ func (r *RunningAggregator) Add(in telegraf.Metric) bool {
r.metrics <- in
return r.Config.DropOriginal
}
func (r *RunningAggregator) add(in telegraf.Metric) {
func (r *RunningAggregator) add(in plugins.Metric) {
r.a.Add(in)
}
func (r *RunningAggregator) push(acc telegraf.Accumulator) {
func (r *RunningAggregator) push(acc plugins.Accumulator) {
r.a.Push(acc)
}
@@ -113,7 +113,7 @@ func (r *RunningAggregator) reset() {
// Run runs the running aggregator, listens for incoming metrics, and waits
// for period ticks to tell it when to push and reset the aggregator.
func (r *RunningAggregator) Run(
acc telegraf.Accumulator,
acc plugins.Accumulator,
shutdown chan struct{},
) {
// The start of the period is truncated to the nearest second.

View File

@@ -7,7 +7,7 @@ import (
"testing"
"time"
"github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/plugins"
"github.com/influxdata/telegraf/testutil"
"github.com/stretchr/testify/assert"
@@ -30,7 +30,7 @@ func TestAdd(t *testing.T) {
"RITest",
map[string]interface{}{"value": int(101)},
map[string]string{},
telegraf.Untyped,
plugins.Untyped,
time.Now().Add(time.Millisecond*150),
)
assert.False(t, ra.Add(m))
@@ -62,7 +62,7 @@ func TestAddMetricsOutsideCurrentPeriod(t *testing.T) {
"RITest",
map[string]interface{}{"value": int(101)},
map[string]string{},
telegraf.Untyped,
plugins.Untyped,
time.Now().Add(-time.Hour),
)
assert.False(t, ra.Add(m))
@@ -72,7 +72,7 @@ func TestAddMetricsOutsideCurrentPeriod(t *testing.T) {
"RITest",
map[string]interface{}{"value": int(101)},
map[string]string{},
telegraf.Untyped,
plugins.Untyped,
time.Now().Add(time.Hour),
)
assert.False(t, ra.Add(m))
@@ -82,7 +82,7 @@ func TestAddMetricsOutsideCurrentPeriod(t *testing.T) {
"RITest",
map[string]interface{}{"value": int(101)},
map[string]string{},
telegraf.Untyped,
plugins.Untyped,
time.Now().Add(time.Millisecond*50),
)
assert.False(t, ra.Add(m))
@@ -120,7 +120,7 @@ func TestAddAndPushOnePeriod(t *testing.T) {
"RITest",
map[string]interface{}{"value": int(101)},
map[string]string{},
telegraf.Untyped,
plugins.Untyped,
time.Now().Add(time.Millisecond*100),
)
assert.False(t, ra.Add(m))
@@ -151,7 +151,7 @@ func TestAddDropOriginal(t *testing.T) {
"RITest",
map[string]interface{}{"value": int(101)},
map[string]string{},
telegraf.Untyped,
plugins.Untyped,
time.Now(),
)
assert.True(t, ra.Add(m))
@@ -161,7 +161,7 @@ func TestAddDropOriginal(t *testing.T) {
"foobar",
map[string]interface{}{"value": int(101)},
map[string]string{},
telegraf.Untyped,
plugins.Untyped,
time.Now(),
)
assert.False(t, ra.Add(m2))
@@ -179,7 +179,7 @@ func TestMakeMetricA(t *testing.T) {
"RITest",
map[string]interface{}{"value": int(101)},
map[string]string{},
telegraf.Untyped,
plugins.Untyped,
now,
)
assert.Equal(
@@ -190,14 +190,14 @@ func TestMakeMetricA(t *testing.T) {
assert.Equal(
t,
m.Type(),
telegraf.Untyped,
plugins.Untyped,
)
m = ra.MakeMetric(
"RITest",
map[string]interface{}{"value": int(101)},
map[string]string{},
telegraf.Counter,
plugins.Counter,
now,
)
assert.Equal(
@@ -208,14 +208,14 @@ func TestMakeMetricA(t *testing.T) {
assert.Equal(
t,
m.Type(),
telegraf.Counter,
plugins.Counter,
)
m = ra.MakeMetric(
"RITest",
map[string]interface{}{"value": int(101)},
map[string]string{},
telegraf.Gauge,
plugins.Gauge,
now,
)
assert.Equal(
@@ -226,7 +226,7 @@ func TestMakeMetricA(t *testing.T) {
assert.Equal(
t,
m.Type(),
telegraf.Gauge,
plugins.Gauge,
)
}
@@ -240,14 +240,14 @@ func (t *TestAggregator) Reset() {
atomic.StoreInt64(&t.sum, 0)
}
func (t *TestAggregator) Push(acc telegraf.Accumulator) {
func (t *TestAggregator) Push(acc plugins.Accumulator) {
acc.AddFields("TestMetric",
map[string]interface{}{"sum": t.sum},
map[string]string{},
)
}
func (t *TestAggregator) Add(in telegraf.Metric) {
func (t *TestAggregator) Add(in plugins.Metric) {
for _, v := range in.Fields() {
if vi, ok := v.(int64); ok {
atomic.AddInt64(&t.sum, vi)

View File

@@ -4,14 +4,14 @@ import (
"fmt"
"time"
"github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/plugins"
"github.com/influxdata/telegraf/selfstat"
)
var GlobalMetricsGathered = selfstat.Register("agent", "metrics_gathered", map[string]string{})
type RunningInput struct {
Input telegraf.Input
Input plugins.Input
Config *InputConfig
trace bool
@@ -21,7 +21,7 @@ type RunningInput struct {
}
func NewRunningInput(
input telegraf.Input,
input plugins.Input,
config *InputConfig,
) *RunningInput {
return &RunningInput{
@@ -56,9 +56,9 @@ func (r *RunningInput) MakeMetric(
measurement string,
fields map[string]interface{},
tags map[string]string,
mType telegraf.ValueType,
mType plugins.ValueType,
t time.Time,
) telegraf.Metric {
) plugins.Metric {
m := makemetric(
measurement,
fields,

View File

@@ -6,7 +6,7 @@ import (
"testing"
"time"
"github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/plugins"
"github.com/stretchr/testify/assert"
)
@@ -21,7 +21,7 @@ func TestMakeMetricNoFields(t *testing.T) {
"RITest",
map[string]interface{}{},
map[string]string{},
telegraf.Untyped,
plugins.Untyped,
now,
)
assert.Nil(t, m)
@@ -41,7 +41,7 @@ func TestMakeMetricNilFields(t *testing.T) {
"nil": nil,
},
map[string]string{},
telegraf.Untyped,
plugins.Untyped,
now,
)
assert.Equal(
@@ -66,7 +66,7 @@ func TestMakeMetric(t *testing.T) {
"RITest",
map[string]interface{}{"value": int(101)},
map[string]string{},
telegraf.Untyped,
plugins.Untyped,
now,
)
assert.Equal(
@@ -77,14 +77,14 @@ func TestMakeMetric(t *testing.T) {
assert.Equal(
t,
m.Type(),
telegraf.Untyped,
plugins.Untyped,
)
m = ri.MakeMetric(
"RITest",
map[string]interface{}{"value": int(101)},
map[string]string{},
telegraf.Counter,
plugins.Counter,
now,
)
assert.Equal(
@@ -95,14 +95,14 @@ func TestMakeMetric(t *testing.T) {
assert.Equal(
t,
m.Type(),
telegraf.Counter,
plugins.Counter,
)
m = ri.MakeMetric(
"RITest",
map[string]interface{}{"value": int(101)},
map[string]string{},
telegraf.Gauge,
plugins.Gauge,
now,
)
assert.Equal(
@@ -113,7 +113,7 @@ func TestMakeMetric(t *testing.T) {
assert.Equal(
t,
m.Type(),
telegraf.Gauge,
plugins.Gauge,
)
}
@@ -133,7 +133,7 @@ func TestMakeMetricWithPluginTags(t *testing.T) {
"RITest",
map[string]interface{}{"value": int(101)},
nil,
telegraf.Untyped,
plugins.Untyped,
now,
)
assert.Equal(
@@ -161,7 +161,7 @@ func TestMakeMetricFilteredOut(t *testing.T) {
"RITest",
map[string]interface{}{"value": int(101)},
nil,
telegraf.Untyped,
plugins.Untyped,
now,
)
assert.Nil(t, m)
@@ -183,7 +183,7 @@ func TestMakeMetricWithDaemonTags(t *testing.T) {
"RITest",
map[string]interface{}{"value": int(101)},
map[string]string{},
telegraf.Untyped,
plugins.Untyped,
now,
)
assert.Equal(
@@ -213,7 +213,7 @@ func TestMakeMetricInfFields(t *testing.T) {
"ninf": ninf,
},
map[string]string{},
telegraf.Untyped,
plugins.Untyped,
now,
)
assert.Equal(
@@ -250,7 +250,7 @@ func TestMakeMetricAllFieldTypes(t *testing.T) {
"m": true,
},
map[string]string{},
telegraf.Untyped,
plugins.Untyped,
now,
)
assert.Contains(t, m.String(), "a=10i")
@@ -280,7 +280,7 @@ func TestMakeMetricNameOverride(t *testing.T) {
"RITest",
map[string]interface{}{"value": int(101)},
map[string]string{},
telegraf.Untyped,
plugins.Untyped,
now,
)
assert.Equal(
@@ -301,7 +301,7 @@ func TestMakeMetricNamePrefix(t *testing.T) {
"RITest",
map[string]interface{}{"value": int(101)},
map[string]string{},
telegraf.Untyped,
plugins.Untyped,
now,
)
assert.Equal(
@@ -322,7 +322,7 @@ func TestMakeMetricNameSuffix(t *testing.T) {
"RITest",
map[string]interface{}{"value": int(101)},
map[string]string{},
telegraf.Untyped,
plugins.Untyped,
now,
)
assert.Equal(
@@ -336,4 +336,4 @@ type testInput struct{}
func (t *testInput) Description() string { return "" }
func (t *testInput) SampleConfig() string { return "" }
func (t *testInput) Gather(acc telegraf.Accumulator) error { return nil }
func (t *testInput) Gather(acc plugins.Accumulator) error { return nil }

View File

@@ -4,7 +4,7 @@ import (
"log"
"time"
"github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/plugins"
"github.com/influxdata/telegraf/internal/buffer"
"github.com/influxdata/telegraf/metric"
"github.com/influxdata/telegraf/selfstat"
@@ -21,7 +21,7 @@ const (
// RunningOutput contains the output configuration
type RunningOutput struct {
Name string
Output telegraf.Output
Output plugins.Output
Config *OutputConfig
MetricBufferLimit int
MetricBatchSize int
@@ -38,7 +38,7 @@ type RunningOutput struct {
func NewRunningOutput(
name string,
output telegraf.Output,
output plugins.Output,
conf *OutputConfig,
batchSize int,
bufferLimit int,
@@ -89,7 +89,7 @@ func NewRunningOutput(
// AddMetric adds a metric to the output. This function can also write cached
// points if FlushBufferWhenFull is true.
func (ro *RunningOutput) AddMetric(m telegraf.Metric) {
func (ro *RunningOutput) AddMetric(m plugins.Metric) {
// Filter any tagexclude/taginclude parameters before adding metric
if ro.Config.Filter.IsActive() {
// In order to filter out tags, we need to create a new metric, since
@@ -161,7 +161,7 @@ func (ro *RunningOutput) Write() error {
return nil
}
func (ro *RunningOutput) write(metrics []telegraf.Metric) error {
func (ro *RunningOutput) write(metrics []plugins.Metric) error {
nMetrics := len(metrics)
if nMetrics == 0 {
return nil

View File

@@ -5,14 +5,14 @@ import (
"sync"
"testing"
"github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/plugins"
"github.com/influxdata/telegraf/testutil"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
var first5 = []telegraf.Metric{
var first5 = []plugins.Metric{
testutil.TestMetric(101, "metric1"),
testutil.TestMetric(101, "metric2"),
testutil.TestMetric(101, "metric3"),
@@ -20,7 +20,7 @@ var first5 = []telegraf.Metric{
testutil.TestMetric(101, "metric5"),
}
var next5 = []telegraf.Metric{
var next5 = []plugins.Metric{
testutil.TestMetric(101, "metric6"),
testutil.TestMetric(101, "metric7"),
testutil.TestMetric(101, "metric8"),
@@ -465,7 +465,7 @@ func TestRunningOutputWriteFailOrder3(t *testing.T) {
type mockOutput struct {
sync.Mutex
metrics []telegraf.Metric
metrics []plugins.Metric
// if true, mock a write failure
failWrite bool
@@ -487,7 +487,7 @@ func (m *mockOutput) SampleConfig() string {
return ""
}
func (m *mockOutput) Write(metrics []telegraf.Metric) error {
func (m *mockOutput) Write(metrics []plugins.Metric) error {
m.Lock()
defer m.Unlock()
if m.failWrite {
@@ -495,7 +495,7 @@ func (m *mockOutput) Write(metrics []telegraf.Metric) error {
}
if m.metrics == nil {
m.metrics = []telegraf.Metric{}
m.metrics = []plugins.Metric{}
}
for _, metric := range metrics {
@@ -504,7 +504,7 @@ func (m *mockOutput) Write(metrics []telegraf.Metric) error {
return nil
}
func (m *mockOutput) Metrics() []telegraf.Metric {
func (m *mockOutput) Metrics() []plugins.Metric {
m.Lock()
defer m.Unlock()
return m.metrics
@@ -531,7 +531,7 @@ func (m *perfOutput) SampleConfig() string {
return ""
}
func (m *perfOutput) Write(metrics []telegraf.Metric) error {
func (m *perfOutput) Write(metrics []plugins.Metric) error {
if m.failWrite {
return fmt.Errorf("Failed Write!")
}

View File

@@ -1,12 +1,12 @@
package models
import (
"github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/plugins"
)
type RunningProcessor struct {
Name string
Processor telegraf.Processor
Processor plugins.Processor
Config *ProcessorConfig
}
@@ -23,8 +23,8 @@ type ProcessorConfig struct {
Filter Filter
}
func (rp *RunningProcessor) Apply(in ...telegraf.Metric) []telegraf.Metric {
ret := []telegraf.Metric{}
func (rp *RunningProcessor) Apply(in ...plugins.Metric) []plugins.Metric {
ret := []plugins.Metric{}
for _, metric := range in {
if rp.Config.Filter.IsActive() {

View File

@@ -3,7 +3,7 @@ package models
import (
"testing"
"github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/plugins"
"github.com/influxdata/telegraf/testutil"
"github.com/stretchr/testify/assert"
@@ -19,8 +19,8 @@ func (f *TestProcessor) Description() string { return "" }
// "foo" to "fuz"
// "bar" to "baz"
// And it also drops measurements named "dropme"
func (f *TestProcessor) Apply(in ...telegraf.Metric) []telegraf.Metric {
out := make([]telegraf.Metric, 0)
func (f *TestProcessor) Apply(in ...plugins.Metric) []plugins.Metric {
out := make([]plugins.Metric, 0)
for _, m := range in {
switch m.Name() {
case "foo":
@@ -46,7 +46,7 @@ func NewTestRunningProcessor() *RunningProcessor {
}
func TestRunningProcessor(t *testing.T) {
inmetrics := []telegraf.Metric{
inmetrics := []plugins.Metric{
testutil.TestMetric(1, "foo"),
testutil.TestMetric(1, "bar"),
testutil.TestMetric(1, "baz"),
@@ -69,7 +69,7 @@ func TestRunningProcessor(t *testing.T) {
}
func TestRunningProcessor_WithNameDrop(t *testing.T) {
inmetrics := []telegraf.Metric{
inmetrics := []plugins.Metric{
testutil.TestMetric(1, "foo"),
testutil.TestMetric(1, "bar"),
testutil.TestMetric(1, "baz"),
@@ -96,7 +96,7 @@ func TestRunningProcessor_WithNameDrop(t *testing.T) {
}
func TestRunningProcessor_DroppedMetric(t *testing.T) {
inmetrics := []telegraf.Metric{
inmetrics := []plugins.Metric{
testutil.TestMetric(1, "dropme"),
testutil.TestMetric(1, "foo"),
testutil.TestMetric(1, "bar"),