Add prometheus round trip unit tests (#6720)

This commit is contained in:
Daniel Nelson
2019-11-26 17:31:36 -08:00
committed by GitHub
parent 80c5edd48e
commit 10db774db3
13 changed files with 935 additions and 456 deletions

View File

@@ -28,6 +28,7 @@ type Metric struct {
Tags map[string]string
Fields map[string]interface{}
Time time.Time
Type telegraf.ValueType
}
func (p *Metric) String() string {
@@ -75,11 +76,11 @@ func (a *Accumulator) ClearMetrics() {
a.Metrics = make([]*Metric, 0)
}
// AddFields adds a measurement point with a specified timestamp.
func (a *Accumulator) AddFields(
func (a *Accumulator) addFields(
measurement string,
fields map[string]interface{},
tags map[string]string,
fields map[string]interface{},
tp telegraf.ValueType,
timestamp ...time.Time,
) {
a.Lock()
@@ -132,18 +133,29 @@ func (a *Accumulator) AddFields(
Fields: fieldsCopy,
Tags: tagsCopy,
Time: t,
Type: tp,
}
a.Metrics = append(a.Metrics, p)
}
// AddFields adds a measurement point with a specified timestamp.
func (a *Accumulator) AddFields(
measurement string,
fields map[string]interface{},
tags map[string]string,
timestamp ...time.Time,
) {
a.addFields(measurement, tags, fields, telegraf.Untyped, timestamp...)
}
func (a *Accumulator) AddCounter(
measurement string,
fields map[string]interface{},
tags map[string]string,
timestamp ...time.Time,
) {
a.AddFields(measurement, fields, tags, timestamp...)
a.addFields(measurement, tags, fields, telegraf.Counter, timestamp...)
}
func (a *Accumulator) AddGauge(
@@ -152,12 +164,12 @@ func (a *Accumulator) AddGauge(
tags map[string]string,
timestamp ...time.Time,
) {
a.AddFields(measurement, fields, tags, timestamp...)
a.addFields(measurement, tags, fields, telegraf.Gauge, timestamp...)
}
func (a *Accumulator) AddMetrics(metrics []telegraf.Metric) {
for _, m := range metrics {
a.AddFields(m.Name(), m.Fields(), m.Tags(), m.Time())
a.addFields(m.Name(), m.Tags(), m.Fields(), m.Type(), m.Time())
}
}
@@ -167,7 +179,7 @@ func (a *Accumulator) AddSummary(
tags map[string]string,
timestamp ...time.Time,
) {
a.AddFields(measurement, fields, tags, timestamp...)
a.addFields(measurement, tags, fields, telegraf.Summary, timestamp...)
}
func (a *Accumulator) AddHistogram(
@@ -176,11 +188,11 @@ func (a *Accumulator) AddHistogram(
tags map[string]string,
timestamp ...time.Time,
) {
a.AddFields(measurement, fields, tags, timestamp...)
a.addFields(measurement, tags, fields, telegraf.Histogram, timestamp...)
}
func (a *Accumulator) AddMetric(m telegraf.Metric) {
a.AddFields(m.Name(), m.Fields(), m.Tags(), m.Time())
a.addFields(m.Name(), m.Tags(), m.Fields(), m.Type(), m.Time())
}
func (a *Accumulator) WithTracking(maxTracked int) telegraf.TrackingAccumulator {

View File

@@ -197,7 +197,7 @@ func MustMetric(
}
func FromTestMetric(met *Metric) telegraf.Metric {
m, err := metric.New(met.Measurement, met.Tags, met.Fields, met.Time)
m, err := metric.New(met.Measurement, met.Tags, met.Fields, met.Time, met.Type)
if err != nil {
panic("MustMetric")
}